Простые в создании игры Qbasic
BASIC, что означает Универсальный символический код инструкций для начинающих, по-прежнему является самым известным языком программирования для абсолютных новичков, а QBasic — это простой интерпретатор для него, с помощью которого вы можете писать и запускать программы. До сих пор существует значительное сообщество любителей QBasic, и обучение созданию игр на QBasic учит вас основам программирования и приносит массу удовольствия.
Начало работы с QBasic
Если в вашей системе нет QBasic, вы можете загрузить исходную версию на сайте Пита QB (см. Ресурсы) или более новую версию под названием QB64, разработанную для совместимости с оригиналом. Как только вы откроете его, вы увидите синий экран. Введите следующее:
CLS PRINT "Привет, мир!" ВВОД "Как тебя зовут?"; name$ PRINT "Здравствуйте, "; имя$; "!" КОНЕЦ
Затем нажмите Shift + F5, чтобы запустить программу. Вот что происходит:
«CLS» означает «очистить экран» и гарантирует, что ваша программа запустится с пустым экраном; в противном случае вы увидите остатки предыдущей программы.
«PRINT» просто печатает строку текста на экране. Если вы просто печатаете число, вам не нужны кавычки.
«INPUT» — это способ запросить ввод пользователя. Конец строки, "name$", является переменной:здесь будет храниться ответ пользователя. Вы можете называть это как угодно; переменные, содержащие текст, должны заканчиваться на «$», а переменные, содержащие только числа, должны заканчиваться на «%».
Вторая строка «PRINT» печатает текст вместе с тем, что ввел пользователь.
"END", как и ожидалось, завершает программу.
Игры на угадывание QBasic
Введите следующий код в QBasic:
Шансы CLS% =1 RANDOMIZE TIMER number% =INT(RND * 10) + 1 PRINT "Я думаю о числе от 1 до 10. У вас есть три шанса правильно подобрать его."
DO WHILE, шансы% <4 PRINT PRINT "У вас есть шанс #"; шансы %; "." ВВОД ПЕЧАТИ «Угадай число»; Угадай%, ЕСЛИ угадай% =число%, ТО ПЕРЕЙДИТЕ, ИНАЧЕ ЕСЛИ угадай% <число%, ТО НАПЕЧАТАЙТЕ «Слишком мало». ИНАЧЕ, ЕСЛИ угадать%> число%, ТО НАПЕЧАТАТЬ «Слишком много». ELSE PRINT "Произошла ошибка. Повторите попытку". END IF шансы % =шансы % + 1 ЦИКЛ
PRINT PRINT "Вы исчерпали шансы! Извините!" КОНЕЦ
youwin:PRINT PRINT "Вы угадали число! Число было"; количество%; "!" КОНЕЦ
В этой игре программа создает случайное число от 1 до 10 и предлагает вам три попытки угадать его правильно, давая вам подсказки после первых двух подсказок. Он включает в себя множество концепций программирования.
После очистки экрана "шансы% =1" создает числовую переменную и устанавливает для нее значение 1. Это будет отслеживать все шансы игрока угадать число.
Следующие две строки создают случайное число. «RANDOMIZE TIMER» — это просто метод, который использует QBasic для рандомизации своих чисел. Следующая строка «number% =INT(RND * 10) + 1» создает случайное число от 1 до 10 и сохраняет его в переменной number%. Это выглядит сложно, но в основном это просто говорит:«Сделайте это одним из первых десяти положительных целых чисел». "+ 1" в конце гарантирует, что число будет от 1 до 10, а не от 0 до 9.
Строка «DO WHILE...» создает цикл. Всякий раз, когда вы видите строку, начинающуюся с «DO», прокрутите немного вниз, пока не найдете строку с надписью «LOOP». Everything in between that line will continue to loop over and over again until a certain condition is met--in this case, until chances% is no longer less than four (or "<4" in programming-speak).
The program then asks for a guess with the INPUT command, stores it in guess%, and proceeds to process it with the "IF...THEN...ELSE" method. As you can see, it works logically:"IF a statement is true, THEN do this; ELSEIF another statement is true, then do this; ELSE anything else is true, then do this."
The only extra aspect is the GOTO command. In this case, if the number is correct, the program goes to the section of the document labeled "youwin".
Right before the end of the loop, there's the "chances% =chances% + 1" line. That's to assure the loop only runs three times.
If the loop runs three times and the player has never been sent to the "youwin" section, the player loses, so right after the loop is a line informing the player of the loss. Below it is the "youwin" section, declared just by writing the name of the section with a colon.
More Game Ideas
With PRINT, INPUT, IF...THEN...ELSE, and GOTO, you have everything you need to create an easy-to-make text adventure. Here's some sample code:
house:INPUT "You're standing in a house. What would you like to do"; choice$ IF choice$ ="go upstairs" THEN GOTO upstairs ELSE GOTO house
Try to make it as complex as you can based on what you know. And for more inspiration, the web offers plenty of free QBasic game downloads. Play them and examine the code behind them to learn new techniques and get ideas.