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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2012, 22:44   #1
zhenka619
Дурачок
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 33
Вопрос Рекорды. Алгоритм. Паскаль

Совершенно не понимаю как сделать рекорды!

Код:
uses crt;
var
  x,y:integer;
  mx,my,xe,ye,eochki:array [0..1000] of byte;
  ch : char;
  st : string;
  ima : string;
  echet,index,dlina,dlinamax,l,vx,vy,proverka,z,k:integer;
  records: text;
begin
  clrscr;
  Randomize;
  index:=0;
  y:=6;
  x:=3;
  dlinamax:=1;
  echet:=1;
  xe[echet]:=12;
  ye[echet]:=12;
  gotoxy(xe[echet],ye[echet]);
  eochki[echet]:=random(8)+1;
  write (eochki[echet]);
      while (x>=1) and (x<=80) and (y>=1) and (y<=25)  do begin
     	index:=index+1;
  	GoTOXY(x,y); mx[index]:=x; my[index]:=y;
  	write(#176);
    	
    		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}
            x:=x+vx;
            y:=y+vy;
            gotoxy(x,y);
            write(#1);
            delay(100);
    	gotoxy(mx[index-dlina],my[index-dlina]);
    	write(' ');
                        for l:=1 to 10 do
                        begin
    		            if (x=xe[l]) and (y=ye[l])  then begin
      			    dlinamax:=dlinamax+eochki[l];
     			    xe[l]:=random(70);
     			    ye[l]:=random(20);
      			    eochki[l]:=random(8)+1;
      			    gotoXY(xe[l],ye[l]);
     			    write(eochki[l]);
    		            end;
	            end;
    		if (dlina<dlinamax) then begin
   			 dlina:=dlina+1;
    		end;

   		
                        if (proverka>30) and (echet<10) then
                        begin
                     	proverka:=0;
                        echet:=echet+1;
                        eochki[echet]:=random(8)+1;
                        xe[echet]:=random(70)+1;
                        ye[echet]:=random(20)+1;
                        gotoxy(xe[echet],ye[echet]);
                        write(eochki[echet]);
                        end;
                        
                        if (index=dlinamax+2)then begin
   		 	 l:=1;
    				repeat
    					mx[l]:=mx[l+1];
    					my[l]:=my[l+1];
    					l:=l+1;
    				until l=dlinamax+2;
    			index:=dlinamax+1;
    		end;

                        for l:=0 to dlinamax+1 do begin
                        if (x=mx[l]) and (y=my[l]) and ((ch='a') or (ch='d' )or (ch='s' )or (ch='w' ))  then begin
                         x:=-100000000;
                        end; 
                        end;
                        

 l:=random(5);
 proverka:=proverka+l;

     end;{while}
clrscr;	
end.
Помогите кто-нибудь (только нужно что бы они были в порядке убывания)
"Никогда программы не содержат так мало ошибок, как при отсутствии каких-либо средств отладки."
Никлаус Вирт... Помог нажми на весы
zhenka619 вне форума Ответить с цитированием
Старый 16.02.2012, 23:21   #2
deathNC
Пользователь
 
Аватар для deathNC
 
Регистрация: 10.01.2010
Сообщений: 44
По умолчанию

Если Вы про четвёртую строчку кода, где куча массивов, то надо сделать так:
Код:
type
  TItem = record
    mx, my, xe, ye, eochki: Byte;
  end;
  TItems = Array[0..1000] of TItem;
И вместо четвёртой строки Вашего кода
mx,my,xe,ye,eochki:array [0..1000] of byte;
пишем это:
Код:
Items: TItems;
Раньше было так:
Код:
mx[i] := ...;
my[i] := ...;
стало так:
Код:
Items[i].mx := ...;
Items[i].my := ...;
deathNC вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод текста из файла (рекорды в игре) [Pascal] zhenka619 Помощь студентам 1 15.01.2012 10:36
Алгоритм->Паскаль Toofy Паскаль, Turbo Pascal, PascalABC.NET 4 29.05.2011 17:40
рекорды в игре komar1991 Общие вопросы Delphi 7 16.09.2010 10:34
Ваши рекорды в стандартных играх ОС Windows PSix1_73 Свободное общение 8 18.05.2009 19:30