-
помогите плиз сделать какую нибудь простенькую игру на паскаале. Что нибуть типа Хайнойских башень или быки-коровы, или еще чтото вроде этого.
-
-
Давай поможем.
-
Предлагаешь за тебя написать все? :) Я могу поделится модулем для работы с 3Д в паскале. ПРавда там нет заливки и текстур, только прямые линии и разрешение 320х200 естественно.
-
да нет. Мне надо работать токо со встроеными модулями. И сдать нада завтра просто. По етому и прошу помочь, а то полный ппц мне будет :( :( :( :(
-
> [4] Black-Death (07.06.07 19:41)
Ну скажи, что модуль сам написал. :)) Короч. Если хочешь, накатаю сейчас тебе игру про башни.(Это где надо перенести с одного штыря на другой, при этом класть можно только на пустой штырь или на круг большего размера). Ты только требования озвучь. А то я те ща накатаю с ООП, мышой и в 3Д. :))
-
> По етому и прошу помочь, а то полный ппц мне будет
Дак давай поможем!
-
> @!!ex_
Сделай плиз. Токо со стандартными модулями. Типо с использованием Graph. Ничего сверх-естественного. Простенько :) Игру сделай которая делается легче. Либо ханойские башни, либо троянские кони(Типо где доска шахматная 3*3). Зарание огромнейшое спасибо
-
> Зарание огромнейшое спасибо
По внутреннему курсу этого сайта, это примерно 200-250 WMZ.
-
> А то я те ща накатаю с ООП, мышой и в 3Д. :))
Ты кстаи не компилируй, коли правда возьмешся. Пущай хоть соберет сам.
-
> [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
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.
-
Ты когд найдешь, скажи че нашел... А то в друг не то. :))
-
А в объявлении, 2 ошибки в одной строчке? Или я второй не вижу?
-
> [12] homm © (07.06.07 20:45)
Те, которые в одной строчке я за одну посчитал. Благо смысл у них один.
-
Все. Спасибо. Все исправил. Слишком простые ошибки)))) Я в начале думал, что сложнее 1. В VAR массив был задан не так. поменял на - Towers:array[0..2,0..4] of integer;
2. В VAR поменял тип C на String 3. И DrawTower(0) поменял на DrawTower(3)
-
точнее на DrawTower(2)
-
Ну вот, не такой уж и бездарный индивид, как хотел себя показать в [0] :) Жаль, я думал будет повод поглумиться :)
-
> homm © (07.06.07 21:21) [16] > Ну вот, не такой уж и бездарный индивид, как хотел себя > показать в [0] :) > Жаль, я думал будет повод поглумиться :)
Просто просил помочь, так как с графикой редко работал и толком не знал как правильно ее приминить
-
> 2. В VAR поменял тип C на String
Гм. ЛОЛ честно говоря... Вообще то там Char должен быть. Клавиши не бывают стрингами.... :)))))))))
Я не стал делать сложные ошибки. Смысл?
А графики тут одна процедура. РИсующая башенки... И та юзает только прямоугольники. Инициализация из хелпа содрана.
P.S> НЕнавижу IDE Паскаля...
-
> Гм. ЛОЛ честно говоря... Вообще то там Char должен быть. > Клавиши не бывают стрингами.... :)))))))))
А что. Стринг тоже работает на ура :)
-
> @!!ex_ (07.06.07 21:31) [18] > > > 2. В VAR поменял тип C на String > > Гм. ЛОЛ честно говоря... Вообще то там Char должен быть. > Клавиши не бывают стрингами.... :)))))))))
ну ничего, товарищч в верную сторону думал :o)
-
> ну ничего, товарищч в верную сторону думал :o)
Так не честно! Ему компилятор подсказал! :)) Явно видно что сам не понимает, что в коде происходит.
|