#include "iostream"
#include "windows.h"
using namespace std;
int main()
{
int labirint[10][10] = //Сам лабиринт
{ { 1,1,1,1,1,1,1,1,1,1 },
{ 1,0,1,1,0,1,0,0,0,1 },
{ 1,0,0,0,0,1,0,1,0,1 },
{ 1,1,1,1,0,1,0,1,0,1 },
{ 1,0,0,0,0,1,0,1,0,1 },
{ 1,1,0,1,1,1,0,1,0,1 },
{ 1,1,0,0,0,0,0,1,0,1 },
{ 1,1,1,1,1,1,1,1,0,1 },
{ 1,0,0,0,0,0,0,0,0,1 },
{ 1,1,1,1,1,1,0,1,1,1 } };
int direction = 1; //Направление робота
int y = 0, x = 1; //Координаты робота
while (1) { //Цикл, из которого надо выйти при нахождении выхода
Sleep(1000);
system("cls");
labirint[y][x] = 2; //Указание робота
for (int i = 0; i < 10; i++) { //Вывод лабиринта в консоли
for (int a = 0; a < 10; a++) {
if (labirint[i][a] == 1) {
printf("%c", char(219));
}
else if (labirint[i][a] == 2) {
printf("%c", char(253));
}
else {
cout << " ";
}
}
cout << endl;
}
labirint[y][x] = 0; //Очистка хвоста робота
cout << y << " " << x << endl;
switch (direction) {
case 1: //Вверх
while (labirint[y][x - 1] == 1 && labirint[y + 1][x] == 0) {
y++;
}
if (labirint[y][x - 1] == 0) {
direction = 3;
x--;
}
else {
direction = 2;
}
break;
case 2: //Налево
while (labirint[y + 1][x] == 1 && labirint[y][x + 1] == 0) {
x++;
}
if (labirint[y + 1][x] == 0) {
direction = 1;
y++;
}
else {
direction = 4;
}
break;
case 3: //Направо
while (labirint[y - 1][x] == 1 && labirint[y][x - 1] == 0) {
x--;
}
if (labirint[y - 1][x] == 0) {
direction = 4;
y--;
}
else {
direction = 2;
}
break;
case 4: //Вниз
while (labirint[y][x + 1] == 1 && labirint[y - 1][x] == 0) {
y--;
}
if (labirint[y][x + 1] == 0) {
direction = 2;
x++;
}
else {
direction = 3;
}
}
}
system("pause");
return 0;
}