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

> С какой игры начать?
Гелла
сообщение 30.03.2006 19:50
Сообщение #1


Пионер
**

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

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


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


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


Пионер
**

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

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


program zmeika;
uses crt;

const
xn=1;
xx=80;
yn=1;
yx=25;
H='8';
dt=500;

var
x0,y0,vx,vy,x,y:integer;
c:char;

begin
clrscr;
x0:=xn;
y0:=yx div 2;
vx:=1;
vy:=0;
x:=x0;
y:=y0;
while (x>=xn) and (x<=xx) and (y>=yn) and (y<=yx) do
begin
GoToXY(x0,y0);
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.

Тэги. GoodWind

А змейка не появляется..Только целая строчка восьмерок..(символов головы змейки)…а когда я пытаюсь её передвинуть при помощи клавиш i,m,j,k то появляется окно с текстом программы….А процедура Inc(x,vx); Inc(y,vy)вычисляет новое положение змейки чтоли??

Сообщение отредактировано: volvo - 2.11.2006 12:31


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


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

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

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


Цитата(Гелла @ 4.04.2006 21:36)
А змейка не появляется..Только целая строчка восьмерок..(символов головы змейки)…а когда я пытаюсь её передвинуть при помощи клавиш i,m,j,k то появляется окно с текстом программы….А процедура Inc(x,vx); Inc(y,vy)вычисляет новое положение змейки чтоли??

Молодец!! Хвалю! smile.gif
Если честно, я особо не рассчитывал, что с первого раза все получится.. Если совсем честно - то не рассчитывал даже на то, что ты последуешь моему указанию и станешь набирать пальцами, а не скопируешь smile.gif. Ты превосходишь все (ну, почти..) ожидания! Спасибо smile.gif

Итак, учебный процесс идет пока по графику. Отвечаю на твои вопросы (возможно, незаданные). Попутно некоторые советы.

1. Змея по-английски будет snake (снэйк). Я очень рекомендую употребление английских слов в программировании. Русские слова, написанные латиницей, гораздо хуже читаются и могут иметь много вариантов написания. Там, где это уместно или необходимо - надо использовать русский (кирилицу или латиницу - зависит от конкретного случая), то есть я не против использования русского. Но все же делай акцент на английский для названий переменных и для коротких пояснений. Заодно и английский подучишь! Здесь я постараюсь пояснять английские слова, которые буду употреблять.

2. Оператор program не является обязательным в Паскале, поэтому я его не употребил. Но если ты его используешь, назови программу snake. Ok?

3. Я уже говорил, но еще разок не помешает - пока наша змейка состоит из одной только головы. Для головы я выбрал символ "8" потому, что восьмерка похожа на глаза или очки (пусть наша змейка будет очковой коброй smile.gif ). Но ты можешь, ессно, заменить этот символ на любой, который тебе нравится.

5. При наборе текста естественно допускать ошибки - человеку свойственно ошибаться. Но при этом имей в виду, что мой код был проверен, и вероятность, что он не работает по объективной причине довольно мала. Поэтому после набора, если программа не заработала - тщательно проверь, правильно ли набран текст. Volvo указал тебе на твою ошибку в этот раз, исправь ее. Открою тебе секрет: я потому и просил набирать руками, что думал, что ты сделаешь ошибки. Исправление таких ошибок - лучший способ обучения. Пока ты оправдываешь мои надежды.. ;)

4. Когда помещаешь текст программы сюда, в сообщение, будь добра, окружай его тегами [рascode] перед текстом и [/рascode] после текста (учти, что тут я вместо английской "p" употребил русскую "р", иначе теги бы сработали, и ты не увидела бы их тут, а вместо них был бы прямоугольник вставки, а в нем "перед текстом и"). Сами теги не показываются при выводе, а в программном тексте будет сохранено форматирование текста, и даже подсвечен синтаксис. Теги можно писать вручную, а можно сделать так:
- выдели текст программы блоком;
- кликни кнопку с буквой P в ряду кнопок над окном набора текста (примерно посредине окна).
Выделенный текст будет окаймлен тегами. Не забудь нажать "Предварительный просмотр", чтобы убедиться, что все получилось как надо. Если не получилось - ищи ошибку (незакрытый тег, ошибка в названии тега..). Сейчас я помещу ниже твой программный текст, и ты увидишь, как он выглядел бы, если бы ты все сделала правильно.

program zmeika;
uses crt;

const
xn=1;
xx=80;
yn=1;
yx=25;
H='8';
dt=500;

var
x0,y0,vx,vy,x,y:integer;
c:char;

begin
clrscr;
x0:=xn;
y0:=yx div 2;
vx:=1;
vy:=0;
x:=x0;
y:=y0;
while (x>=xn) and (x<=xx) and (y>=yn) and (y<=yx) do
begin
GoToXY(x0,y0);
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.


Видишь? Совсем же другое дело!..
И тут выясняется, что:
- разделы var и const ты не сдвигала... Рекомендую это делать!
- размер сдвига у тебя пляшет: то 2, то 4, то 3..
Последнее совершенно недопустимо!! Ибо бывают ситуации, когда разобраться, к какому логическому блоку относится оператор можно только по суммарному сдвигу (размер сдвига умножить на вложенность блока). Уверяю тебя, это делается не для красоты (хотя красота идет попутно). Выбери стандарт для себя и не отступай от него никогда! Я рекомендую 2 (один сдвиг - два пробела). Если ты работаешь в FPC (кстати - обязательно скажи, в чем ты работаешь), то зайди в Options - Environment - Editor, и там поставь Tab Size = 2 и Indent Size = 2. После этого выполни Options - Save. Возможно, тебе придется переоткрыть рабочее окно, чтоб это подействовало..

5. Процедура Inc(i) - это, грубо говоря, увеличение на 1 (для целых чисел). Происходит от английского increase (увеличивать, возрастать). Иначе говоря, это эквивалентно оператору i:=i+1 . Строго говоря, такая операция производится быстрее, чем сложение, но практически все оптимизирующие компиляторы все равно заменят сложение на инкриментирование, так что все равно, что писать. Я предпочитаю пользоваться Inc'ом, и тебе советую. Есть ситуации, где это действительно упрощает дело (если говорить о перечисляемых типах, например, или даже просто о типе char). Кстати, аналогично ей, есть процедура для уменьшения, Dec(i) (от английского decrease - уменьшать, убывать), которая эквивалентна i:=i-1 .

Ну вот, на сегодня хватит. Пожалуйста, все проверь, исправь и постарайся разобрать что делает каждый оператор (мои пояснения смотри в предыдущем сообщении). Жду следующих вопросов - и пора уже двигаться дальше!
Успехов!


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

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


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

 



- Текстовая версия 27.05.2024 20:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"