Il tuo programma deve prendere una stringa a più righe, in questo modo:
#############
# #
# p #
# #
#############
p
è il giocatore ed #
è un blocco.
Ora sotto quello nel terminale dovrebbe esserci una linea di input che dice:
How do you want to move?
Se il giocatore digita l
deve camminare a sinistra quando non c'è un blocco, altrimenti, quando c'è un blocco, non può passare e ovviamente non si muove, ora l'output nel terminale deve essere aggiornato ( e l'output precedente cancellato / sovrascritto):
#############
# #
# p #
# #
#############
Può scrivere l
a sinistra, r
a destra, u
su e d
giù.
L'input sarà sempre multilinea, ma non sarà sempre riempito di spazi in un rettangolo perfetto. Inoltre, gli hash possono trovarsi ovunque nella stringa e non saranno sempre collegati tra loro. Per esempio:
## ##
# #
## p
#
è un dungeon valido. (notare la mancanza di spazi finali su ogni riga)
Se il giocatore esce dalla stringa, non deve essere visualizzato. Ma se ritorna più tardi, deve essere visualizzato di nuovo.
E i confini del "fuori" la stringa sono il length(longest_line)
dal number_of_lines
rettangolo di, quindi, anche se una linea non è riempita con spazi a destra, quella posizione non è considerata fuori dai limiti. Esempio usando il dungeon precedente:
## ##
# #p
##
#
La seconda riga non aveva uno spazio in cui la p è ora, ma non importa.
Infine, il tuo programma deve eseguire un ciclo continuo per ricevere input.
Casi test
Caso di prova 1:
####
# p#
#
####
How do you want to move?
d
####
# #
# p
####
Caso di prova 2:
####
p#
#
####
How do you want to move?
l
####
p #
#
####
How do you want to move?
d
####
#
p #
####
How do you want to move?
l
####
#
p #
####
How do you want to move?
l
####
#
#
####
How do you want to move?
r
####
#
p #
####
Certo, questi non sono completi. Il codice dovrebbe essere ripetuto per sempre e cancellare lo schermo tra ogni output .
L'output è autorizzato a richiedere input come How do you want to move?\n<input>
oHow do you want to move?<input>
(ovvero non è necessario l'input su una riga vuota) e non è necessaria una riga vuota tra l'ultima riga del dungeon e il prompt. (comunque non possono essere sulla stessa linea)
Le scappatoie standard non sono ammesse! Questo è code-golf, quindi vince il codice più corto in byte!
l
, r
, u
, o d
) può essere qualsiasi cosa, non solo "Come si desidera spostare"? Non influisce davvero sulle risposte tranne che per il golfismo.