Twoim celem jest napisanie programu, który utworzy losową mapę 10x10 za pomocą 0
, 1
i 2
, i znajdzie najkrótszą ścieżkę od górnego lewego do prawego dolnego, zakładając, że:
0 oznacza pole trawiaste: każdy może po nim chodzić;
1 oznacza ścianę: nie można jej przekroczyć;
2 reprezentuje portal: wchodząc do portalu możesz przejść do dowolnego innego portalu na mapie.
Okular:
- Lewy górny element i prawy dolny element muszą mieć wartość 0 ;
- Podczas tworzenia losowej mapy każde pole powinno mieć 60% szansy na 0 , 30% na 1 i 10% na 2 ;
- Możesz poruszać się po dowolnym sąsiednim polu (nawet ukośnym);
- Twój program powinien wypisać mapę i liczbę kroków najkrótszej ścieżki;
- Jeśli nie ma prawidłowej ścieżki prowadzącej do prawego dolnego pola, twój program powinien wypisać tylko mapę;
- Możesz użyć dowolnego zasobu, który chcesz;
- Najkrótszy kod wygrywa.
Obliczanie kroków:
Krok jest rzeczywistym ruchem; za każdym razem, gdy zmieniasz pole, zwiększasz licznik.
Wynik:
0000100200
0100100010
1000000111
0002001000
1111100020
0001111111
0001001000
0020001111
1100110000
0000020100
9