Dato 2 input interi che rappresentano la dimensione del campo xe y, output un percorso attraverso il campo.
Esempio di output per 5, 4:
#
#
# ###
### #
L'intero campo è 5 per 4 e c'è un percorso fatto di hashmark che attraversano il campo.
Il percorso dovrebbe sempre iniziare nell'angolo in alto a sinistra e andare in fondo a destra. L'intero percorso deve essere randomizzato ogni volta che viene eseguito il programma. Ogni percorso valido dovrebbe essere un possibile output.
Le regole per i percorsi sono:
Fatto di hashmarks
Ogni hash è collegato solo ad altri 2 hash (cioè il percorso non si interseca o corre lungo se stesso)
Gli spazi non hash possono essere riempiti con qualsiasi altro carattere, ma deve essere coerente (cioè tutti gli spazi, tutti i periodi, ecc.)
Esempi:
2, 2
##
#
3, 4
##
##
#
#
5, 5
#####
#
#
#
#
6, 5
## ###
# # #
## # #
# ## #
### #
7, 9
#######
#
#### #
# # #
# # #
# # #
# ####
#
#######
Questo tipo di percorso è simile a una camminata casuale che si auto-evita, tuttavia non può essere adiacente a se stesso diversamente da un vero SAW.
La continuità del percorso e il tocco del percorso sono entrambi definiti senza diagonali.


Leggere la larghezza e l'altezza del campo e premere le coordinate di inizio insieme a un
Controlla le posizioni di backtracking (indicate da un
Controlla se le coordinate sono ancora all'interno del campo di gioco. Se sono fuori portata, rilasciarli dallo stack e tornare indietro per provare le coordinate potenziali successive.
Se sono nell'intervallo, ottenere i due valori successivi dallo stack, che è la posizione del passaggio precedente (richiesto nel test che segue questo).
Controlla se le coordinate entreranno in contatto con un segmento esistente del percorso. La posizione del passaggio precedente viene ovviamente ignorata da questo controllo.
Se tutti i test hanno esito positivo, scrivi a
Se lo abbiamo, scrivi il percorso finale
ed esci.
In caso contrario, salvare le coordinate nello stack con un
Questo viene interrotto con un calcolo casuale dei numeri di cui avremo presto bisogno.
Spingere quattro potenziali destinazioni che possono essere raggiunte dalla posizione corrente. Il numero casuale determina l'ordine in cui vengono inseriti e quindi l'ordine in cui verranno seguiti.
Torna all'inizio del ciclo principale ed elabora i valori successivi nello stack.