Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sergiy
6 лет назад

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 лучший из диалектов бейсика

@sergiy

5
502.950 GOLOS
На Golos с October 2016
Комментарии (5)
Сортировать по:
Сначала старые