Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2012, 11:36   #1
zhenka619
Дурачок
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 33
Вопрос [Pascal], голова змейки

Код:
uses crt;
var
  x,y,vx,vy:integer;
  cx,kx,ky,cy:array [0..99] of byte;
 ch:char;
  d: integer;
  ps,xe,ye,i:integer; 
  l: integer;
   f: integer;
begin
  writeln('upravlenie ocychectvl9etca knopkami -w-a-s-d-');
  readln;
  clrscr;
  Randomize;
 
  x:=1; 
  y:=12;
  xe:=45;
  ye:=13;
  gotoxy(xe,ye);
  writeln('$');
  i:=1;
  		while (x>=1)and(x<=80)and(y>=1)and(y<=25)do begin
                   
  			for f:=0 to 80 do begin
  				if (x=kx[f]) and (y=ky[f])then x:=-1;
  			end;
 
 			ps:=(ps+101) mod 100;
			GoTOXY(x,y); cx[ps]:=x; cy[ps]:=y;
        		textcolor(white);
  			write(#178);
    			delay(100);
    				if keypressed then begin ch:=readkey;
    						case ch of
      						'd':begin vx:=1; vy:=0 end;
      						'a':begin vx:=-1; vy:=0 end;
   							'w':begin vx:=0; vy:=-1 end;
      						's':begin vx:=0; vy:=1 end;
      					end;
    				end;{if}
   		      gotoxy(cx[(ps-i+100) mod 100],cy[(ps-i+100) mod 100]);
    			write(' ');
    			inc(x,vx);
    			inc(y,vy);
     				if (l>=2) and (l mod 2 =0) then begin     				
     				       d:=d+1;
     					 kx[d]:=random(70);
                               ky[d]:=random(20);
     					 gotoxy(kx[d],ky[d]);
     					 writeln('X');
             			 l:=l-2;
     				end;
 
 			     if (x=xe) and (y=ye) then begin
    					i:=i+1;
      				l:=l+1;
      				xe:=random(70)+2;
      				ye:=random(20)+2;
      				gotoXY(xe,ye);
      				write('$');   
    			     end;

  	   end;{while}


  		clrscr;
 		gotoxy(32,12);
  		write('LOST!LOST!LOST');
   		delay(1000);
   		clrscr;
   		delay(1000);
    		gotoxy(32,12); 
   		write('LOST!LOST!LOST');
   		delay(1000);
    		clrscr;
    		delay(1000);
   		gotoxy(32,12); 
    		write('LOST!LOST!LOST');
   		delay(1000);
   		clrscr;
    		delay(1000);
     		gotoxy(32,12);
  		write('Bash Resultat =',i);
  		delay(2000);
 
end.
Не совсем понимаю как сделать голову, через массив или просто?
Заранее благоларю
"Никогда программы не содержат так мало ошибок, как при отсутствии каких-либо средств отладки."
Никлаус Вирт... Помог нажми на весы
zhenka619 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal хвост змейки zhenka619 Помощь студентам 1 30.12.2011 14:01
Pascal движение змейки zhenka619 Помощь студентам 0 29.12.2011 22:45
[Pascal] Помогите с движением змейки Рамик Помощь студентам 5 08.09.2009 21:53
Голова Кругом TH000 Свободное общение 19 03.07.2009 12:29