С какой игры начать? |
С какой игры начать? |
Гелла |
30.03.2006 19:50
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 84 Пол: Женский Репутация: 0 |
Я вот хочу научится программировать..один очень хороший человек на этом форуме подсказал, что лучше учиться программировать в процессе написания игр........какую самую простую игру вы можете посоветовать..Заранее Большое Спасибо....Не умею правильно пользоваться поиском по форуму..поэтому не отсылайте плиз в поиск........
-------------------- И полусонным стрелкам лень
Ворочаться на циферблате И дольше века длится день.. И не кончается объятье... |
Гелла |
10.04.2006 16:58
Сообщение
#2
|
Пионер Группа: Пользователи Сообщений: 84 Пол: Женский Репутация: 0 |
Программа работает!У меня был неправильный паскаль...стоило переустапновить паскаль и всё заработало...вроде во всём разобралась...
Goodwind: "..это неправильные пчелы.. "© Винни-Пух Сообщение отредактировано: GoodWind - 11.04.2006 6:26 -------------------- И полусонным стрелкам лень
Ворочаться на циферблате И дольше века длится день.. И не кончается объятье... |
Lapp |
12.04.2006 11:40
Сообщение
#3
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Гелла, привет. Режь меня - не могу представить ситуацию, чтоб "неправильный" Паскаль компилил прогу так, чтоб она неправильно работала! Мистика какая-то.. У Турбо Паскаля и установки-то как таковой нету - просто копируй файлы, да и все.
Ну, что ж - можно топать вперед.. Но только движение вперед всегда относительно. Сейчас мы сделаем программу, которая делает в точности то же самое . Мы оптимизируем, или просто улучшим программу. Любая сколь-нибудь серьезная программа может быть улучшена сразу после написания. Сначала ты пишешь текст, отлаживаешь, видишь - все работает. Но после этого замечаешь, что программа может быть улучшена.. Посмотри текст внизу. Запусти его (можешь на этот раз скопировать), убедись, что все действительно работает по-старому. После этого сравни его со старым текстом. Найди, как грится, десять отличий. И попытайся тут высказать, какие улучшения мне удалось сделать в этой совсем небольшой программке . Ок? {Version 02} -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Гелла |
13.04.2006 16:42
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 84 Пол: Женский Репутация: 0 |
program snake_2; Она не работает...только не понимаю почему..ошибок никаких, а на экране вообще ничего не появляется... просто чёрный экран... Сообщение отредактировано: volvo - 2.11.2006 12:33 -------------------- И полусонным стрелкам лень
Ворочаться на циферблате И дольше века длится день.. И не кончается объятье... |
Lapp |
14.04.2006 6:06
Сообщение
#5
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Цитата(Гелла @ 13.04.2006 16:42) Она не работает...только не понимаю почему..ошибок никаких, а на экране вообще ничего не появляется... Гелла, привет! просто чёрный экран... Ты молодец, я бы принес тебе большую конфету, если бы был твоим учителем! Кроме шуток.. Ты не воспользовалась данным мной разрешением копировать текст (copy-paste), а набрала руками! Это оказалось неожиданно очень полезно - вылезла ошибка (не ошибка, скорее пробел), которую я бы пропустил. Слушай, если уж ты такая усердная - давай я тебя еще об одном попрошу, а? Пожалуйста, отвечай хотя бы коротко на все пункты (явные и неявные) в моих постах. Типа - "это - поняла, это просто!". Или: "а это - кажется, понятно но может не совсем.." Договорились? Итак, про тот пробел. В Паскале есть декларация CONST. Она означает, что величины в ней изменяться никогда не будут, всегда сохраняя значение, заданное в тексте программы. У меня такими константами заданы границы игрового поля (которое сейчас занимает весь текстовый экран), а также промежуток времени и символ головы. Поскольку величины, заданные в этом разделе, никогда не изменяются, то компилятор реально не отводит для них ячейки памяти. Он поступает проще: везде, где эта константа (скажем, xn или xx) встретится в тексте, он подставит число, которому она равна (в данном случае 1 или 80). То есть программа компилируется как если бы мы сразу написали 1 вместо xn и 80 вместо xx. Так зачем они тогда нужны, спрашивается? А нужны они для удобства программирования (как и вообще все языки ). А именно, если завтра ты захочешь изменить игровое поле - сузить, отодвинув его от краев экрана - то тебе придется, если ты не использовала константы, ползать по всему тексту проги и искать, где вместо 1 поставить 2, а вместо 80 поставить 79.. При этом, если 80 отследить просто, то единиц в тексте может быть гораздо больше, ибо не все они означают границу поля. Так что тебе придется думать, что есть что. Если же использовать константы (как мы и сделали), то для изменения границ поля достаточно заменить xn=1 на xn=2, а также xx=80 на xx=79, а компилятор сам подставит нужные числа в нужных местах. Это понятно? Есть еще один большой плюс констант. Они могут использоваться в качестве границ при определении массивов. Более того, можно даже использовать арифметические выражения с ними при проеделении размерности массива (типа N*2+3). Это очень удобно, так как обычно в программе обычно присутствуют несколько массивов, размерности которых связаны между собой каким-либо образом (не обязательно равны). Но это еще не есть тот самый пробел. Это присказка. Двигаемся дальше.. Я начал разговор о константах потому, что причина того, почему программа у тебя не заработала, связана с константами. В Паскале есть еще понятие "типизированные константы". С ними может возникнуть путаница, так как это совсем не константы. Для них отводится память, как для переменных, они используются, как переменные. И их нельзя использовать в определении размерности массива. Почему они тогда называются константы? Это никому неизвестно. Но они действительно помещаются в раздел CONST. Вот так: const По сути, эти штуки лучше было бы назвать "инициализированные переменные", так как смысл именно тот: это обычная переменная, но имеющая определенное начальное значение (значение обычных переменных перед выполнением программы не определено). Так вот, в ТР7 это делается именно так, как я описал выше. Теперь идем еще дальше.. В FreePascal (FPC), которым пользуется твой покорный слуга, видимо, решили исправить это досадное недоразумение. Они разрешили инициировать переменные, то есть делать так: var Замечаешь разницу? Теперь заголовок var, а не const. То есть в FPC можно использовать и const, и var. Ну и я, ессно, использовал var! А ТР7, коим пользуется юная леди, этого не пропускает! И вот упомянутая мисс, берет, да и просто отрезает значения.. Так было?.. сознайся! Когда ты набирала первую версию, ты вышла из этого положения корректно: ты перенесла инициализацию в исполняемый блок (молодец!). А во второй версии ты этого не сделала (теряюсь в догадках, почему). Собственно, ты сейчас должна догадаться, как исправить мой текст Версии 2. Да, правильно - изменить словечко var на const (первое из них, второе не надо). Теперь понятно? Уфф... пойду перекушу перед походом в зал - иначе упаду в середине игры.. Жду ответа с нетерпением. С отметками - что ясно, что нет.. Чао! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 7.10.2024 2:03 |