Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses crt;
- { A_ _ _B_ _ _C_ _ _D
- | | | |
- | 11 | 12 | 13 |
- E_ _ _F_ _ _G_ _ _J
- | | | |
- | 21 |РОБОТ| 23 |
- K_ _ _L_ _ _M_ _ _N
- | | | |
- | 31 | 32 | 33 |
- O_ _ _P_ _ _Q_ _ _S }
- var {Горизонтальные стенки:}
- AB,BC,CD,EF,FG,GJ,KL,LM,MN,OP,PQ,QS:integer;
- {Вертикальные стенки:}
- AE,EK,KO,BF,FL,LP,CG,GM,MQ,DJ,JN,NS:integer;
- {Клетки:}
- ABFE,DCGF,CDJG,EFLK,FGML,GJNM,KLPO,LMQP,MNSQ:integer;
- {Координаты робота:}
- pos:integer;
- finish:string;//клетка финиша
- status:integer;//Ввод линий, координат робота
- x:integer;
- up,down,left,right:integer;
- label start;
- procedure write_robot;
- begin
- gotoxy(25,1);write('Введите начальное положение робота');
- gotoxy(25,2);writeln('ABFE = 1');
- gotoxy(25,3);writeln('DCFG = 2');
- gotoxy(25,4);writeln('CDJG = 3');
- gotoxy(25,5);writeln('EFLK = 4');
- gotoxy(25,6);writeln('FGML = 5');
- gotoxy(25,7);writeln('GJNM = 6');
- gotoxy(25,8);writeln('KLPO = 7');
- gotoxy(25,9);writeln('LMQP = 8');
- gotoxy(25,10);writeln('MNSQ = 9');
- end;
- procedure write_pos(pos:integer);
- begin
- case pos of
- 11:begin gotoxy(2,3);write('РОБОТ');end;
- 12:begin gotoxy(8,3);write('РОБОТ');end;
- 13:begin gotoxy(14,3);write('РОБОТ');end;
- 21:begin gotoxy(2,6);write('РОБОТ');end;
- 22:begin gotoxy(8,6);write('РОБОТ');end;
- 23:begin gotoxy(14,6);write('РОБОТ');end;
- 31:begin gotoxy(2,9);write('РОБОТ');end;
- 32:begin gotoxy(8,9);write('РОБОТ');end;
- 33:begin gotoxy(14,9);write('РОБОТ');end;
- end;
- end;
- procedure dir;
- begin
- if pos=11 t
- \hen begin if AB=0 then up:=1 else up:=0; if BF=0 then right:=1 else right:=0; if EF=0 then down:=1 else down:=0; if AE=0 then left:=1 else left:=0;end;
- if pos=12 then begin if BC=0 then up:=1 else up:=0; if CG=0 then right:=1 else right:=0; if FG=0 then down:=1 else down:=0; if BF=0 then left:=1 else left:=0;end;
- if pos=13 then begin if CD=0 then up:=1 else up:=0; if DJ=0 then right:=1 else right:=0; if GJ=0 then down:=1 else down:=0; if CG=0 then left:=1 else left:=0;end;
- if pos=21 then begin if EF=0 then up:=1 else up:=0; if FL=0 then right:=1 else right:=0; if KL=0 then down:=1 else down:=0; if EK=0 then left:=1 else left:=0;end;
- if pos=22 then begin if FG=0 then up:=1 else up:=0; if GM=0 then right:=1 else right:=0; if LM=0 then down:=1 else down:=0; if FL=0 then left:=1 else left:=0;end;
- if pos=23 then begin if GJ=0 then up:=1 else up:=0; if JN=0 then right:=1 else right:=0; if MN=0 then down:=1 else down:=0; if GM=0 then left:=1 else left:=0;end;
- if pos=31 then begin if KL=0 then up:=1 else up:=0; if LP=0 then right:=1 else right:=0; if KO=0 then down:=1 else down:=0; if OP=0 then left:=1 else left:=0;end;
- if pos=32 then begin if LM=0 then up:=1 else up:=0; if MQ=0 then right:=1 else right:=0; if LP=0 then down:=1 else down:=0; if PQ=0 then left:=1 else left:=0;end;
- if pos=33 then begin if MN=0 then up:=1 else up:=0; if NS=0 then right:=1 else right:=0; if MQ=0 then down:=1 else down:=0; if QS=0 then left:=1 else left:=0;end;
- gotoxy(25,1);writeln('Введите направление робота ( 0 - автопрохождение)');
- gotoxy(25,2);writeln('Вверх = 1');
- gotoxy(25,3);writeln('Вниз = 2');
- gotoxy(25,4);writeln('Вправо = 3');
- gotoxy(25,5);writeln('Влево = 4');
- gotoxy(1,12);
- read(x);
- case x of
- 0:status:=0;
- 1:if up=1 then pos:=pos-10 else begin TextColor(red);writeln('Нельзя двигаться наверх');readkey;end;
- 2:if down=1 then pos:=pos+10 else begin TextColor(red);writeln('Нельзя двигаться вниз');readkey;end;
- 3:if right=1 then pos:=pos+1 else begin TextColor(red);writeln('Нельзя двигаться вправо');readkey;end;
- 4:if left=1 then pos:=pos-1 else begin TextColor(red);writeln('Нельзя двигаться влево');readkey;end;
- end;
- end;
- procedure wall;
- begin
- gotoxy(25,1);
- write('Выберите стенки (Чтобы продолжить, введите 0)');
- gotoxy(25,2);write('AB = 1');gotoxy(25,3);write('BC = 2');gotoxy(25,4);write('CD = 3');
- gotoxy(25,5);write('EF = 4');gotoxy(25,6);write('FG = 5');gotoxy(25,7);write('GJ = 6');
- gotoxy(25,8);write('KL = 7');gotoxy(25,9);write('LM = 8');gotoxy(25,10);write('MN = 9');
- gotoxy(25,11);write('OP = 10');gotoxy(25,12);write('PQ = 11');gotoxy(25,13);write('QS = 12');
- { II }gotoxy(35,2);write('AE = 13');gotoxy(35,3);write('EK = 14');gotoxy(35,4);write('KO = 15');
- gotoxy(35,5);write('BF = 16');gotoxy(35,6);write('FL = 17');gotoxy(35,7);write('LP = 18');
- gotoxy(35,8);write('CG = 19');gotoxy(35,9);write('GM = 20');gotoxy(35,10);write('MQ = 21');
- gotoxy(35,11);write('DJ = 22');gotoxy(35,12);write('JN = 23');gotoxy(35,13);write('NS = 24');
- end;
- procedure write_pole;
- begin
- gotoxy(1,1);
- TextColor(white);write('A');if AB=1 then TextColor(green) else TextColor(white);write('_ _ _');TextColor(white); write('B');if BC=1 then TextColor(green) else TextColor(white);write('_ _ _');TextColor(white);write('C');if CD=1 then TextColor(green) else TextColor(white);write('_ _ _');Textcolor(white);writeln('D');
- if AE=1 then TextColor(green) else TextColor(white); write('| ');if BF=1 then TextColor(green) else TextColor(white); write('| ');if CG=1 then TextColor(green) else Textcolor(white);write('| ');if DJ=1 then textcolor(green) else Textcolor(white);writeln('| ');
- if AE=1 then TextColor(green) else TextColor(white); write('| ');if BF=1 then TextColor(green) else TextColor(white); write('| ');if CG=1 then TextColor(green) else Textcolor(white);write('| ');if DJ=1 then textcolor(green) else Textcolor(white);writeln('| ');
- TextColor(white);write('E');if EF=1 then TextColor(green) else TextColor(white);write('_ _ _');TextColor(white); write('F');if FG=1 then TextColor(green) else TextColor(white);write('_ _ _');TextColor(white);write('G');if GJ=1 then TextColor(green) else TextColor(white);write('_ _ _');Textcolor(white);writeln('J');
- if EK=1 then TextColor(green) else TextColor(white); write('| ');if FL=1 then TextColor(green) else TextColor(white); write('| ');if GM=1 then TextColor(green) else Textcolor(white);write('| ');if JN=1 then textcolor(green) else Textcolor(white);writeln('| ');
- if EK=1 then TextColor(green) else TextColor(white); write('| ');if FL=1 then TextColor(green) else TextColor(white); write('| ');if GM=1 then TextColor(green) else Textcolor(white);write('| ');if JN=1 then textcolor(green) else Textcolor(white);writeln('| ');
- TextColor(white);write('K');if KL=1 then TextColor(green) else TextColor(white);write('_ _ _');TextColor(white); write('L');if LM=1 then TextColor(green) else TextColor(white);write('_ _ _');TextColor(white);write('M');if MN=1 then TextColor(green) else TextColor(white);write('_ _ _');Textcolor(white);writeln('N');
- if KO=1 then TextColor(green) else TextColor(white); write('| ');if LP=1 then TextColor(green) else TextColor(white); write('| ');if MQ=1 then TextColor(green) else Textcolor(white);write('| ');if NS=1 then textcolor(green) else Textcolor(white);writeln('| ');
- if KO=1 then TextColor(green) else TextColor(white); write('| ');if LP=1 then TextColor(green) else TextColor(white); write('| ');if MQ=1 then TextColor(green) else Textcolor(white);write('| ');if NS=1 then textcolor(green) else Textcolor(white);writeln('| ');
- TextColor(white);write('O');if OP=1 then TextColor(green) else TextColor(white);write('_ _ _');TextColor(white); write('P');if PQ=1 then TextColor(green) else TextColor(white);write('_ _ _');TextColor(white);write('Q');if QS=1 then TextColor(green) else TextColor(white);write('_ _ _');Textcolor(white);writeln('S');
- end;
- begin
- status:=1;
- start:
- if status=1 then begin
- write_pole;
- wall;
- gotoxy(1,13);
- read(x);
- case x of
- 0: status:=2;
- 1: if AB=1 then AB:=0 else AB:=1;
- 2: if BC=1 then BC:=0 else BC:=1;
- 3: if CD=1 then CD:=0 else CD:=1;
- 4: if EF=1 then EF:=0 else EF:=1;
- 5: if FG=1 then FG:=0 else FG:=1;
- 6: if GJ=1 then GJ:=0 else GJ:=1;
- 7: if KL=1 then KL:=0 else KL:=1;
- 8: if LM=1 then LM:=0 else LM:=1;
- 9: if MN=1 then MN:=0 else MN:=1;
- 10: if OP=1 then OP:=0 else OP:=1;
- 11: if PQ=1 then PQ:=0 else PQ:=1;
- 12: if QS=1 then QS:=0 else QS:=1;
- 13: if AE=1 then AE:=0 else AE:=1;
- 14: if EK=1 then EK:=0 else EK:=1;
- 15: if KO=1 then KO:=0 else KO:=1;
- 16: if BF=1 then BF:=0 else BF:=1;
- 17: if FL=1 then FL:=0 else FL:=1;
- 18: if LP=1 then LP:=0 else LP:=1;
- 19: if CG=1 then CG:=0 else CG:=1;
- 20: if GM=1 then GM:=0 else GM:=1;
- 21: if MQ=1 then MQ:=0 else MQ:=1;
- 22: if DJ=1 then DJ:=0 else DJ:=1;
- 23: if JN=1 then JN:=0 else JN:=1;
- 24: if NS=1 then NS:=0 else NS:=1;
- end;
- clrscr();
- goto start;
- end;
- if status=2 then begin
- write_pole;
- write_robot;
- read(x);
- case x of
- 1:begin gotoxy(2,3);write('РОБОТ');pos:=11;end;
- 2:begin gotoxy(8,3);write('РОБОТ');pos:=12;end;
- 3:begin gotoxy(14,3);write('РОБОТ');pos:=13;end;
- 4:begin gotoxy(2,6);write('РОБОТ');pos:=21;end;
- 5:begin gotoxy(8,6);write('РОБОТ');pos:=22;end;
- 6:begin gotoxy(14,6);write('РОБОТ');pos:=23;end;
- 7:begin gotoxy(2,9);write('РОБОТ');pos:=31;end;
- 8:begin gotoxy(8,9);write('РОБОТ');pos:=32;end;
- 9:begin gotoxy(14,9);write('РОБОТ');pos:=33;end;
- end;
- status:=3;
- clrscr();
- end;
- if status=3 then begin
- write_pole;
- write_pos(pos);
- dir;
- clrscr();
- goto start;
- end;
- if status=4 then begin
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment