IPB
ЛогинПароль:

> С какой игры начать?
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 84
Пол: Женский

Репутация: -  0  +


Я вот хочу научится программировать..один очень хороший человек на этом форуме подсказал, что лучше учиться программировать в процессе написания игр........какую самую простую игру вы можете посоветовать..Заранее Большое Спасибо....Не умею правильно пользоваться поиском по форуму..поэтому не отсылайте плиз в поиск........ no1.gif unsure.gif


--------------------
И полусонным стрелкам лень
Ворочаться на циферблате
И дольше века длится день..
И не кончается объятье...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Гелла, постарайся быть все же поактивнее! Тебе накидали столько проектов - хоть бы в один ткнула пальцем наугад.. Мне придется сделать выбор за тебя smile.gif

В этом деле главное - это не бездействовать. Поэтому я начну. И все вместе продолжим. Извините, но я склоняюсь в сторону змейки - она динамичная. Морской бой (и все остальное) можно реализовать позже (или параллельно). Итак, я написал самый простой код, который явится даже не базой (поскольку он будет переделан в процессе совершенно), а скорее первым импульсом.

Гелла (всех желающих тоже приглашаю присоединяться к классу), пожалуйста, не копируй текст программы, набери его пальчиками. При наборе волей-неволей обратишь внимание на мелочи, которые трудно заметить при копировании. Если программа не пойдет сразу - внимательно проверь, найди ошибку. Это все очень полезно для начала, даже тупой (извини) набор и сличение двух текстов. При наборе соблюдай отступы, как в моем тексте - правильное оформление программы сильно помогает в ее создании (хотя и не влияет на компиляцию). Потом ты сама поймешь, насколько удобнее работать с правильно структурированным текстом.

Код реализует движение символа по экрану. Символом можно управлять, нажимая клавиши i,j,k,m. Выбор клавиш почти случаен - просто я не хотел сразу делать стрелки, чтобы не запутывать ученицу (стрелки производят двойные коды). Скорость движения символа постоянная, меняется только направление. При натыкании на стенку игра заканчивается.

Где же тут змейка? Очень просто: это только ее голова пока smile.gif. Чуть позже мы добавим звенья, из которых состоит тело. Змейка будет расти при поедании пищи, будет выводиться ее длина, время игры, результаты будем записывать в файл, так что можно будет соревноваться.

Я не стал помещать много комментариев в код, поскольку наверняка будут сложности с русскими буквами (не у всех, так у многих). Вот подробные пояснения.

Декларируем использование модуля CRT для работы с текстовым экраном.
Далее определяем некоторые числовые значения.
Но сначала условимся о названиях: x - горизонтальная координата, y - вертикальная (отсчет начинается из левого верхнего угла, точка (1,1) )
Введем еще и следующее соглашение: буква n в имени переменной означает Min (например, xn), а буква x - Max (например, yx). Таким образом, в строчках с 6 по 9 мы определяем границы экрана.
Далее определяем символ для вывода головы змейки.
Теперь задержка. Ее величиной можно регулировать скорость движения змейки по экрану.
А потом задаем начальное положение змейки и ее направление движения.

Наконец, сама программа.
Сначала чистим экран и инициализируем координаты змейки.
Потом начинаем основной цикл, который продолжаем, пока координаты змейки не выходят за пределы нашей области.
Стираем старое положение символа.
Рисуем символ в новом положении.
Перекладываем новые координаты в старые.
Ждем некоторое время, иначе символ будет бегать слишком быстро.
Если нажата клавиша, читаем ее.
Если это был управляющий символ - производим изменение направления движения.
Вычисляем новое положение змейки.
Идем в начало цикла...


{snake-01}
uses
CRT;

const
xn=1; {Left screen limit}
xx=80; {Right screen limit}
yn=1; {Top screen limit}
yx=25; {Bottom screen limit}
H='8'; {Snake head}
dt=500; {Delay}

var
x0:integer=xn; {Snake location}
y0:integer=yx div 2;
vx:integer=1; {Snake direction}
vy:integer=0;

var
x,y:integer; {New snake location}
c:char;

begin
ClrScr;
x:=x0;y:=y0;
while (x>=xn)and(x<=xx)and(y>=yn)and(y<=yx) do begin
GoToXY(x0,y0);Write(' ');
GoToXY(x,y);Write(H);
x0:=x;y0:=y;
Delay(dt);
if KeyPressed then begin
c:=ReadKey;
case c of
'i':begin vx:=0;vy:=-1 end;
'm':begin vx:=0;vy:=1 end;
'j':begin vx:=-1;vy:=0 end;
'k':begin vx:=1;vy:=0 end;
end;
end;
Inc(x,vx);Inc(y,vy);
end
end.


Программу я проверял в FPC, все работало.
Рекомендую сохранять каждую версию в своем файле с соответствующем номере. Например, эту программу сохрани в файле snake-01.pas . Потом в процессе доработки номер версии будет увеличиваться. exe-файлы (а также обжекты) лучше уничтожать, чтоб не загаживать диск, а вот паскалевский текст лучше сохранять.
Можешь поэкспериментировать, сама попробовать развить идею дальше, для этого лучше сделай отдельный файл.

Давай сюда все свои вопросы - как по технике программирования, так и по идеологии. Или просто типа "а это че??"
Ну а потом, живы будем - продолжим.. smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Hello. And Bye.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Гелла   С какой игры начать?   30.03.2006 23:50
lapp   Я тут попробовал провести небольшую классификацию …   31.03.2006 11:10
Ozzя   Гелла Морской бой. Я начинал именно с него. Далее…   31.03.2006 11:44
Бродяжник   Гелла Добро пожаловать в клуб игроделов-любителей…   31.03.2006 13:04
volvo   Гелла, ты ответы ЧИТАЕШЬ, или БЕГЛО ПРОСМАТРИВАЕШЬ…   31.03.2006 23:52
Ozzя   lapp 5. Еще есть синоним (?) - adventure Interac…   31.03.2006 13:33
Гелла   Блин...боюсь мне не под силу даже змейка и морской…   31.03.2006 23:47
Гелла   :unsure: Не надо так нервничать..... :no1: :uns…   1.04.2006 0:40
hardcase   К теме. Видел книгу по созданию 3д стратегии на С+…   1.04.2006 2:23
Ozzя   Гелла Морской бой Давай по порядку Алгоритм игры с…   1.04.2006 13:03
Бродяжник   Гелла, не расстраивайтесь. Вы сказали: "не зн…   3.04.2006 15:21
lapp   Гелла, постарайся быть все же поактивнее! Теб…   4.04.2006 13:25
XRumerTest   Hello. And Bye.   27.08.2021 11:41
FreeMan   Идея дальше - нужны яблоки :) заодно и работа с ма…   4.04.2006 20:39
Гелла   program zmeika; uses crt; const xn=1; xx=80; yn=1…   5.04.2006 1:36
lapp   А змейка не появляется..Только целая строчка восьм…   5.04.2006 9:40
volvo   Гелла, ты пропустила 2 оператора, которые как раз …   5.04.2006 2:51
Бродяжник   Гелла Поздравляю с тем, что Вы таки начали это дел…   5.04.2006 16:27
lapp   Гелла, интерес пропал? Скажи, что именно тебя сму…   7.04.2006 5:25
Гелла   Нет, всё в порядке....конечно мне это очень нужн…   7.04.2006 18:32
lapp   Гелла, тебе не нужно было оправдываться.. Мне (да…   8.04.2006 9:33
artoncraftscn   Hello. And Bye.   29.08.2021 3:55
suriv   X:=X+VX после той запятой ставиться то число …   8.04.2006 2:04
Гелла   а вот этого точно быть не может.. :wink: не могу…   8.04.2006 16:20
lapp   а вот этого точно быть не может.. :wink: не могу …   9.04.2006 8:44
Гелла   :good:   9.04.2006 15:39
Гелла   Программа работает!У меня был неправильный пас…   10.04.2006 20:58
lapp   Гелла, привет. Режь меня - не могу представить си…   12.04.2006 15:40
Гелла   program snake_2; uses crt; const xn=1; xx…   13.04.2006 20:42
lapp   Она не работает...только не понимаю почему..ошибок…   14.04.2006 10:06
volvo   Теперь идем еще дальше.. В FreePascal (FPC), кото…   14.04.2006 19:01
Гелла   все удивляются..но так и было...на том старом пас…   12.04.2006 21:11
lapp   volvo, спасибо, мне действительно недоставало ясно…   15.04.2006 18:13
Гелла   Привет lapp! Договорились... это мне пон…   16.04.2006 22:53
volvo   Гелла, делаешь очень опасную ошибку... Она никак н…   17.04.2006 0:22
Гелла   Спасибо, я даже не знала, что в TP cтолько тонко…   17.04.2006 2:53
Бродяжник   Привет, Гелла! Возможно, эта ошибка содержится…   17.04.2006 12:28
Гелла   Привет Бродяжник! поставила .... Ура!О…   17.04.2006 16:32
Бродяжник   Молодица! :) Теперь подумайте, чем эта прогр…   17.04.2006 17:19
Гелла   Нужно, чтобы змейка кушала, и становилась длинне…   17.04.2006 20:33
Бродяжник   Угу. Для этого нужно, чтобы: а) было что кушать; б…   17.04.2006 20:56
Гелла   я думаю, это будет двумерный массив?!?   17.04.2006 21:19
lapp   Вот это я понимаю - коллективная работа! Гелла…   18.04.2006 6:47
Бродяжник   Гелла, слушайте Lappa :) А я пока отдохну пойду..…   18.04.2006 12:26
Гелла   Что то я так запуталась в этой блок схеме...хоче…   20.04.2006 21:36
Гелла   Привет lapp! Вообщем мы убрали переменные x…   24.04.2006 20:00
GoodWind   Гелла, у нас же не игра "найди 10 отличий…   25.04.2006 10:24
Гелла   :mega_chok: :unsure: :unsure: :unsure: :…   27.04.2006 23:44
lapp   :mega_chok: :unsure: :unsure: :unsure: :unsu…   28.04.2006 18:27
Гелла   Не поняла...?!? :blink: :wink:   28.04.2006 19:27
lapp   Не поняла...?!? :blink: :wink: Была поздняя…   29.04.2006 4:45
lapp   После некоторого перерыва (очень извиняюсь), возвр…   3.05.2006 17:10
ThEEnD   Лазил я тут на форуме и вдруг нашёл эту тему! …   18.09.2011 23:29
Krjuger   Наверно потому что от обучаемой небыло вестей.....…   18.09.2011 23:50
ThEEnD   Ну, не всё ж обучаемой, на верняка многие за темой…   19.09.2011 0:40
Lapp   Ну, не всё ж обучаемой, на верняка многие за темой…   19.09.2011 10:35
ThEEnD   О'кей, потом выложишь?   20.09.2011 0:21
Игорь   Извиняюсь что не по теме, но не мог бы ты, Lapp, к…   4.10.2011 22:29
Lapp   Извиняюсь что не по теме, но не мог бы ты, Lapp, к…   5.10.2011 11:17
Игорь   Чесно говоря, особо не углублялся в поиски поэтому…   6.10.2011 19:53
Гость   Я вот хочу научится программировать..один очень х…   13.08.2014 0:53
MEXAHIK   Я вот хочу научится программировать..один очень х…   13.08.2014 0:58
Gamer   шел 21, а я нашел то что надо!   10.07.2021 2:38
Gamer   шел 21, а я нашел то что надо! всё же я рано…   10.07.2021 2:45
rekilev   Между делом, советую начать играть в онлайн слоты …   21.12.2023 10:29


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 14:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name