Il tuo obiettivo è quello di scrivere un programma che crei una mappa casuale 10x10 usando 0
, 1
e 2
, e trovi il percorso più breve da in alto a sinistra a in basso a destra, supponendo che:
0 rappresenta un campo in erba: chiunque può camminarci sopra;
1 rappresenta un muro: non puoi attraversarlo;
2 rappresenta un portale: quando si accede a un portale, è possibile spostarsi su qualsiasi altro portale nella mappa.
Specifiche:
- L'elemento in alto a sinistra e quello in basso a destra devono essere 0 ;
- Quando si crea la mappa casuale, ogni campo dovrebbe avere il 60% di probabilità di essere uno 0 , il 30% di essere un 1 e il 10% di essere un 2 ;
- Puoi muoverti in qualsiasi campo adiacente (anche in diagonale);
- Il programma dovrebbe produrre la mappa e il numero di passaggi del percorso più breve;
- Se non esiste un percorso valido che porta al campo in basso a destra, il programma dovrebbe generare solo la mappa;
- Puoi usare qualsiasi risorsa tu voglia;
- Il codice più corto vince.
Calcolo dei passi:
un passo è un movimento reale; ogni volta che cambi campo, aumenti il contatore.
Produzione:
0000100200
0100100010
1000000111
0002001000
1111100020
0001111111
0001001000
0020001111
1100110000
0000020100
9