10 FreeBASIC - Игра угадай число

3 месяца назад

Теперь когда мы знаем и условный оператор, и оператор цикла, и даже 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

Авторы получают вознаграждение, когда пользователи голосуют за их посты.
Голосующие читатели также получают вознаграждение за свой голос.
Порядок сортировки:  Популярное
32
  ·  3 месяца назад

Сюда приплывал Моби Дик

72
  ·  3 месяца назад

Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
ianboil, francisgrey, strecoza, mishka, sergiy, vako, ovchinnikov, polyideic, max-max, zoss, dikaniovs, harhor, dimarss, tinochka, tristamoff, kilobucks, ohlamoon, shuler, rusalka, yurgent71, zlody, dr-boo, volv, nefer, oksi969, turkish-r, renat242, oceanotechnic, markvial, andreyprosto, vict0r, gromozeka, lira, drim, gryph0n, voltash, ladynazgool, ladykosha, karusel1, orezaku, sharps, cepera, francesco, exan, retoldname, stranniksenya, alikssandra, gapel, galerina, acidgarry, kvg, igor66, oagalakova, borisss, candy777, olga-fink, optimist, dayver, bammbuss, seagull15, bombo, manavendra, ondantr, vladsm, mirgais, now, varja, prifix, mp42b, abloud, dignityinside, alexmove, process, massatela, firestarter, vlad1m1r, shafarevich, kanalex, tulencha, vsebudethorosho, nikitosuna, sansey, izbushka, astramar, goldenriver, onur1s, ramin, propoker, cryptovisitor, zelivsky, html, metadon, vredinka2345, fxmonster, carpe-diem, makcl, marina-spring, azarovskiy, funt33, sinilga, samael27, kalter, valen-tina, maksh, mister-omortson, nightinga1e, siddxa, cryptobandera, maryatekun, lologom, delectat, prezza, sini4ka, akva22, worthless-man, elcpa, karabum, sevaev, dobrotanya, boliwar, veta-less, irkinmick, wmforum, jpigeon84, archual, alexxela, paulsoul, valdemar777, fatima, vitalist
Поэтому я тоже проголосовал за него!


dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас: