![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помгите сделать простую игру на паскале. [Pascal, Windows]
Black-Death © (2007-06-07 17:11:00)помогите плиз сделать какую нибудь простенькую игру на паскаале.
Что нибуть типа Хайнойских башень или быки-коровы, или еще чтото вроде этого.
@!!ex_ (2007-06-08 22:36:00) [1]> ну ничего, товарищч в верную сторону думал :o)
Так не честно! Ему компилятор подсказал! :))
Явно видно что сам не понимает, что в коде происходит.
grisme (2007-06-08 19:49:00) [2]
> @!!ex_ (07.06.07 21:31) [18]
>
> > 2. В VAR поменял тип C на String
>
> Гм. ЛОЛ честно говоря... Вообще то там Char должен быть.
> Клавиши не бывают стрингами.... :)))))))))
ну ничего, товарищч в верную сторону думал :o)
Black-Death (2007-06-07 21:32:00) [3]
> Гм. ЛОЛ честно говоря... Вообще то там Char должен быть.
> Клавиши не бывают стрингами.... :)))))))))
А что. Стринг тоже работает на ура :)
@!!ex_ (2007-06-07 21:31:00) [4]> 2. В VAR поменял тип C на String
Гм. ЛОЛ честно говоря... Вообще то там Char должен быть. Клавиши не бывают стрингами.... :)))))))))
Я не стал делать сложные ошибки. Смысл?
А графики тут одна процедура. РИсующая башенки... И та юзает только прямоугольники. Инициализация из хелпа содрана.
P.S>
НЕнавижу IDE Паскаля...
Black-Death (2007-06-07 21:27:00) [5]
> homm © (07.06.07 21:21) [16]
> Ну вот, не такой уж и бездарный индивид, как хотел себя
> показать в [0] :)
> Жаль, я думал будет повод поглумиться :)
Просто просил помочь, так как с графикой редко работал и толком не знал как правильно ее приминить
homm (2007-06-07 21:21:00) [6]Ну вот, не такой уж и бездарный индивид, как хотел себя показать в [0] :)
Жаль, я думал будет повод поглумиться :)
Black-Death (2007-06-07 21:16:00) [7]точнее на DrawTower(2)
Black-Death (2007-06-07 21:15:00) [8]Все. Спасибо. Все исправил. Слишком простые ошибки)))) Я в начале думал, что сложнее
1. В VAR массив был задан не так. поменял на -Towers:array[0..2,0..4] of integer;
2. В VAR поменял тип C на String
3. ИDrawTower(0)поменял наDrawTower(3)
@!!ex_ (2007-06-07 20:48:00) [9]> [12] homm © (07.06.07 20:45)
Те, которые в одной строчке я за одну посчитал. Благо смысл у них один.
homm (2007-06-07 20:45:00) [10]А в объявлении, 2 ошибки в одной строчке? Или я второй не вижу?
@!!ex_ (2007-06-07 20:42:00) [11]Ты когд найдешь, скажи че нашел... А то в друг не то. :))
@!!ex_ (2007-06-07 20:40:00) [12]> [9] homm © (07.06.07 20:06)
Гыгыгы. и Парочка ошибок. Пущай ищет, разбирается.
Вот код. Подскажу. Две ошибки в объявлении. И одна в логике.
uses Graph, CRT;
var
grDriver: Integer;
grMode: Integer;
ErrCode: Integer;
Towers:array[0..2,1..2] of integer;
Current:integer;
Move:boolean;
MoveIndex:integer;
RSIndex:integer;
C:Byte;
Procedure DrawTower(ID:integer);
var
Index:integer;
Count:integer;
begin
if ID=Current then begin
if Move then
SetColor(4)
else
SetColor(3);
end
else
SetColor(15);
Count:=0;
for Index:=0 to 4 do begin
if Towers[ID,Index]<>0 then begin
Rectangle(150+ID*160-Towers[ID,Index]*10,380-Index*20,170+ID*160+Towers[ID,Index]*10,400-Index*20);
inc(Count);
end
else
Break;
end;
Rectangle(150+ID*160,200,170+ID*160,400-Count*20);
end;
Procedure NewGame;
begin
Towers[0,0]:=5;
Towers[0,1]:=4;
Towers[0,2]:=3;
Towers[0,3]:=2;
Towers[0,4]:=1;
Towers[1,0]:=0;
Towers[1,1]:=0;
Towers[1,2]:=0;
Towers[1,3]:=0;
Towers[1,4]:=0;
Towers[2,0]:=0;
Towers[2,1]:=0;
Towers[2,2]:=0;
Towers[2,3]:=0;
Towers[2,4]:=0;
Move:=false;
Current:=0;
end;
var
Index:integer;
begin
grDriver := Detect;
InitGraph(grDriver, grMode,' ');
ErrCode := GraphResult;
if ErrCode = grOk then
begin { Do graphics }
NewGame;
while C<>#27 do begin
ClearDevice;
SetColor(15);
OutTextXY(0,0,'Esc - Exit. N - New Game. Left/Right - Move. Space - Select');
OutTextXY(0,20,'Create by @!!ex. Samara 2007');
DrawTower(0);
DrawTower(1);
DrawTower(0);
C:=Readkey;
if C=#0 then begin
C:=ReadKey;
if C=#75 then begin
if Current>0 then begin
dec(Current);
if Move then begin
Move:=False;
RSIndex:=-1;
for Index:=0 to 4 do
if Towers[Current,Index]<>0 then
RSIndex:=Index;
if (RSIndex=-1) or (Towers[Current+1,MoveIndex]<Towers[Current,RSIndex]) then begin
Towers[Current,RSIndex+1]:=Towers[Current+1,MoveIndex];
Towers[Current+1,MoveIndex]:=0;
end;
end;
end;
end;
if C=#77 then begin
if Current<2 then begin
inc(Current);
if Move then begin
Move:=False;
RSIndex:=-1;
for Index:=0 to 4 do
if Towers[Current,Index]<>0 then
RSIndex:=Index;
if (RSIndex=-1) or (Towers[Current-1,MoveIndex]<Towers[Current,RSIndex]) then begin
Towers[Current,RSIndex+1]:=Towers[Current-1,MoveIndex];
Towers[Current-1,MoveIndex]:=0;
end;
end;
end;
end;
end;
if (C=#32) and (Towers[Current,0]<>0) then begin
for Index:=0 to 4 do
if Towers[Current,Index]<>0 then
MoveIndex:=Index;
Move:=true;
end;
if (C='N') or (C='n') then
NewGame;
end;
CloseGraph;
end
else
Writeln('Graphics error:', GraphErrorMsg(ErrCode));
end.
homm (2007-06-07 20:06:00) [13]> А то я те ща накатаю с ООП, мышой и в 3Д. :))
Ты кстаи не компилируй, коли правда возьмешся. Пущай хоть соберет сам.
homm (2007-06-07 20:02:00) [14]> Зарание огромнейшое спасибо
По внутреннему курсу этого сайта, это примерно 200-250 WMZ.
Black-Death (2007-06-07 19:59:00) [15]
> @!!ex_
Сделай плиз. Токо со стандартными модулями. Типо с использованием Graph. Ничего сверх-естественного. Простенько :)
Игру сделай которая делается легче. Либо ханойские башни, либо троянские кони(Типо где доска шахматная 3*3).
Зарание огромнейшое спасибо
homm (2007-06-07 19:52:00) [16]> По етому и прошу помочь, а то полный ппц мне будет
Дак давай поможем!
@!!ex_ (2007-06-07 19:50:00) [17]> [4] Black-Death (07.06.07 19:41)
Ну скажи, что модуль сам написал. :))
Короч. Если хочешь, накатаю сейчас тебе игру про башни.(Это где надо перенести с одного штыря на другой, при этом класть можно только на пустой штырь или на круг большего размера). Ты только требования озвучь. А то я те ща накатаю с ООП, мышой и в 3Д. :))
Black-Death (2007-06-07 19:41:00) [18]да нет. Мне надо работать токо со встроеными модулями. И сдать нада завтра просто. По етому и прошу помочь, а то полный ппц мне будет :( :( :( :(
@!!ex_ (2007-06-07 19:15:00) [19]Предлагаешь за тебя написать все? :)
Я могу поделится модулем для работы с 3Д в паскале. ПРавда там нет заливки и текстур, только прямые линии и разрешение 320х200 естественно.
homm (2007-06-07 18:26:00) [20]Давай поможем.