Ваша цель - написать программу, которая создает случайную карту 10x10, используя 0
, 1
и 2
, и находит кратчайший путь от верхнего левого до нижнего правого, предполагая, что:
0 представляет поле травы: любой может ходить по нему;
1 представляет стену: вы не можете пересечь ее;
2 представляет портал: при входе на портал вы можете перейти на любой другой портал на карте.
Технические характеристики:
- Верхний левый элемент и нижний правый элемент должны быть 0 ;
- При создании случайной карты каждое поле должно иметь 60% шансов быть 0 , 30% - 1, а 10% - 2 ;
- Вы можете перемещаться в любом смежном поле (даже по диагонали);
- Ваша программа должна вывести карту и количество шагов по кратчайшему пути;
- Если нет правильного пути, ведущего к нижнему правому полю, ваша программа должна выводить только карту;
- Вы можете использовать любой ресурс, который захотите;
- Самый короткий код выигрывает.
Расчет шагов:
шаг - это фактическое движение; каждый раз, когда вы меняете поле, вы увеличиваете счетчик.
Выход:
0000100200
0100100010
1000000111
0002001000
1111100020
0001111111
0001001000
0020001111
1100110000
0000020100
9