Scrivi un programma o una funzione che accetta un numero intero positivo N (tramite stdin / riga di comando / arg funzione) e stampa o restituisce una rappresentazione di stringa di una camminata casuale bidimensionale che è lunga N passi, disegnata da barre: /
\
(più spazi e newline per la spaziatura).
Una camminata casuale 2D inizia all'origine di un reticolo intero infinito . Quindi N volte ripetutamente, una direzione cardinale (su, giù, sinistra, destra) viene scelta in modo uniforme a caso e il deambulatore muove un'unità in quella direzione. Il percorso risultante è la camminata casuale.
Ecco una camminata casuale per N = 6. Nota che torna indietro su se stessa quando raggiunge (-1, 3).
Per disegnare questo con le barre dobbiamo essenzialmente ruotare l'intera cosa di 45 ° in senso orario. Gli assi e i punti iniziale e finale non vengono disegnati nella versione barra.
/
\
\
/\
Una passeggiata più complessa come questa (N = 20, anche se non c'è modo di dirlo):
Diventerebbe questo:
/
/\/ /\
\/\/
/\/
\/
Il tuo programma deve generare questo tipo di versioni slash di passeggiate casuali. È necessario scegliere a caso ogni nuova direzione la passeggiata dura, così ogni esecuzione del programma per un certo N sarà quasi sicuramente produrrà una passeggiata diversa. (Pseudorandomness va bene.)
Non dovrebbero mai esserci linee vuote sopra o sotto le barre più basse e più alte (tranne una nuova riga finale facoltativa) e non dovrebbero mai esserci colonne vuote di spazi prima o dopo le barre più a sinistra e più a destra.
Quindi per N = 1, l'output è sempre /
o \
, ma mai qualcosa del genere:
/
Gli spazi finali sono consentiti purché non superino la colonna della barra più a destra.
Vince l'invio con il minor numero di byte. Ecco un utile contatore di byte.