Есть ответ 👍

Написать программу для игры arkanoid в pascal.abc

281
486
Посмотреть ответы 2

Ответы на вопрос:


Объяснение:

program zadachiGAME;

uses crt;

var a:array [1..59] of array [1..59] of string{integer};

var n,x,y,x1,y1,x3,y3,spawn,x4,y4,x5,y5,Xx,Yy,Xb,Yb,delta1,delta2,deltaGAMER,live:integer; var j:char;label restart1;label otskok1;label otskok2;

begin

restart1:

window (1,1,80,50);

clrscr;

cursoroff;

x1:=35;

y1:=44;

delta1:=1;

delta2:=1;

cursoroff;

live:=10;

y:=50;

x:=25;

deltagamer:=1;

gotoxy(x,y);

x3:=24;

y3:=1;

x4:=6;

y4:=45;

 

 

write('press for begin!');

readkey;

gotoxy(X,Y);

write('                ');

n:=1;

 

 

spawn:=1;

 y3:=1;

 x3:=24;

TextColor(3);

      for spawn:=1 to 50 do

      begin

         gotoxy(x3,y3);

         writeln('|                                  |');

         x3:=24;

         y3:=y3+1;

      end;

 

      TextColor(11);

       

      gotoxy(40,12);

       

   

      begin

       

      for y5:=10 to 22 do

       for x5:=36 to 44 do

           begin

           gotoxy(x5,y5);  

             a[x5,y5]:=('a');

             gotoxy(x5,y5);

             write ('a');

           end;

           

       end;

 

repeat

 

begin

 

delay(53);

x1:=x1+delta1;

y1:=y1+delta2;

gotoxy(x1,y1);

write ('*');

gotoxy(x1+delta1*(-1),y1+delta2*(-1));

write(' ');

 

 

if ((x1<>x5) and (y1<>y5)) then //место с присваванием,которое не работает по непонятным причинам

      begin

        Xx:=x1;

        Yy:=y1;

      end;

   

         

if (a[x1,y1]=('a')) then  

 

begin //проверка для ркошета в разные стороны

 

    if (((x1-Xx)=(-1)) and ((y1-Yy)=(-1)) and ((x1=x5) and (y1=y5)))

       

      then

       begin      

        a[x5,y5]:=('an');

        delta1:=delta1*(-1);    

       end;

     

   

    if (((x1-Xx)=1) and ((y1-Yy)=(-1)) and ((x1=x5) and (y1=y5)))

     

     then  

      begin

        a[x5,y5]:=('an');

        delta2:=delta2*(-1);

      end;

       

       

  end;

   

TextColor(11);

 

gotoxy(x4,y4);

begin //отображение некоторых данных

writeln('live - ',live:1);

writeln('Xx ',Xx,'Yy ',Yy);

write ('X1 ',x1,'Y1 ',y1);

end;

 

 

TextColor(5);

 

if (x1=58) or (x1=25) then

delta1:=(-1)*(delta1);

if (y1=2) then

delta2:=delta2*(-1);

 

 

if ((y1=y-1) and (x1=x)) or ((y1=y-1) and (x1=x-1)) or ((y1=y-1) and (x1=x+1)) or ((y1=y-1) and (x1=x+2))  or ((y1=y-1) and (x1=x+3)) then

delta2:=delta2*(-1)

else

if ((y1=y) and (x1<>x)) or ((y1=y) and (x1<>x-1)) or ((y1=y) and (x1<>x+1)) or ((y1=y) and (x1<>x+2))  or ((y1=y) and (x1<>x+3)) then

begin

gotoxy(x1,y1);

write(' ');

delta2:=delta2*(-1);

y1:=y1+delta2-1;

live:=live-1;

end;

 

TextColor(13);

 

if keypressed then

begin

//if keypressed then

  j:=readkey;

    case j of

     #77:deltaGAMER:=3;//вправо

     #75:deltaGAMER:=(-3);//влево

     #27:Exit;

    else

     deltagamer:=(0);

    end;

 

  if (x=25) or ((x>55) and (x<59)) then

 deltagamer:=(-1)*(deltagamer);

 

 if (x=25) and (j=#77) or (x=56) and (j=#75)then

 deltagamer:=(-1)*(deltagamer);

 

 

  x:=x+(1*deltaGamer);

 

  if j<> #75 then

   begin

    gotoxy(x,y);

    write ('---');

    end;

  if j<> #77 then

   begin

    gotoxy(x,y);

    write ('---');

    end

  else

 

 

gotoxy(x+deltagamer*(-1),wherey);

write('   ');

gotoxy(x,y);

 

  end;

end;

 

until live=0;

 

begin

clrscr;

gotoxy(37,25);

writeln (' Defith');

gotoxy(37,27);

writeln (' press "r" for restart');

j:=readkey;

case j of

#114:goto restart1;

#82:goto restart1;

#170:goto restart1;

#138:goto restart1;

#27:end;

end;

 

end.

Djama1234
4,5(28 оценок)

#include < stdio.h> int main() {     int n;     char c;     printf("исходное направление робота (n,w,s,e): ");     scanf("%c",& c);     printf("команда (0,1,-1,2,-2): ");     scanf("%d",& n);     while (n ! = 0){     switch (n) {     case 1 : break;     case -1:     switch (c) {     case 'n' : c = 's'; break;     case 'w' : c = 'e'; break;     case 's' : c = 'n'; break;     case 'e' : c = 'w'; break;     };     break;     case 2 :         switch (c) {     case 'n' : c = 'e'; break;     case 'w' : c = 'n'; break;     case 's' : c = 'w'; break;     case 'e' : c = 's'; break;     };     break;     case -2:         switch (c) {     case 'n' : c = 'w'; break;     case 'w' : c = 's'; break;     case 's' : c = 'e'; break;     case 'e' : c = 'n'; break;     };     break;     }     printf("c = %c\n", c);     printf("команда (0,1,-1,2,-2): ");     scanf("%d",& n);     }     return 0; } пример: исходное направление робота (n,w,s,e): nкоманда (0,1,-1,2,-2): 2c = e команда (0,1,-1,2,-2): 1c = e команда (0,1,-1,2,-2): -2c = n команда (0,1,-1,2,-2): -1c = s команда (0,1,-1,2,-2): 0

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS