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