|
29.09.2012, 13:56
|
#1
|
AnyKey`щик
Регистрация: 29.09.2012
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Игра Сапер
Я новичок, пытаюсь изучать MidletPascal. Сейчас я умею немногое, поскольку сам паскаль я изучил только до массивов. В интернете на одном сайте дошел до урока по созданию игры "Сапер", но к сожалению, автор рассказал все только наполовину, второй части урока я так и не нашел. В ней должно было быть рассказано, как будут находится клетки с минами. Поскольку мне не хочется останавливаться на полпути, я попытался дальше написать код, какой могу. Но он у меня не работает (возможно потому что я еще плохо знаком с двумерными массивами). Так как из-за этого я не могу продвинуться дальше в написании мидлета, то надеюсь, вы мне сможете помочь и подсказать, что не так. вот код (красным выделена та часть, которую я сам написал, она правда очень корявая)
var i,k,j,key,xcursor,ycursor: integer;
mine: array[1..6,1..6] of boolean;
begin
j:=0;
xcursor:=6;
ycursor:=6;
for i:=1 to 6 do mine[random(5)+1,random(5)+1]:=true;
repeat
repeat
key:=getkeyclicked;
if j=0 then
begin
SetColor (255,255,255);
FillRect (0,0,128,128);
SetColor(0,0,0);
end;
if KeyToAction(key)=Ga_left then xcursor:=xcursor-20;
if KeyToAction(key)=Ga_right then xcursor:=xcursor+20;
if KeyToaction(key)=Ga_up then ycursor:=ycursor-20;
if keytoaction(key)=ga_down then ycursor:=ycursor+20;
if xcursor<6 then xcursor:=106
if xcursor>106 then xcursor:=6;
if ycursor<6 then ycursor:=106;
if ycursor>106 then ycursor:=6;
drawrect(xcursor,ycursor,16,16);
if j=0 then
begin
for i:=0 to 6 do
DrawLine(4,(i*20)+4,124,(i*20)+4);
for k:=0 to 6 do
DrawLine((k*20)+4,4,(k*20)+4,124)
end;
repaint;
until keytoaction(key)=GA_FIRE;
for i:=1 to 6 do
for k:=1 to 6 do
begin
if mine[i,k]=true then
begin
if (i=(ycursor-6)/2+1) and (k=(xcursor-6)/2+1) then
begin
SetColor(255,0,0);
FillRect(xcursor,ycursor,16,16);
repaint;
j:=j+1;
end;
end;
end;
until false;
end.
Последний раз редактировалось Mr.Extraneo, 29.09.2012 в 14:43.
Причина: нашел ошибки у себя и исправил, правда от этого ничего не изменилось
|
(Offline)
|
|
29.09.2012, 14:55
|
#2
|
AnyKey`щик
Регистрация: 21.08.2012
Сообщений: 4
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Игра Сапер
Не вдаваясь в подробности можно сразу заметить, что Repaint можно сделать один раз после всех преобразований, как рекомендуется в мануале.
Ну и одинаковые вычисления типа (ycursor-6)/2+1 лучше делать перед циклом, чтобы они в цикле много раз не повторялись.
А на каком сайте вы нашли пример, любопытно бы на него взглянуть
ps. Тоже недавно делал Сапера.
|
(Offline)
|
|
29.09.2012, 15:00
|
#3
|
AnyKey`щик
Регистрация: 29.09.2012
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Игра Сапер
Сообщение от P_e_t_e_r
Не вдаваясь в подробности можно сразу заметить, что Repaint можно сделать один раз после всех преобразований, как рекомендуется в мануале.
Ну и одинаковые вычисления типа (ycursor-6)/2+1 лучше делать перед циклом, чтобы они в цикле много раз не повторялись.
А на каком сайте вы нашли пример, любопытно бы на него взглянуть
ps. Тоже недавно делал Сапера.
|
На сайте http://midletpascal.at.ua/index/0-17. Ну и я могу предположить, что создатель сайта зарегистрирован на этом форуме)
|
(Offline)
|
|
29.09.2012, 18:53
|
#4
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Игра Сапер
Мне очень стыдно.
Я не умею играть в сапера. Пару раз пытался, но не понял в чем геймплей.
Памагите, страшно умирать, не познав всю глубину глубин...
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
|
|
29.09.2012, 19:37
|
#5
|
AnyKey`щик
Регистрация: 29.09.2012
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Игра Сапер
Сообщение от tormoz
Мне очень стыдно.
Я не умею играть в сапера. Пару раз пытался, но не понял в чем геймплей.
Памагите, страшно умирать, не познав всю глубину глубин...
|
Это сарказм?
|
(Offline)
|
|
29.09.2012, 20:34
|
#6
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Игра Сапер
Сообщение от Mr.Extraneo
Это сарказм?
|
Это трагедия
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
|
|
29.09.2012, 21:22
|
#7
|
Бывалый
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений (для 2,520 пользователей)
|
Ответ: Игра Сапер
Сообщение от tormoz
Мне очень стыдно.
Я не умею играть в сапера. Пару раз пытался, но не понял в чем геймплей.
Памагите, страшно умирать, не познав всю глубину глубин...
|
Та же фигня.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:44.
|