10 FreeBASIC - Игра угадай число
Теперь когда мы знаем и условный оператор, и оператор цикла, и даже RND можно написать первую простенькую игру.
Игра угадай число
Компьютер загадывает число(выбирает случайное число из некоторого диапазона, например от 1 до 100) Тот кто отгадывает называет свой вариант числа и получает ответ - больше или меньше загаданное число. Отгадывающий называет новое число, и так далее, пока не угадает задуманное число.
Думаю в этой программе можно обойтись двумя переменными
dim as integer zchislo, varch
пока программа маленькая, можно было дать переменным короткие имена a,b
, но лучше сразу приучаться давать более-менее осмысленные имена, не взирая на длину имени переменной. А ещё и для них желательно писать в комментарии что за переменная, для чего она. Если программа маленькая, то комментариев получится больше чем самого текста программы)) Но в больших программах без комментариев тяжело будет разбираться.
zchislo=1+int(rnd()*100)
- компьютер загадал число
Теперь открываем цикл с условием(постусловием), который будет "крутиться" пока человек не отгадает число.
do
ждём ввода числа
input "введите число"; varch
проверяем условия на больше, меньше или равно
if zchislo<varch then print "Отгадываемое число меньше";varch
if zchislo>varch then print "Отгадываемое число больше";varch
if zchislo=varch then print "Поздравляю! Число угадано!"
повторяем цикл пока задуманное число не равно предполагаемому
loop while zchislo<>varch
Не забываем в начале программы писать две строки для поддержки кириллицы
#include "windows.bi"
SetConsoleCP(1251) : SetConsoleOutputCP(1251)
Если не помогло ещё нужно выбрать шрифт содержащий кириллические символы - на заголовке окна запущенной программы нажимааем ПКМ правую кнопку мышки))), выбираем свойства
и в открывшемся окне выбираем шрифт - ОК
Запустив программу первый раз мы с десятой попытки угадали задуманное компьютером число, а теперь запустив программу можно угадать и с первой))) оно всегда будет 34
А если я изменю диапазон - не от 1 до 100, а скажем от 1 до 99 zchislo=1+int(rnd()*99)
как думаете, это что то изменит? угадаете теперь с первой попытки? я угадал)))
randomize timer
как видите нужно не забывать писать.
Давайте добавим в программу счётчик - чтобы программа подсчитывала кроичество попыток-отгадываний.
Добавим ещё одну переменую kolicestvopopytok
немножко пошутил, мне всегда лень писать такие длинные имена переменных, но в больших программах без этого тяжело. Ну а в нашей маленькой программе добавим просто переменную k
Я уж лучше комментарий напишу один раз, чем буду десять раз такое длинное имя писать.
До начала цикла переменную нужно инициализировать - задать её начальное значение k=1
. А в последней строке тела цикла увеличить эту переменную на единицу k=k+1
.
В третьей строке мы добавили описание переменной, добвили 5,7 и 12 строки.
Как думаете какое максимальное количество попыток можно угадать число от 1 до 100, а от 1 до 1000?
09 FreeBASIC - случайные числа, RND
08 FreeBASIC - случайные числа, RND
07 FreeBASIC - циклы
06 FreeBASIC - условный оператор
05 FreeBASIC - первые простые задачки
04 FreeBasic - графика
03 FreeBASIC. Текстовые переменные и операции с ними
02 FreeBASIC Переменные в Бейсике
01 Начинаем изучать FreeBasic
00 FreeBASIC лучший из диалектов бейсика