Корректировка игры - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

В данной программе нарисован квадрат разделённый на 100 квадратов. В клетке (1;1) расположен "Мяч", им можно двигать(w-вверх,s-вниз,a-влево,d-вправо). В одной и той же клетке мяч дважды располагаться не может. Просьба:сделайте так чтобы в тех клетках где мяч был рисовалась красная окружность радиуса-10(для этого помогут массивы p1 и p2.В p1 расположены координаты красного мяча по х , в р2 расположены координаты по у). По нажатии "Enter" выходило из программы.
Помогите люди!!!

Решение задачи: «Корректировка игры»

textual
Листинг программы
uses graph,crt;
label n,n1,n2,n3,n4;
const p1:array[1..10] of integer =
(165,195,225,255,285,315,345,375,405,435);
      p2:array[1..10] of integer =
(115,145,175,205,235,265,295,325,355,385);
 
var
p:array[1..10,1..10] of integer;
 
procedure pole;
var i,j:integer;
begin
rectangle(150,100,450,400);
line(180,100,180,400);line(210,100,210,400);line(240,100,240,400);line(270,100,270,400);
line(300,100,300,400);line(330,100,330,400);line(360,100,360,400);line(390,100,390,400);
line(420,100,420,400);line(150,130,450,130);line(150,160,450,160);line(150,190,450,190);
line(150,220,450,220);line(150,250,450,250);line(150,280,450,280);line(150,310,450,310);
line(150,340,450,340);line(150,370,450,370);
for i:=1 to 10 do for j:=1 to 10 do
if p[i,j]=1 then begin setcolor(red);circle(p1[j],p2[i],10);setcolor(white) end;
end;
 
var
x,y,v,g,i,j:integer;
gd,gm:integer;q:char;
{<<!!>><<!!>><<!!>><<!!>><<!!>>NACHALO<<!!>><<!!>><<!!>><<!!>><<!!>>}
begin
x:=(150+180) div 2;{165}y:=(100+130) div 2;{115}
gd:=0;initgraph(gd,gm,' ');pole;circle(x,y,10);
v:=1;g:=1;p[v,g]:=1;
n:q:=readkey;
if (q<>'w') and (q<>'s') and (q<>'a') and (q<>'d')
then goto n else
{<<!!>><<!!>><<!!>><<!!>><<!!>>VVERH<<!!>><<!!>><<!!>><<!!>><<!!>>}
if q='w' then begin
if p[v-1,g]=1 then goto n else
if y=115 then goto n else begin cleardevice;
y:=y-30;setcolor(15);pole;circle(x,y,10);dec(v);p[v,g]:=1;end;goto n;end else
{<<!!>><<!!>><<!!>><<!!>><<!!>>VNIZ<<!!>><<!!>><<!!>><<!!>><<!!>>}
if q='s' then begin
if p[v+1,g]=1 then goto n else
if y=385 then goto n else begin cleardevice;
y:=y+30;setcolor(15);pole;circle(x,y,10);inc(v);p[v,g]:=1;end;goto n;end else
{<<!!>><<!!>><<!!>><<!!>><<!!>>VLEVO<<!!>><<!!>><<!!>><<!!>><<!!>>}
if q='a' then begin
if p[v,g-1]=1 then goto n else
if x=165 then goto n else begin cleardevice;
x:=x-30;setcolor(15);pole;circle(x,y,10);dec(g);p[v,g]:=1;end;goto n;end else
{<<!!>><<!!>><<!!>><<!!>><<!!>>VPRAVO<<!!>><<!!>><<!!>><<!!>><<!!>>}
if q='d' then begin
if p[v,g+1]=1 then goto n else
if x=435 then goto n else begin cleardevice;
x:=x+30;setcolor(15);pole;circle(x,y,10);inc(g);p[v,g]:=1;end;goto n;end;
readln;closegraph;end.

Объяснение кода листинга программы

В данном коде используется язык программирования Turbo Pascal. Он содержит несколько переменных и процедур, которые выполняют определенные действия. В начале кода объявляются две массивы чисел: p1 и p2. Они представляют собой координаты точек на графике. Далее объявляется переменная p, которая представляет собой двумерный массив размером 10x10. Она будет использоваться для хранения информации о том, какие точки на графике должны быть окрашены. Затем идет процедура pole, которая рисует на графике различные линии и окружности. Она использует функции из библиотеки graph, которая предоставляет возможности для работы с графиками. После этого идет цикл, который выполняется до тех пор, пока пользователь не нажмет клавишу 'w', 's', 'a' или 'd'. В зависимости от нажатой клавиши выполняются разные действия. Например, если была нажата клавиша 'w', то проверяется, является ли текущая точка на графике одной из точек, которые должны быть окрашены. Если это так, то цикл прерывается. Если же нет, то выводится сообщение с предложением изменить цвет точки. Также в коде есть другие переменные и процедуры, которые отвечают за изменение координат точек на графике и обработку нажатий клавиш. В конце кода вызывается функция readln, которая ожидает ввода пользователя и затем закрывает график.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы