program gonka1; uses crt; var p,v,s,sw,pii,PIIx,px,vII,sII,zII,xII,sx,sx1,vx1,i,y:integer; {ZII-путь до о.у.;XII-тормозной путь;} Name: string[30]; N: char; begin randomize; sx:=10*(random (21)+20); sx1:=(sx-100); sx1:=sx1+((random(5)*10)-50); If sx1>200 then sx1:=sx1-50; vx1:=10; p:=0; v:=0; s:=0; TextMode (3); Textbackground (lightGray); ClrScr; TextColor (black); writeln ('Введите ваше имя'); readln (Name); ClrScr; window (21,2,71,8); ClrScr; writeln ('Добро пожаловать в игру Гонка!'); writeln ('Сгенерирована новая трасса.'); writeln ('Длинна трассы= ',sx,' километров.'); writeln ('На ',sx1,' километре ограничение скорости ',vx1,' км/ход.'); writeln (''); writeln ('для продолжения нажми Enter'); readln; ClrScr; writeln ('Гонка началась. Твой ход!'); repeat repeat window (5,10,60,10); write ('Передача '); N:=readkey; gotoxy (11,1); ClrEol; gotoxy (11,1); case N of #72: begin p:=p+1; write ('Вверх'); end; #80: begin p:=p-1; write ('Вниз'); end; #48: begin p:=p; write ('Без изменений'); end; #32: exit; else write ('Некорректная клавиша! Повторите ввод'); end; until (n=#72) or (n=#80) or (n=#48); window (21,1,71,8); if y=1 then p:=p-1; if y=2 then p:=p; if y=3 then p:=p+1; if y>3 then p:=p; if y<1 then p:=p; if p>4 then p:=p-1; if p<-1 then p:=p+1; v:=p*10; s:=s+v; window (5,12,39,25); ClrScr; writeln (Name); writeln; writeln ('Передача= ',p:8); writeln ('Скорость= ',v:9,' км/ход'); writeln ('Пройденный путь= ',s,'km'); writeln; writeln ('Финиш на ',sx,' километре'); if svx1 then begin writeln ('***** ВЫ НАРУШИЛИ ПРАВИЛА! *****'); writeln (' ИГРА ОКОНЧЕНА'); readln; exit; end; end; if s>sx then begin writeln ('***** ВЫ НАРУШИЛИ ПРАВИЛА! *****'); writeln (' ИГРА ОКОНЧЕНА'); readln; exit; end; end; pII:=pII+1; if sII=xII then pII:=pII; if zII=xII then pII:=pII; if zII4 then pII:=4; vII:=pII*10; sII:=sII+vII; window (50,12,80,25); writeln ('Компьютер'); writeln; writeln ('Передача= ',pII:8); writeln ('cкорость= ',vII:9,' км/ход'); writeln ('Пройденный путь= ',sII,'km'); if (s>=sII) then begin i:=s; px:=p; end else begin i:=sII; px:=pII; end; Until (i=sx) and (px=0) ; gotoxy (1,11); if i=s then write ('***** ВЫ ВЫЙГРАЛИ !!*****') else write ('***** ВЫ ПРОИГРАЛИ !*****'); readln; end.