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

> ТАНКИ
сообщение
Сообщение #1





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

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


Вот "отцовская" программа:

Код
{Tanki, by Dean Cane Kenoby}
program Tanki;
uses graph,crt;
var
gd,gm,x,y,i,k,j,x1,y1,x2,y2,x3,y3,k1,li1,li2,w,w1:integer;
s1,s2: string;
t,z: text;

procedure F1;   {Процедура подключения файлов для ведения счета}
begin
 clrscr;
 assign(t,'C:t22.txt');
 rewrite(t); close(t);
 append(t);
 writeln(t,li1);
 close(t);

 clrscr;
 assign(z,'C:t33.txt');
 rewrite(z); close(z);
 append(z);
 writeln(z,li2);
 close(z);
end;

procedure str;   {Процедура преобразования счета в строковый формат}
begin
 reset(t);
 readln(t,s1);
 close(t);

 reset(z);
 readln(z,s2);
 close(z);
end;

procedure kvadrat;  {Процедура построения первого танка}
begin
 setcolor(4);
 setfillstyle(11,4);
 bar(x,y,x+30,y+30);
 setcolor(22);
 line(x+15,y+15,x+x1,y+y1);  {Пушка}
 circle(x+15,y+15,5);
end;

procedure kvadrat2;  {Процедура построения второго танка}
begin
 setcolor(1);
 setfillstyle(7,4);
 bar(x2,y2,x2-30,y2-30);
 setcolor(12);
 line(x2-15,y2-15,x2-x3,y2-y3);  {Пушка}
 circle(x2-15,y2-15,5);
end;

procedure exp2;  {Процедура взрыва и восстановления второго танка}
begin
 circle(x2-15,y2-15,5); delay(5000);
 circle(x2-15,y2-15,10);delay(5000);
 circle(x2-15,y2-15,15);delay(5000);
 circle(x2-15,y2-15,20);delay(5000);
 x2:=getmaxx; y2:=getmaxy;
 li1:=li1+1;
 circle(x2-15,y2-15,20);delay(5000);
 circle(x2-15,y2-15,15);delay(5000);
 circle(x2-15,y2-15,10);delay(5000);
 circle(x2-15,y2-15,5); delay(5000);
end;

procedure exp;    {Процедура взрыва и восстановления первого танка}
begin
 circle(x+15,y+15,5); delay(5000);
 circle(x+15,y+15,10);delay(5000);
 circle(x+15,y+15,15);delay(5000);
 circle(x+15,y+15,20);delay(5000);
 x:=1; y:=1;
 li2:=li2+1;
 circle(x+15,y+15,20);delay(5000);
 circle(x+15,y+15,15);delay(5000);
 circle(x+15,y+15,10);delay(5000);
 circle(x+15,y+15,5); delay(5000);
end;

procedure shot;    {Выстрел первого танка, если на траэкт. пули есть 2 танк происходит взрыв(exp2)}
begin
 if w=2 then
  begin
   for i:=y+y1+15 to getmaxy do
    begin
    putpixel(x+15,i,13); delay(100);
    putpixel(x+15,i-1,0); delay(100);
    if (i=y2-15) and (x+15=x2-15) then exp2;
    end;
  end;
if w=8 then
 begin
  for i:=y-15 downto 0 do
   begin
    putpixel(x+15,i,13); delay(100);
    putpixel(x+15,i+1,0); delay(100);
    if (i=y2-15) and (x+15=x2-15) then exp2;
   end;
 end;

if w=4 then
 begin
  for i:=x-15 downto 0 do
   begin
    putpixel(i,y+15,13); delay(100);
    putpixel(i+1,y+15,0); delay(100);
    if (i=x2-15) and (y+15=y2-15) then exp2;
   end;
 end;

if w=6 then
begin
 for i:=x+x1+15 to getmaxx do
  begin
   putpixel(i,y+15,13); delay(100);
   putpixel(i-1,y+15,0); delay(100);
   if (i=x2-15) and (y+15=y2-15) then exp2;
  end;
end;
end;

procedure shot2;   {Выстрел второго танка, если на траэкт. пули есть 1 танк происходит взрыв(exp)}
begin
if w1=2 then
 begin
  for i:=y2-y3 to getmaxy do
   begin
    putpixel(x2-15,i,11); delay(100);
    putpixel(x2-15,i-1,0); delay(100);
    if (i=y+15) and (x2-15=x+15) then exp;
   end;
 end;

if w1=8 then
 begin
  for i:=y2-35 downto 0 do
   begin
    putpixel(x2-15,i,11); delay(100);
    putpixel(x2-15,i+1,0); delay(100);
    if (i=y+15) and (x2-15=x+15) then exp;
   end;
 end;

if w1=4 then
 begin
  for i:=x2-35 downto 0 do
   begin
    putpixel(i,y2-15,11); delay(100);
    putpixel(i+1,y2-15,0); delay(100);
    if (i=x+15) and (y2-15=y+15) then exp;
   end;
 end;

