Другие языки программирования и технологии

Приведите пример игры которая написана на Pascal ABC.

uses GraphABC, crt;
label metka,metka2;
var x,y: array [1..100] of integer;
n,i,x0,y0,dx,dy,r:integer;
ch,cp:char;
b,p:boolean;

procedure setting;
begin
SetFontColor(clBlue);
SetFontSize(32);
SetFontStyle(fsItalic);
SetBrushColor(ClWhite);
TextOut(WindowWidth-180,260,'Snake');
SetFontColor(clBlack);
SetFontSize(10);
//SetPenColor(clBlack);
Line(WindowWidth-195,0,WindowWidth-195,WindowHeight);
TextOut(WindowWidth-180,20,'N=');
TextOut(WindowWidth-180,40,'Клавиши управления: ');
TextOut(WindowWidth-180,60,'w,s,a,d');
TextOut(WindowWidth-180,80,'p-пауза');
end;

begin
metka2:
n:=3;
hidecursor;
SetWindowCaption('Snake');
for i:=n downto 1 do
x[i]:=60+(n-i)*10;
for i:=1 to n do
y[i]:=110;
r:=5;
randomize;
x0:=(Random(WindowWidth-210) div 10)*10+10;
y0:=(Random(WindowHeight-10) div 10)*10+10;
dx:=10;
dy:=0;
SetBrushColor(clGreen);
for i:=1 to n do
Circle(x[i],y[i],r);
SetBrushColor(clYellow);
Circle(x0,y0,r);
metka:
repeat
sleep(150);
for i:=n downto 2 do
begin
x[i]:=x[i-1];
y[i]:=y[i-1];
end;
x[1]:=x[1]+dx;
y[1]:=y[1]+dy;
ClearWindow;
setting;
TextOut(WindowWidth-160,20,IntToStr(n-3));
SetBrushColor(clYellow);
Circle(x[1],y[1],r);
SetBrushColor(clGreen);
for i:=2 to n do
Circle(x[i],y[i],r);
SetBrushColor(clYellow);
Circle(x0,y0,r);
if (x[1]=x0)and(y[1]=y0) then
begin
n:=n+1;
x0:=(Random(WindowWidth-210) div 10)*10+10;
y0:=(Random(WindowHeight-10) div 10)*10+10;
end;
for i:=2 to n do
if (x[i]=x0)and(y[i]=y0) then
begin
x0:=(Random(WindowWidth-210) div 10)*10+10;
y0:=(Random(WindowHeight-10) div 10)*10+10;
end;
b:=false;
for i:=2 to n do
if (x[1]=x[i])and(y[1]=y[i]) then b:=true;
until (keypressed)or(x[1]<5)or(x[1]>WindowWidth-210)
or(y[1]<5)or(y[1]>WindowHeight-10)or(b);
SetBrushColor(clWhite);
if (n>=33) then
begin
ClearWindow;
TextOut(300,150,'Победа! ');
end;
if (x[1]<5)or(x[1]>WindowWidth-210)
or(y[1]<5)or(y[1]>WindowHeight-10)or(b) then
begin
TextOut(300,150,'Поражение');
TextOut(280,170,'n-начать заново');
ch:=readkey;
while (ch<>'n')and(ch<>'т') do ch:=readkey;
goto metka2;
end
else
ch:=readkey;
if ch = #0 then ch := ReadKey;
case ch of
's','ы',#80: begin dx:=0; dy:=10; end;
'w','ц',#72: begin dx:=0; dy:=-10; end;
'd','в',#75: begin dx:=10; dy:=0; end;
'a','ф',#77: begin dx:=-10; dy:=0; end;
'p','з': begin
TextOut(300,150,'Pause');
p:=true;
while (p) do
begin
cp:=readkey;
if (cp='p')or(cp='з') then p:=false;
end;
end;
end;
if (n<33) then goto metka;
end.
Георгий Вирля
Георгий Вирля
2 721
Лучший ответ
Аскар Накебаев программа написана неправильно...
Тiлек Куанов а вы такие тупые что только и можэте копироапть исходник
загадай число и угадай его с трех попыток с подсказками
--
-=Edik=- -=Qurbanov=-
95 951
змейка
Игра "Угадай число" :

program test;
uses crt;
var
A,B,C,D,E,F,T,W,L,Q:real;
begin

textbackground(0);
clrscr;

D:=0;
T:=10;
E:=0;

while E=0 do begin

if E=1 then E:=E-1;

A:=0;
B:=random(100);

if A=-1 then E:=E+1;

while A=0 do begin

clrscr;

textcolor(15);

write('Угадай число (0-100) : ');
readln(C);

textcolor(red);
if C>100 then begin writeln('СЛИШКОМ БОЛЬШОЕ ЧИСЛО! ИНТЕРВАЛ: от 0 до 100'); T:=T+1; end;
if C<0 then begin writeln('СЛИШКОМ МАЛЕНЬКОЕ ЧИСЛО! ИНТЕРВАЛ: от 0 до 100'); T:=T+1; end;

textcolor(6);

if B>C then writeln('нет, я загадала число побольше...') else T:=T-1;
if B<C then writeln('нет, я загадала число поменьше...') else T:=T-1;

textcolor(10);

if B=C then begin writeln('да ты угадал!'); A:=A-1; end;

if B=C then begin D:=D+1; T:=T+9; end;
if T<=0 then A:=A+1;
if T<=0 then E:=E+1;

textcolor(4);

if T<=0 then writeln('ТЫ ПРОИГРАЛ!!!');

textcolor(green);

if B=C then writeln('+9 жизней');

textcolor(4);

if B>C then writeln('-1 жизнь');
if B<C then writeln('-1 жизнь');

textcolor(9);

writeln('твои очки: ',D);
writeln('твои жизни: ',T);

textcolor(yellow);

writeln('нажми ENTER');

readln;

end;
end;

end.
RA
Rza Aliyev
316
uses GraphABC,Events,Utils; //необходимые библиотеки подключены
var pr,px,py,kx,ky,ku,pc,s: integer; //переменные: положение ракетки, координаты мяча, коэффициенты отражения, положение ракетки компьютера

procedure KeyDown(Key: integer); //процедура обработки нажтия клавиши
begin
case Key of
VK_Up: if pr>10 then pr:=pr-10; //если вверх, и если ракетка не достигла края экрана, сместить координаты ракетки на 10 вверх
VK_Down: if pr<490 then pr:=pr+10; //то же, только вниз
end;
end;

procedure Pm; //процедура определения координат мячика
begin
if px<10 then
begin
kx:=kx*(-1); //если достиг стенки левой - поменять коэффициент смещения по х на противоположный
s:=random(2);
if s=1 then ky:=ky*(-1);
end;
if (py<10) or (py>490) then ky:=ky*(-1); //если достиг стенки верхней или нижней - поменять коэффициент смещения на противоположный
if px>590 then //если достиг правой (игрока) стенки, проверяем
if (py>pr-20) and (py<pr+20) then kx:=kx*(-1) else //если координаты мяча совпадают с координатами ракетки, меняем коэффициент смешения по х на противоположный
begin //иначе
showmessage('Вы упустили мячик!'); //выводим сообщение
inc(ku); //увеличиваем счетчик упущенных мячей
px:=15; //возвращаем мяч в исходную позицию у противоположной стенки
py:=250;
end;
px:=px+kx; //смещаем координаты на коэффициенты смещения
py:=py+ky;
end;

begin
lockdrawing; //запрет прорисовки в окне (мигание убираем)
setwindowsize(600,500); //размер окна
kx:=5; ky:=1; px:=15; py:=250; pr:=250; //задаем координаты смещения и позицию мяча
repeat //цикл с постусловием
clearwindow; //очистить окно
setbrushcolor(clgreen); //цвет кисти зеленый
rectangle(5,5,595,495); //прямоугольник - поле
Pm; //процедура определения координат мяча
setbrushcolor(clwhite); //цвет кисти - белый
circle(px,py,10); //мяч
OnKeyDown:=KeyDown; //процедура нажатия клавиши
pc:=py; //ракетка противника следует за мячом неотступно...
setbrushcolor(clblack); //цвет кисти - черный
rectangle(592,pr-20,597,pr+20); //ракетки
rectangle(3,pc-20,8,pc+20);
sleep(25); //задержка
redraw; //перерисовка
until ku=5; //цикл повторяется до 5 пропущенных мячей
end.
Что то типо тениса
Стас Бузенков uses ABCObjects,GraphABC,Timers;

const
clPlayer = Color.BurlyWood;

var
kLeftKey,kRightKey: boolean;
kSpaceKey: integer;
/// Игрок
Player: RectangleABC;
/// Таймер движения врагов
t: Timer;
/// Флаг конца игры
EndOfGame: boolean;
/// Количество неигровых объектов
StaticObjectsCount: integer;
/// Счетчик выигрышей
Wins: integer;
/// Счетчик проигрышей
Falls: integer;
/// Информационная строка
InfoString: RectangleABC;
/// Сообщение в начале игры
NewGame: RoundRectABC;

type
KeysType = (kLeft,kRight);

/// Класс пули
Pulya = class(CircleABC)
public
constructor Create(x,y: integer);
procedure Move; override;
end;

/// Класс врага
Enemy = class(RectangleABC)
public
constructor Create(x,y,w: integer);
procedure Move;
var a, b: uint64;
label 1, 2, 3, 4;
begin
1:a *=0;
b *=0;
readln(a);
readln(b);
if(a>b) then goto 2;
if(a',b);
goto 1;
3:writeln (a,'<',b);
goto 1;
4:writeln (a,'=',b);
goto 1;
end.