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 
 К началу страницы 
+ Ответить 
2 страниц V < 1 2  
 Ответить  Открыть новую тему 
Ответов(20 - 23)
сообщение
Сообщение #21


Гость






Ща хэлп напортачу:
Зелёный танк управление стрелочками, стрелять на ноль на цыфроблоке,
Жёлтый танк управление на AWDS, стрелять на пробел.

Исходники я потерял, у меня комп ломался, а вшивый мастер всё утёр.
Там на сайте есть ещё Invaders, посмотри. Сделана на VGA драве без буфера ---> фиговая перересовка. Исходники тоже потерял, но щас тружусь над новой версие этой проги, на 320*200*256.

Я кстате ссылку на своём саёте на ваш поставил. В ближайшее время собераюсь обновить (Сайт не очень выглядит) sad.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


Да, Invaders, я тоже посомтрел - ничего.... (не понравилось только то, что можно неболее одного снаряда посылать по тарелкам)
Кстати исходники если хочешь ты можешь размещать прямо на сайте pascal.net.ru (а уебя делать только ссылку) - у нас мощный сервер (по сравнению с народом-то ;)) и ссылка получается доступной отовсюду...
Просто скидывай мне их на почту Oleg_Z@pascal.net.ru
С указанием авторства, и с описанием (кратким)...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Гость






Ура!!! Я обновил сайт. Sanchous-game. Скоро им займусь вплотную. Кто хочет посмотрите.
Oleg_Z если я ещё чтонить сбацаю на Турбе, можно вместе с исходникими и выполнимый файл присылать, и чтоб он такой на вашем сайте висел?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


Да, конечно!
В архив помещаешь исходники, EXE, ну мальнький README.txt, в которой краткочто это вообще такое, и соответсвенно не забудь имя автора, чтобы написать на сайте... ;)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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