Votre programme doit prendre une chaîne à plusieurs lignes, comme ceci:
#############
# #
# p #
# #
#############
p
est le joueur et #
est un bloc.
Maintenant sous cela dans le terminal devrait être une ligne d'entrée disant:
How do you want to move?
Si le joueur tape, l
il doit marcher à gauche quand il n'y a pas de bloc, sinon, quand il y a un bloc, il ne peut pas passer et ne bouge pas bien sûr, maintenant la sortie dans le terminal doit être mise à jour ( et la sortie précédente effacée / remplacée):
#############
# #
# p #
# #
#############
Il peut taper l
pour gauche, r
pour droite, u
pour haut et d
pour bas.
L'entrée sera toujours multiligne, mais ne sera pas toujours remplie d'espaces dans un rectangle parfait. De plus, les hachages peuvent être n'importe où dans la chaîne et ne seront pas toujours connectés les uns aux autres. Par exemple:
## ##
# #
## p
#
est un donjon valide. (notez le manque d'espaces de fin sur chaque ligne)
Si le joueur sort de la chaîne, il n'a pas besoin d'être affiché. Mais s'il revient plus tard, il doit à nouveau être affiché.
Et les limites de « l' extérieur » de la chaîne sont length(longest_line)
par number_of_lines
rectangle, même si une ligne n'est pas rembourré avec des espaces à droite, cet endroit est pas considéré hors limites. Exemple utilisant le donjon précédent:
## ##
# #p
##
#
La deuxième ligne n'avait pas d'espace où le p est maintenant, mais cela n'a pas d'importance.
Enfin, votre programme doit boucler pour toujours en prenant une entrée.
Cas de test
Cas de test 1:
####
# p#
#
####
How do you want to move?
d
####
# #
# p
####
Cas de test 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 #
####
Bien sûr, ceux-ci ne sont pas complets. Votre code devrait boucler pour toujours et effacer l'écran entre chaque sortie .
Votre sortie est autorisée à demander une entrée en tant que How do you want to move?\n<input>
ou How do you want to move?<input>
(c'est-à-dire que vous n'avez pas besoin de l'entrée sur une ligne vierge), et vous n'avez pas besoin d'une ligne vide entre la dernière ligne du donjon et l'invite. (ils ne peuvent cependant pas être sur la même ligne)
Les failles standard sont interdites! C'est le code-golf, donc le code le plus court en octets gagne!
l
, r
, u
ou d
) peut être quelque chose, non seulement « Comment voulez-vous déplacer »? Cela n'affecte pas vraiment les réponses, sauf pour le golf.