Текстовые игры - Turbo Pascal
Формулировка задачи:
Здравствуйте , друзья !
Последнее время я начал замечать на разных
форумах вопросы "как написать 2d игру на паскаль" и другие похожие вопросы.
Обычно это пишут те, кто только начал учить язык
и им уже интересно создать свою игру.
Конечно, нельзя написать игру, зная лишь, что такое if и else,
но можно написать простую текстовую прикольную игру которой можно похвастаться пред друзьями.
Эта тема специально для таких людей.
Начнем с вопроса "Какую игру написать проще всего ?"
- ответ прост : текстовую и простую.
А какую именно ?
Я думаю для начала сойдет "угадайка".
Угадайка - это простоя игра где надо угадать число.
Алгоритм прост :
1. создаем random число и пишем его в переменную
2.даем юзеры ввести переменную
3.входим в цикл (повторять пока не отгадаем)
4. проверяем переменная юзера = random переменной?
если = , то юзер выиграл
5.если < , то выводим "бери больше"
6. если > , то выводим "бери меньше"
У такой игры есть свои плюсы и минусы.
Хочу рассказать сначала про плюсы , но
как говорила Масяня "Сначало про всех козлов",поэтому:
минусы :
1.игра очень проста и в ней нельзя проиграть
2.игра без графики
плюсы :
1.лекго написать
2.создание игры помогает практиковать свои знания
3.ну и конечно же-игрой можно хвастаться пред друзьями)
Начнем писать ...
это моя 1 тема - урок (строго не судите)
если тема наберет >20 спасибок ,то
я добавлю исходник игры "поле чудес для двоих игроков".
Решение задачи: «Текстовые игры»
textual
Листинг программы
uses crt; var comp, my, help : string; i, n, j, i2, j2, buffalo, cow, kol: integer; i3,j3, a : integer; basa: string; label vihod; begin clrscr; randomize; a:=0; comp:='0000'; my:='0000'; basa:='1234567890'; for i:= 1 to 4 do begin n:=1+random(Length(basa)-1); comp[i]:=basa[n]; Delete(basa,n,1); end; Write('ÏîêГ*Г§Г*ГІГј ïîäñêГ*çêó(y/n)'); ReadLn(help); if help = 'y' then begin WriteLn('Êîìïüþòåð ГЈГҐГ*åðèðóåò ГІГ*Г©Г*îå 4-Г§Г*Г*Г·Г*îå ÷èñëî Г± Г*åïîâòîðÿþùèìèñÿ öèôðГ*ìè.'); WriteLn('Èãðîê äåëГ*ГҐГІ ïîïûòêó îòãГ*Г¤Г*ГІГј ÷èñëî.'); WriteLn('ÏîïûòêГ* — ГЅГІГ® 4-Г§Г*Г*Г·Г*îå ÷èñëî Г± Г*åïîâòîðÿþùèìèñÿ öèôðГ*ìè.'); WriteLn('Êîìïüþòåð ñîîáùГ*ГҐГІ ñêîëüêî öèôð ГіГЈГ*Г¤Г*Г*Г® ГЎГҐГ§ ñîâïГ*äåГ*ГЁГї Г± ГЁГµ ïîçèöèÿìè Гў ГІГ*Г©Г*îì'); WriteLn('÷èñëå ГЁ ñêîëüêî ГіГЈГ*Г¤Г*Г*Г® âïëîòü äî ïîçèöèè Гў ГІГ*Г©Г*îì ÷èñëå.'); WriteLn('ÏîáåäГ* Гў òîì ñëó÷Г*ГҐ åñëè ГўГ» ГіГЈГ*Г¤Г*ГҐГІГҐ ÷èñëî Г± 10 ïîïûòîê.'); WriteLn('Ââåäèòå exit åñëè ГўГ*Г¬ Г*Г*äîåëî ГЁГЈГ°Г*ГІГј!'); WriteLn('ÈãðГ* áóäåò ïðîäîëæГ*ГІГјГ±Гї 10 õîäîâ èëè äî ïîáåäû!!'); end; repeat buffalo:=0; cow:=0; Write('Ââåäèòå ÷èñëî: '); ReadLn(my); kol:= Length(my); if my = 'exit' then goto vihod; if a = 10 then goto vihod; for j:= 1 to 4 do if comp[j] = my[j] then buffalo:=buffalo+1; for j2:= 1 to 4 do for i2:= 1 to 4 do if (comp[i2] = my[j2]) and (comp[i2] <> my[i2]) then cow:=cow+1; if kol=4 then begin WriteLn('Áûêîâ: ',buffalo,'. Êîðîâ: ',cow); a:=a+1; end; if kol<>4 then begin writeln ('ГЋГёГЁГЎГЄГ*, Г*ГҐГЇГ°Г*âèëüГ*îå êîëè÷åòâî ââîäèìûõ öèôð: Г*ГіГ¦Г*Г® 4'); end; if a = 10 then goto vihod; until (comp = my); WriteLn('Âû ñäåëГ*ëè ', a, ' õîäîâ!'); WriteLn('Êîìïüþòåð Г§Г*ГЈГ*Г¤Г*Г«: ',comp); ReadLn; vihod: writeln ('Г“ ГўГ*Г± Г§Г*ГЄГ®Г*÷èëèñü õîäû!'); writeln ('Г‡Г*ГЈГ*Г¤Г*Г*îå ÷èñëî: ',comp); end.
Объяснение кода листинга программы
Этот код написан на Turbo Pascal и представляет собой текстовую игру. Он использует случайное перемешивание символов в строке basa
для создания уникального кода. Затем он проверяет, совпадает ли этот код с введенным пользователем. Если да, то выводится сообщение о победе и новый код. Если нет, то выводится сообщение о поражении и старый код. Код продолжается до тех пор, пока не будет достигнут требуемый результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д