Форум программистов, компьютерный форум, киберфорум
F# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
3 / 3 / 3
Регистрация: 03.11.2014
Сообщений: 80
1

Игра "Угадай число"

03.08.2016, 19:12. Показов 1561. Ответов 3
Метки нет (Все метки)

Всем привет, учу F# по книге и наткнулся на задание - игра "Угадай число". Кидаю свой код и ошибку, помогите, что не так, я уже не понимаю:
F#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Game - guess the number
open System
let highLowGame () =
    
    let rng = new Random()
    let secretNumber = rng.Next() % 100
 
    let rec highLowGameStep () =
        printfn "Guess the secret number:"
        let guessStr = Console.ReadLine()
        let guess = Int32.Parse(guessStr)
        match guess with
        | _ when guess > secretNumber
            -> printfn "The secret number is lower"
               highLowGameStep ()
 
        | _ when guess = secretNumber
            -> printfn "You are right!"
 
        | _ when guess < secretNumber
            -> printfn "The secret number is higher"
               highLowGameStep ()
        
highLowGame();;
Block following this 'let' is unfinished. Expect an expression.
Ошибка в строке let rec highLowGameStep () =
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2016, 19:12
Ответы с готовыми решениями:

Игра "Тетрис" - нужна конструктивная критика
Написал за пару дней упорного и нелегкого постижения F# :) В коде многое не нравится: -...

После запуска среды выскакивает окошечко с ошибкой "Unknown error" или "Неизвестная ошибка"
Доброго времени суток. Возникла проблема. После запуска среды выскакивает окошечко с ошибкой...

Задание по методам поиска (игра в "угадай число" наоборот)
Нужно составить программу определения задуманного ЧЕЛОВЕКОМ числа от 1 до 1000 с помощью 10...

Игра "Угадай число" - добавить кнопку новой игры
ребят, а не знаю как добавить кнопку*Новая игра* к этой проге.

3
Заблокирован
03.08.2016, 19:58 2
Лучший ответ Сообщение было отмечено Avgust как решение

Решение

Avgust, вы просто забыли вызвать функцию highLowGameStep внутри highLowGame

F#
1
2
               highLowGameStep ()
    highLowGameStep ()
И кое что еще:
1. new при создании Random не нужен:
F#
1
let rng = Random()
2. В данном случае лучше использовать if-then-else чем PM.

Не по теме:

Цитата Сообщение от Avgust Посмотреть сообщение
Всем привет, учу F# по книге и наткнулся на задание - игра "Угадай число".
Avgust, мм, а по какой книге вы учите?

1
3 / 3 / 3
Регистрация: 03.11.2014
Сообщений: 80
04.08.2016, 00:41  [ТС] 3
Книга Криса Смита, 98 страница, я чисто переписываю код как в книге, запоминаю так, но код не работает(
этот код был в книге

Добавлено через 1 час 9 минут
Действительно, так всё работает, спасибо большое!)
F#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
open System
let highLowGame () =
    
    let rng = Random()
    let secretNumber = rng.Next() % 100
 
    let rec highLowGameStep () =
       
        printfn "Guess the secret number:"
        let guessStr = Console.ReadLine()
        let guess = Int32.Parse(guessStr)
        match guess with
        | _ when guess > secretNumber
            -> printfn "The secret number is lower"
               highLowGameStep()
 
        | _ when guess = secretNumber
            -> printfn "You are right!"
               ()
 
        | _ when guess < secretNumber
            -> printfn "The secret number is higher"
               highLowGameStep()
 
    highLowGameStep()
        
highLowGame();;
0
Заблокирован
04.08.2016, 13:01 4
Цитата Сообщение от Avgust Посмотреть сообщение
Книга Криса Смита, 98 страница, я чисто переписываю код как в книге, запоминаю так, но код не работает(
замечательная книга, сам по ней учился. Если возникнут еще вопросы, буду рад помочь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2016, 13:01

Игра "Угадай число": как повторно вызвать форму?
Написал маленькую игру что бы разобраться что да как... суть в том что комп загадывает число от...

Игра "Угадай число". Применять процедуры или функции
Ребят,всем доброго времени суток. Уже долго мучаюсь,не могу понять как функцию засунуть. Программа...

Простая игра между двумя игроками: "Угадай число"
Привет, Всем! Я новичок в сфере программирования и вот у меня есть один вопрос, я создал программу...

Игра "Угадай число". Найти ошибку в коде
uses graphabc,ABCButtons; var p,c,i,h,n,y,g,f,d,o,u:longint; l,s:string; btn:buttonabc;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru