Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.19;
Скачать: CL | DM;

Вниз

Помгите сделать простую игру на паскале.   Найти похожие ветки 

 
Black-Death   (2007-06-07 17:11) [0]

помогите плиз сделать какую нибудь простенькую игру на паскаале.
Что нибуть типа Хайнойских башень или быки-коровы, или еще чтото вроде этого.


 
ArtemESC   (2007-06-07 18:06) [1]

http://zipsites.ru/it/programming/arsak_programmirovanie_igr/


 
homm ©   (2007-06-07 18:26) [2]

Давай поможем.


 
@!!ex_   (2007-06-07 19:15) [3]

Предлагаешь за тебя написать все? :)
Я могу поделится модулем для работы с 3Д в паскале. ПРавда там нет заливки и текстур, только прямые линии и разрешение 320х200 естественно.


 
Black-Death   (2007-06-07 19:41) [4]

да нет. Мне надо работать токо со встроеными модулями. И сдать нада завтра просто. По етому и прошу помочь, а то полный ппц мне будет :( :( :( :(


 
@!!ex_   (2007-06-07 19:50) [5]

> [4] Black-Death   (07.06.07 19:41)

Ну скажи, что модуль сам написал. :))
Короч. Если хочешь, накатаю сейчас тебе игру про башни.(Это где надо перенести с одного штыря на другой, при этом класть можно только на пустой штырь или на круг большего размера). Ты только требования озвучь. А то я те ща накатаю с ООП, мышой и в 3Д. :))


 
homm ©   (2007-06-07 19:52) [6]

> По етому и прошу помочь, а то полный ппц мне будет

Дак давай поможем!


 
Black-Death   (2007-06-07 19:59) [7]


> @!!ex_

Сделай плиз. Токо со стандартными модулями. Типо с использованием Graph. Ничего сверх-естественного. Простенько :)
Игру сделай которая делается легче. Либо ханойские башни, либо троянские кони(Типо где доска шахматная 3*3).
Зарание огромнейшое спасибо


 
homm ©   (2007-06-07 20:02) [8]

> Зарание огромнейшое спасибо

По внутреннему курсу этого сайта, это примерно 200-250 WMZ.


 
homm ©   (2007-06-07 20:06) [9]

> А то я те ща накатаю с ООП, мышой и в 3Д. :))

Ты кстаи не компилируй, коли правда возьмешся. Пущай хоть соберет сам.


 
@!!ex_   (2007-06-07 20:40) [10]

> [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.


 
@!!ex_   (2007-06-07 20:42) [11]

Ты когд найдешь, скажи че нашел... А то в друг не то. :))


 
homm ©   (2007-06-07 20:45) [12]

А в объявлении, 2 ошибки в одной строчке? Или я второй не вижу?


 
@!!ex_   (2007-06-07 20:48) [13]

> [12] homm ©   (07.06.07 20:45)

Те, которые в одной строчке я за одну посчитал. Благо смысл у них один.


 
Black-Death   (2007-06-07 21:15) [14]

Все. Спасибо. Все исправил. Слишком простые ошибки)))) Я в начале думал, что сложнее
1. В VAR массив был задан не так. поменял на - Towers:array[0..2,0..4] of integer;

2. В VAR поменял тип C на String
3. И DrawTower(0) поменял на DrawTower(3)


 
Black-Death   (2007-06-07 21:16) [15]

точнее на DrawTower(2)


 
homm ©   (2007-06-07 21:21) [16]

Ну вот, не такой уж и бездарный индивид, как хотел себя показать в [0] :)
Жаль, я думал будет повод поглумиться :)


 
Black-Death   (2007-06-07 21:27) [17]


> homm ©   (07.06.07 21:21) [16]
> Ну вот, не такой уж и бездарный индивид, как хотел себя
> показать в [0] :)
> Жаль, я думал будет повод поглумиться :)

Просто просил помочь, так как с графикой редко работал и толком не знал как правильно ее приминить


 
@!!ex_   (2007-06-07 21:31) [18]

> 2. В VAR поменял тип C на String

Гм. ЛОЛ честно говоря... Вообще то там Char должен быть. Клавиши не бывают стрингами.... :)))))))))

Я не стал делать сложные ошибки. Смысл?

А графики тут одна процедура. РИсующая башенки... И та юзает только прямоугольники. Инициализация из хелпа содрана.

P.S>
НЕнавижу IDE Паскаля...


 
Black-Death   (2007-06-07 21:32) [19]


> Гм. ЛОЛ честно говоря... Вообще то там Char должен быть.
>  Клавиши не бывают стрингами.... :)))))))))

А что. Стринг тоже работает на ура :)


 
grisme ©   (2007-06-08 19:49) [20]


> @!!ex_   (07.06.07 21:31) [18]
>
> > 2. В VAR поменял тип C на String
>
> Гм. ЛОЛ честно говоря... Вообще то там Char должен быть.
>  Клавиши не бывают стрингами.... :)))))))))


ну ничего, товарищч в верную сторону думал :o)


 
@!!ex_   (2007-06-08 22:36) [21]

> ну ничего, товарищч в верную сторону думал :o)

Так не честно! Ему компилятор подсказал! :))
Явно видно что сам не понимает, что в коде происходит.



Страницы: 1 вся ветка

Текущий архив: 2009.07.19;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
2-1243149942
fedor12345
2009-05-24 11:25
2009.07.19
Как реализовать вставку строку в StringGrid перед другой строкой


2-1243081532
@!!ex
2009-05-23 16:25
2009.07.19
Как сделать UDP Server работающий со всеми интерфейсами?


15-1242211730
Reactor
2009-05-13 14:48
2009.07.19
не могу зайти на сайты ... помогите, все мозги уже сломал


15-1242636295
@!!ex
2009-05-18 12:44
2009.07.19
Реализация JumpHook на Delphi


15-1242823906
xayam
2009-05-20 16:51
2009.07.19
Пустая страница