Корректировка игры - Turbo Pascal
Формулировка задачи:
Решение задачи: «Корректировка игры»
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, которая ожидает ввода пользователя и затем закрывает график.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д