Comme nous l'avons appris sur IBM PC AT, YouTube (voir la vidéo) , Wikipedia (voir l'article) et Sesame Street:
La lettre H
est la lettre la plus impitoyable de l'alphabet !
(Même lorsqu'il est en fait composé de deux éléments de la page de code 437. En fait, il est encore PLUS impitoyable de cette façon.)
Comme les extraterrestres, euh ... euh ... extraterrestres , les bêtes poursuivent sans relâche tous ceux qui oseraient s'approcher de leurs œufs. Il n'y a aucun raisonnement avec eux. Vous devez les écraser sinon pour périr.
Pour ce scénario, nous supposerons que vous êtes à votre dernière vie et que vous avez rencontré des bêtes simples sur un terrain sans œufs (comme dans la capture d'écran de Wikipedia). Vous n'avez pas de pavé numérique et ne pouvez que vous déplacer directement vers le haut / bas / gauche / droite ... mais les bêtes en ont apparemment un et peuvent se déplacer en diagonale à leur tour.
Le choix de déplacement d'une bête parmi ses options sera celui qui minimise la distance par rapport au joueur. Si les distances sont égales, alors le bris d'égalité est fait en favorisant gauche + haut sur droite + bas, mais voici la matrice de désambiguïsation pour être explicite à ce sujet ... le plus petit nombre à briser l'égalité:
1 3 4
2 H 5
6 8 7
Une bête ne dort jamais, mais ils sont heureusement un peu plus lents que le joueur. Ils se déplacent tous les deux tours (donnant au joueur une longueur d'avance en commençant leurs alternances au deuxième tour). Ils doivent se déplacer si un mouvement est possible, peu importe si cela l'éloigne du joueur.
Vous écrasez une bête si vous déplacez un train de murs mobiles où elle était assise dans un espace fermé. Ces bêtes simples valent 2 points par tête.
Contribution
Une paire d'entiers indiquant la taille d'une carte en colonnes puis en lignes.
Nombre de lignes de lignes d'entrée, chacune de la taille de la colonne ... contenant soit un mur plein (
#
), un mur mobile (~
), une bête (H
), le joueur (O
) ou juste un espace.Entrée qui sera soit U, D, L, R indiquant une tentative de déplacement du joueur ... soit W pour attendre. Notez que tenter de pousser un mur mobile qui est bloqué est une entrée légale, cela n'entraînera aucune action.
Production
aHHHH!
si les bêtes ont tué le joueur ... ou rien si le joueur a gagné sans bêtes restantesLe score
(Remarque: à des fins de débogage et / ou d'amusement, vous souhaiterez probablement pouvoir afficher l'état à chaque étape; mais c'est trop long pour publier ici.)
Clarifications
Les cartes sont garanties délimitées par des murs solides.
L'ordre de qui se déplace à son tour est important pour le résultat. Ainsi: Le joueur va toujours en premier, puis les bêtes reçoivent un ordre basé sur leur position initiale sur la carte si vous balayez l'écran de haut en bas de gauche à droite. (Une bête de la ligne 1 se déplace avant une bête de la ligne 2, et deux bêtes sur la même ligne, ce serait celle avec le numéro de colonne le plus bas qui se déplacerait avant l'autre)
Les bêtes en mouvement diagonal peuvent se déplacer dans n'importe quel espace diagonal adjacent ouvert, peu importe si cela nécessite une compression entre les murs.
Un joueur peut pousser n'importe quel nombre de murs mobiles dans une ligne à condition qu'il y ait un espace ou une bête à l'autre extrémité. Mais essayer de pousser un train de murs dans une bête qui n'est pas coincée entre les murs traite la bête comme un mur et ne permet pas le mouvement.
La décision de déplacement d'une bête pendant un tour est basée sur l'emplacement du joueur au début du tour. Son optimisation souhaitée de la "distance au joueur" passe par un calcul "à vol d'oiseau". Toute approximation qui donnerait le même résultat mesuré du centre de son carré au centre du carré du joueur est correcte.
Si une bête ne peut pas effectuer ce qui aurait été son premier mouvement préféré dans un tour parce qu'une bête de priorité supérieure a pris sa place, elle prendra son prochain meilleur choix au lieu de rester en place (si un mouvement est toujours possible).
Exemples de cas
Simple Crush
Contribution
5 3
#####
#O~H#
#####
R
Production
2
Matrice des préférences -> Décès
Contribution
5 5
#####
#O #
# ~ #
# H#
#####
WWDW
Production
aHHHH!
0
Matrice des préférences -> Win
Contribution
5 5
#####
#O #
# ~ #
# H#
#####
WRD
Production
2
En attendant le Reaper
Contribution
5 5
#####
#O #
# ~ #
# H#
#####
WWW
Production
aHHHH!
0
Défaite réussie dans le scénario Wikipédia
Contribution
40 23
########################################
#~ ~ ~~ ~ ~ ~~ ~ ~~ ~ ~ ~~ #
#~~ ~ ~~ ~ ~ ~~ ~ #
#~# ~~ ~~~~ ~ ~~~~ ~ ~~~ ~#
# ~ ~ ~ ~~ #~~ ~ #
#~~ ~~~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~~~ H ~ #~ #
# O~ ~ # ~~~ ~ ~ ~~ ~ ~ ~~ #
# ~ ~H~~ ~~ ~ # ~~ ~ #
# ~~ ~ ~~~ ~~ ~~~~ ~ ~#
#~ ~ ~~~ ~ ~ ~ ~ ~~ ~~#
# ~ # ~ ~~ ~~~ ~ ~ ~ # ~#
#~ ~ ~~ ~ ~ H ~~ ~~ ~ ~ ~~~ #
# ~ ~ ~ ~ ~ ~~~ ~ #
# ~~ ~ ~ ~~ ~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~ ~~ #
#~ ~ # ~~~~ ~ ~~~H # ~ #
# ~ ~ ~ ~ ~ ~~ ~ #
# ~ ~ #~ ~ ~~ ~ ~ ~#
# ~~ ~ ~ ~~ ~ ~ #
# ~~~ ~ ~~ ~ ~ ~ ~ #
# ~ ~ ~ ~~ ~ ~ ~ #
########################################
RRRUWWWRRRURWWWWRDRRWWRDWWWWD
Production
8
Carte fournie par moi, mouvements et sortie par @bobbel, corroborée par moi-même et @Allbeert.
Critères gagnants
Je pense que c'est jouable au golf, donc j'irai avec des règles de golf de code à moins que les gens se plaignent.
Crédit supplémentaire
Implémentation Unicode jouable avec les caractères double largeur pour ressembler à l'image!