if w1=6 then
 begin
  for i:=x2-x3 to getmaxx do
   begin
    putpixel(i,y2-15,11); delay(100);
    putpixel(i-1,y2-15,0); delay(100);
    if (i=x+15) and (y2-15=y+15) then exp;
   end;
 end;
end;

procedure move;   {Процедура отвечающая за движения и выстрел обоих танков}
begin
k:=ord(readkey);
case k of
 115: begin y:=y+32; x1:=15; y1:=35; w:=2  end;     {2}
 119: begin y:=y-32; x1:=15; y1:=-5; w:=8  end;     {8}
 97:  begin x:=x-32; x1:=-5; y1:=15; w:=4  end;     {4}
 100: begin x:=x+32; x1:=35; y1:=15; w:=6  end;     {6}
 50:  begin y2:=y2+32; x3:=15; y3:=-5; w1:=2 end;   {2}
 56:  begin y2:=y2-32; x3:=15; y3:=35; w1:=8 end;   {8}
 52:  begin x2:=x2-32; x3:=35; y3:=15; w1:=4 end;   {4}
 54:  begin x2:=x2+32; x3:=-5; y3:=15; w1:=6 end;   {6}
 32:  shot;
 48:  shot2;
else j:=1;
end;
end;

procedure ramka;  {Процедура разгранения поля по клеткам и таблица очков}
begin
cleardevice;
setfillstyle(1,2);
bar(getmaxx-158,0,getmaxx,32);
setcolor(14);
moveto(getmaxx-150,8);
outtext('Player 1');
moveto(getmaxx-60,8);
outtext(s1);
setcolor(4);
moveto(getmaxx-150,20);
outtext('Player 2');
moveto(getmaxx-60,20);
outtext(s2);
setcolor(2);
line(0,0,getmaxx,0);
line(0,0,0,getmaxy);
line(0,getmaxy,getmaxx,getmaxy);
line(getmaxx,0,getmaxx,getmaxy);
for i:=0 to round(getmaxx/32) do line(i*32,0,i*32,getmaxy);
for i:=0 to round(getmaxy/32) do line(0,i*32,getmaxx,i*32);
end;

begin    {Начало программы}
gd:=detect;
initgraph(gd,gm,'c:\tp7\unit');
setbkcolor(0);
textcolor(0);
x:=1; y:=1;  {Задание начальных координат и значений}
x1:=35; y1:=15;
x2:=getmaxx; y2:=getmaxy;
x3:=35; y3:=15;
li1:=0; li2:=0;

repeat  {Основной цикл игры}
 clrscr;
 cleardevice;
 f1; str;
 ramka;
 kvadrat;
 kvadrat2;
 move;
until j=1; {Выход из программы}
readln;
end.   {Конец программы}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Dean_Cane_Kenoby   ТАНКИ   27.03.2003 0:36
Ivs   Re: ТАНКИ   27.03.2003 2:18
Slam   Re: ТАНКИ   27.03.2003 16:09
AlaRic   Re: ТАНКИ   27.03.2003 20:31
Slam   Re: ТАНКИ   28.03.2003 0:56
deman   Re: ТАНКИ   31.03.2003 19:48
Dean_Cane_Kenoby   Re: ТАНКИ   2.04.2003 0:02
Alex   Re: ТАНКИ   2.04.2003 20:13
Alex   Re: ТАНКИ   2.04.2003 20:15
Good_Day   Re: ТАНКИ   14.05.2003 8:32
Echelone   У меня тоже не пашет - пишет ошибка формата файла…   6.01.2005 22:52
volvo   Echelone Чем пытаешься скомпилировать? TP70 прошл…   6.01.2005 23:05
Guest   Компилировал в TP 7.01 - нифига. А еще с borland-…   7.01.2005 3:02
Altair   никаких проблемм быть не может... используйте стан…   7.01.2005 3:07
Echelone   Вроде скомпилировалась...работает... Странно - н…   7.01.2005 3:23
Echelone   Спасибо за исходник. А кто может дать инфу по иск…   8.01.2005 1:46
Dark   Ну в оригинальных танках имнно рандомом =)))) пока…   23.01.2005 9:58
SHnur   Мне не понравилось , что при нажатии любой кнопки …   13.02.2005 17:36
Lan   чуваки если кто заглянет на эту тему ещё разок пос…   21.04.2005 23:12
Altair   не, чего-то не то, управление идет одним танком а …   22.04.2005 1:04
Lan   Ща хэлп напортачу: Зелёный танк управление стрелоч…   22.04.2005 20:17
Altair   Да, Invaders, я тоже посомтрел - ничего.... (не по…   22.04.2005 21:20
Lan   Ура!!! Я обновил сайт. Sanchous-game. …   26.04.2005 22:36
Altair   Да, конечно! В архив помещаешь исходники, EXE,…   27.04.2005 20:38


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

 





- Текстовая версия 25.04.2024 9:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name