|
|
|
Канал Игры Мечты: «Злые беседы добрых программистов» |
|
|
ZEUStiger 67 EGP
Рейтинг канала: 1(3) Репутация: 12 Сообщения: 112 Откуда: Украина - Ужгород Зарегистрирован: 08.06.2006 |
|
Этим, можно сказать, языком программирования я заинтересовался после того, как поиграл в старенькую текстовую игрушку 1993 года по мотивам Толкиеновского «Хоббита». Игра представляла собой набор .bat файлов, вызываемых через командную строку ДОСа. «Почитав» содержимое файлов, я заинтересовался этой идеей.
Моя тестовая программа появилась на свет винчестера уже через 15 минут...
А сейчас решил поделиться опытом. Может кого-то заинтересует это, так же как и меня.
Системные требования: Операционная система DOS 5.0 или выше. Процессор х86. Оперативная память 2 Мб. Видеокарта: Нафиг не нужна. Винчестер: Кроме установленного DOS`а и других системных файлов – 64 Кб (размер игрушки нехилого размаха), в общей сложности – 32 Мб хватит вполне. Клавиши – много шт. Минимальные знания английского и программирования (хотя бы знать, что такое переменные). Ну и желание конечно. Также весьма желательно наличие нехилого Интернета – качать придется аж 0 байт и 0 бит.
Как это будет выглядеть: «Космических Рейнджеров» видели? Читали их текстовые квесты? Так вот, это будет то же самое, но ответы придется не выбирать из списка, а писать самому в командной строке.
Итак, поехали:
Первое, что нужно знать, это команда echo off.
В начале любого бата должна стоять надпись:
@echo off
Она отрубает все системные команды. Без нее у вас будет не квест, а чёрти что. Можете попробовать и не отключать, но после созерцания выведенного на экран вы убедитесь в необходимости отключения.
Создаем файл, например start.bat. Можно использовать обычный блокнот.
В нем пишем:
@echo off
Дальше надо создать переменную, которая будет содержать данные о том, к какой комнате мы находимся. Пишем:
set &room=exampleroom01
Название может быть любое. set – это указание задать переменную. Все переменные должны иметь префикс &. room – это название переменной (может быть любое). Вместе будет - &room. Думаю, что такое «=» объяснять не надо. exampleroom01 – это значение переменно (любое; может быть числом или словом). Дальше надо создать файл, который будет описывать комнату в которой находиться игрок. Пишем:
call look
call – указание программе вызвать какой-то файл. look – это название файла, который будет вызываться. Расширение .bat писать не обязательно, если у вас в папке нет других файлов с этим названием другого формата.
На этом терзание start.bat мы закончим. Создаем тот самый look.bat. Пишем в него:
@echo off
if “%&room%” == “exampleroom01” goto exr01
С первой строкой всё понятно, это надо делать отдельно в каждом файле. А вот со второй посложнее. If - если. “%&room%” – название переменной. == - знак равности. “exampleroom01” – значение переменной. goto – задание, которое будет выполняться если условие выполняется. В этом примере будет выполняться переход (goto) к процедуре exr01. Получается – если переменная “%&room%” равно “exampleroom01” то перейти (goto) к процедуре exr01. Не очень трудно, правда? Дописываем:
goto error
Это значит, что если ни одно из указанных выше условий не будет выполняться, что будет сделан переход к процедуре error.
Теперь создадим эти процедуры:
:exr01
echo You are staying in room.
echo.
echo LUMBER is burning in fireplace
echo.
echo In the far end of the room lies the CHEST. It looks very old
echo and don’t locked. Maybe you can OPEN it.
echo.
echo There is a DOOR in the south wall.
goto exit
:error
echo.
echo IT SEEMS THET ERROR OCCURRED IN PROGRAM!!!
goto exit
:exit
echo.
echo What will you do?
При создании процедуры ставиться :, а потом её название. После этой строки вы можете писать любые команды. Команда echo – ввод текста в окно. Всё, что находится после команды, будет записано на экране. Чтобы пропустить строку можно писать echo. . Для тех, кто не смыслит в английском языке, переведу текст. «Вы стоите в комнате. ДРЕВЕСИНА горит в огне. В дальнем конце комнаты лежит СУНДУК. Он выглядит очень старым и не закрытым. Возможно, вы сможете ОТКРЫТЬ его». После любого текста будет вводиться фраза «Что вы будете делать?». ЗАГЛВАНЫМИ буквами можно выделять основные слова, чтобы обратить на них внимание игрока.
После всего, вид файла будет такой:
@echo off
if “%&room%” == “exampleroom01” goto exr01
goto error
:exr01
echo You are staying in room.
echo.
echo LUMBER is burning in fireplace
echo.
echo In the far end of the room lies the CHEST. It looks very old
echo and don’t locked. Maybe you can OPEN it.
echo.
echo There is a DOOR in the south wall.
goto exit
:error
echo.
echo IT SEEMS THET ERROR OCCURRED IN PROGRAM!!!
goto exit
:exit
echo.
echo What will you do?
Всё. Можно запускать программу через start.bat, который и будет главным пусковым файлом.
_________________ Что бы учёные не делали, всегда найдутся люди которые превратят любое изобретение в оружие.
Последний раз редактировалось: NRG (23:10 25-04-2007), всего редактировалось 1 раз |
|
|
Jurec 348 EGP
Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006 |
|
Было дело, да.
Но как по мне - проще просто Паскаль запустить и написать такую же прогу но намного проще, быстрее, с средствами отладки и т.п.
_________________ MOV topka, C++ |
|
|
VBKesha 817 EGP
Рейтинг канала: 3(31) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 07.12.2005 |
|
Оригинально что сказать. Может не актуально но оригинально точно.
|
|
|
YogSagot 1175 EGP
Рейтинг канала: 1(8) Репутация: 275 Сообщения: 2796 Откуда: Daugavpils, Latvija Зарегистрирован: 17.08.2003 |
|
А в составе с PC-DOS'ом, помнится, поставлялась такая утилитка, которая позволяла примитивное подобие псевдографического интерфейса в .bat'ах рисовать. Кнопки, там, радиобатоны, поля ввода.
Другое дело, что для запуска всего этого приходилось неслабо с config.sys химичить.
|
|
|
Снуч 941 EGP
Рейтинг канала: 1(9) Репутация: 232 Сообщения: 2696 Откуда: Ракслатенон Зарегистрирован: 09.08.2005 |
|
а из под винды в окошке работать будет?
|
|
|
himem 210 EGP
Репутация: 24 Сообщения: 343 Откуда: Дзержинск- Нижегородский Зарегистрирован: 24.01.2004 |
|
У меня не работает... Новое окно открывает...
А ваще интересная возможность управления консольными прогами...
_________________ -Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
Последний раз редактировалось: himem (14:18 12-04-2007), всего редактировалось 1 раз |
|
|
ZEUStiger 67 EGP
Рейтинг канала: 1(3) Репутация: 12 Сообщения: 112 Откуда: Украина - Ужгород Зарегистрирован: 08.06.2006 |
|
DosBox юзайте.
Насчёт Паскаля - баты точно проще. Это не язык программирования, а всего лишь пакетные файлы.
_________________ Что бы учёные не делали, всегда найдутся люди которые превратят любое изобретение в оружие. |
|
|
Crimson 560 EGP
Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003 |
|
Пакетные файлы это всего лишь кастрированный язык программирования. На котором проще писать разве что кастрированные программы.
Единственное преимущество - интерпретатор встроен в ось, благодаря чему не нужно ставить компилятор/интерпретатор дополнительно. Но при попытке хоть немного усложнить программу начнутся большие проблемы, как раз из-за чрезмерной простоты языка.
Плюс ресурсы хранятся практически в голом виде, и любой более-менее соображающий игрок может просмотреть и переписать все что ему вздумается. Я бы все-таки советовал учить си (или хотя бы дельфи ), они не такие страшные как кажется. А так это баловство просто.
Последний раз редактировалось: Crimson (01:29 17-04-2007), всего редактировалось 1 раз |
|
|
YogSagot 1175 EGP
Рейтинг канала: 1(8) Репутация: 275 Сообщения: 2796 Откуда: Daugavpils, Latvija Зарегистрирован: 17.08.2003 |
|
Crimson : |
Единственное преимущество - интерпретатор встроен в ось, благодаря чему не нужно ставить компилятор/интерпретатор дополнительно.
|
А в PC-DOS был встроен полуосевый rexx!
Последний раз редактировалось: YogSagot (23:02 17-04-2007), всего редактировалось 1 раз |
|
|
Ur Quan 510 EGP
Рейтинг канала: 1(5) Репутация: 86 Сообщения: 728 Откуда: Арк-а-Зной Зарегистрирован: 25.11.2003 |
|
Писать игрушки можно на чём угодно было бы желание, идея и средство программирования.
Забавный боян: О языках программирования
_________________ Рад видеть тебя на борту. Здесь Дом Свободы — можешь плевать на ковер и называть кота ублюдком. |
|
|
Crimson 560 EGP
Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003 |
|
YogSagot : |
А в PC-DOS был встроен полуосевый rexx!
|
А в i286 был встроен бесик И что теперь? Мало ли что куда когда было встроено...
|
|
|
Trident 610 EGP
Рейтинг канала: 2(16) Репутация: 106 Сообщения: 4415 Откуда: Загнивающий Запад Зарегистрирован: 03.05.2003 |
|
Не, Рексс, - это прикольнее. Такой привет от мэйнфреймов.
А вообще, ЕМНИП, подобными средствами МакОси был написан аж целый Мист, так что были бы идеи.
_________________ Злостный РетроГад(tm) и конверсатор. И да, пуркуа гнобэ-ву наших нубов? |
|
|
Crimson 560 EGP
Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003 |
|
Не, бесспорно, при наличии идей можно даже в полностью текстовом режиме Зорка наваять
Я только не согласен с тем, что нужно начинать с батников "потому что это просто и всем доступно". Потому что батники это не "просто", а "ограниченно" - что имеет привычку выливаться в усложнение кода и/или урезание функциональности. Асм - он ведь тоже простой
А если плясать от доступности, то начинать стоит как минимум с яваскрипта, имхо. На котором тоже много чего наворотить можно, "при наличии интеллекта"
Последний раз редактировалось: Crimson (06:22 21-04-2007), всего редактировалось 1 раз |
|
|
YogSagot 1175 EGP
Рейтинг канала: 1(8) Репутация: 275 Сообщения: 2796 Откуда: Daugavpils, Latvija Зарегистрирован: 17.08.2003 |
|
Crimson : |
Асм - он ведь тоже простой
|
Простой, но НЕ ограниченный. При желании на чистом асме можно даже ООП реализовать, сам видел трансляторы. Другое дело, что сексом я все-же предпочитаю заниматся по старинке, с женщиной.
|
|
|
Ur Quan 510 EGP
Рейтинг канала: 1(5) Репутация: 86 Сообщения: 728 Откуда: Арк-а-Зной Зарегистрирован: 25.11.2003 |
|
"Задача: Пpостpелить себе ногу
Assembler: Вы пытаетесь пpостpелить себе ногу, но обнаруживаете, что прежде Вам придется изобрести пистолет, пулю, курок и Вашу ногу."
А начать, IMHO, можно с паскаля (Delphi), там "транслятор не позволит прострелить себе ногу".
_________________ Рад видеть тебя на борту. Здесь Дом Свободы — можешь плевать на ковер и называть кота ублюдком. |
|
|
Minx 987 EGP
Рейтинг канала: 6(329) Репутация: 135 Сообщения: 10533 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
О чем спор?? Смысл же в том, что это особенное, прикольное и оригинальное.
Ясен пень что если вы 3Д шутер собираетесь написать, то на батнике мало чего получится.
Мне, оч даж кстати бат-демки идут.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Trident 610 EGP
Рейтинг канала: 2(16) Репутация: 106 Сообщения: 4415 Откуда: Загнивающий Запад Зарегистрирован: 03.05.2003 |
|
Ur Quan : |
А начать, IMHO, можно с паскаля (Delphi), там "транслятор не позволит прострелить себе ногу".
|
При всей моей искренней любви к Паскалю, - несогласен. Ибо, в Дельфях, как только вылезаешь за пределы "компонентиков на формочках" (а в играх это приходиться делать всегда), начинается ТАКОЕ, эгхм, действо, что проще писать сразу на C и не париться.
Авторов Age of Wonders это не остановило, правда, за что им и респект.
Crimson : |
Не, бесспорно, при наличии идей можно даже в полностью текстовом режиме Зорка наваять
|
Crimson : |
А если плясать от доступности, то начинать стоит как минимум с яваскрипта, имхо. На котором тоже много чего наворотить можно, "при наличии интеллекта"
|
Тогда уж с Java. Всё-таки при всех её недостатках она изначально к системе ближе и для проектов размера от Тетриса и выше подходит больше чем JScript.
Там и IDE есть очень хорошие забесплатно
(меня VS.Net в своё время не впечатлила... Половину этого я уже хде-то в эклипсе видел )
_________________ Злостный РетроГад(tm) и конверсатор. И да, пуркуа гнобэ-ву наших нубов? |
|
|
Jurec 348 EGP
Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006 |
|
Ur Quan : |
А начать, IMHO, можно с паскаля (Delphi), там "транслятор не позволит прострелить себе ногу".
|
С знанием дела на Делфи можно себе одновременно прострелить и ногу и голову и всё остальное - главное умение стрелка
Trident : |
начинается ТАКОЕ, эгхм, действо, что проще писать сразу на C и не париться.
|
А всё из-за того что делфисты в основном - начинающие программисты, поэтому язык и считают учебным. Я отношусь не к начинающим делфистам. Ща вот на Си перехожу и уже используя много его возможностей говорю - ничего нового в Сях нет, и ничего революционного по сравнению с Делфи. До сих пор не знаю чтоб можно написать на Си, что нельзя написать на Делфи (не надо приводить в пример синтаксический сахар типа i++, ? : и т.д. т.к. в Делфи тож есть свои уникальные приятности, но это не уникальная возможность языка).
Эээ, чёт меня на холивар тянет - если хотите - можн в приват
______
насчет батников, то это то с чего я начинал ) "О, счастливчик!" даж писал
_________________ MOV topka, C++ |
|
|
Minx 987 EGP
Рейтинг канала: 6(329) Репутация: 135 Сообщения: 10533 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Jurec : |
ничего нового в Сях нет, и ничего революционного по сравнению с Делфи
|
Нашел чего сравнивать - C, процедурный язык 70-х, и Дельфи как RAD ориентация на БД.
И если уж на то пошло, то на машине тьюринга можно все написать. Вопрос только сколько времени это займет и сколько в проге глюков будет.
А слабо элиту на bat-никах написать?? А? Вот это бы было дело! (А вы ноктюрн сыграть могли бы на флейте водосточных труб? (с) Маяковский )
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Jurec 348 EGP
Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006 |
|
Minx : |
Нашел чего сравнивать - C, процедурный язык 70-х, и Дельфи как RAD ориентация на БД.
|
Ссори, имел ввиду С++
Minx : |
Вопрос только сколько времени это займет и сколько в проге глюков будет.
|
Глюки - вопрос корявости рук программиста и ТОЛЬКО его.
_________________ MOV topka, C++ |
|
|
|
|
|
Канал Игры Мечты: «Злые беседы добрых программистов» |
|