Come abbiamo appreso da IBM PC AT, YouTube (vedi video) , Wikipedia (vedi articolo) e Sesame Street:
La lettera H
è la lettera più spietata dell'alfabeto !
(Anche se in realtà composto da due elementi nel Codice Pagina 437. In realtà, è anche PIÙ spietato in quel modo.)
Come gli Alieni, uhm ... ehm ... Alieni , gli Animali inseguono incessantemente tutti coloro che oserebbero avvicinarsi alle loro uova. Non c'è ragionamento con loro. Devi schiacciarli se non per perire.
Per questo scenario supponiamo che tu sia arrivato alla tua ultima vita e che tu abbia incontrato Bestie semplici in un terreno senza uova (come nello screenshot di Wikipedia). Non hai un tastierino numerico e puoi muoverti solo direttamente su / giù / sinistra / destra ... ma le bestie apparentemente ne hanno uno e possono muoversi in diagonale durante il loro turno.
La scelta della mossa di una Bestia tra le sue opzioni sarà quella che minimizza la distanza dal giocatore. Se le distanze sono uguali, allora il pareggio viene fatto favorendo sinistra + su sopra destra + giù, ma ecco la matrice di chiarimento per essere espliciti al riguardo ... il numero più basso da legare:
1 3 4
2 H 5
6 8 7
Una bestia non dorme mai, ma fortunatamente sono un po 'più lenti del giocatore. Si muovono ogni altro turno (dando al giocatore un vantaggio iniziale iniziando le loro alternanze al secondo turno). Devono muoversi se una mossa è possibile, indipendentemente dal fatto che ciò li porti più lontano dal giocatore.
Schiaccia una bestia se sposti un treno di pareti mobili in cui era seduto in uno spazio chiuso. Queste bestie semplici valgono 2 punti a testa.
Ingresso
Una coppia di numeri interi che indicano le dimensioni di una mappa in colonne e righe.
Numero di righe delle righe di input, ciascuna delle dimensioni della colonna ... contenente un muro solido (
#
), un muro mobile (~
), una bestia (H
), il giocatore (O
) o solo uno spazio.Input che sarà U, D, L, R che indica una mossa tentata dal giocatore ... o W per aspettare. Si noti che tentare di spingere un muro mobile che è bloccato è un input legale, non comporterà alcuna azione.
Produzione
aHHHH!
se le bestie uccidono il giocatore ... o niente se il giocatore vince senza bestie rimasteIl punteggio
(Nota: per scopi di debug e / o divertimento, probabilmente vorrai essere in grado di generare lo stato ad ogni passaggio; ma è troppo lungo per pubblicare qui.)
chiarimenti
Le mappe sono delimitate da solidi muri.
L'ordine di chi si muove a turno conta per il risultato. Quindi: il giocatore va sempre per primo, quindi gli animali ricevono un ordine in base alla loro posizione iniziale sulla mappa se stavi attraversando lo schermo dall'alto verso il basso da sinistra a destra. (Una bestia riga 1 si muove prima di una bestia riga 2 e due bestie sulla stessa riga sarebbe quella con il numero di colonna più basso che si muoverebbe prima dell'altra)
Gli animali in movimento diagonale possono spostarsi in qualsiasi spazio diagonale adiacente aperto, indipendentemente dal fatto che richieda una compressione tra le pareti.
Un giocatore può spingere un numero qualsiasi di pareti mobili in una linea a condizione che ci sia uno spazio o una bestia sull'altra estremità. Ma provare a spingere un treno di mura in una Bestia che non è bloccata tra le mura tratta la Bestia come un muro e non permetterà la mossa.
La decisione di mossa di una Bestia durante un turno si basa sulla posizione del giocatore all'inizio del turno. L'ottimizzazione desiderata della "distanza dal giocatore" avviene attraverso un calcolo "in linea d'aria". Qualsiasi approssimazione che darebbe lo stesso risultato misurato dal centro del suo quadrato al centro del quadrato del giocatore va bene.
Se una Bestia non può fare quella che sarebbe stata la sua prima mossa preferita in un turno perché una Bestia con priorità più alta ha preso il suo posto, prenderà la sua prossima scelta migliore invece di rimanere sul posto (se una mossa è ancora possibile).
Casi di esempio
Crush semplice
Ingresso
5 3
#####
#O~H#
#####
R
Produzione
2
Matrice delle preferenze -> Morte
Ingresso
5 5
#####
#O #
# ~ #
# H#
#####
WWDW
Produzione
aHHHH!
0
Matrice delle preferenze -> Win
Ingresso
5 5
#####
#O #
# ~ #
# H#
#####
WRD
Produzione
2
Aspettando il mietitore
Ingresso
5 5
#####
#O #
# ~ #
# H#
#####
WWW
Produzione
aHHHH!
0
Sconfitta riuscita nello scenario di Wikipedia
Ingresso
40 23
########################################
#~ ~ ~~ ~ ~ ~~ ~ ~~ ~ ~ ~~ #
#~~ ~ ~~ ~ ~ ~~ ~ #
#~# ~~ ~~~~ ~ ~~~~ ~ ~~~ ~#
# ~ ~ ~ ~~ #~~ ~ #
#~~ ~~~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~~~ H ~ #~ #
# O~ ~ # ~~~ ~ ~ ~~ ~ ~ ~~ #
# ~ ~H~~ ~~ ~ # ~~ ~ #
# ~~ ~ ~~~ ~~ ~~~~ ~ ~#
#~ ~ ~~~ ~ ~ ~ ~ ~~ ~~#
# ~ # ~ ~~ ~~~ ~ ~ ~ # ~#
#~ ~ ~~ ~ ~ H ~~ ~~ ~ ~ ~~~ #
# ~ ~ ~ ~ ~ ~~~ ~ #
# ~~ ~ ~ ~~ ~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~ ~~ #
#~ ~ # ~~~~ ~ ~~~H # ~ #
# ~ ~ ~ ~ ~ ~~ ~ #
# ~ ~ #~ ~ ~~ ~ ~ ~#
# ~~ ~ ~ ~~ ~ ~ #
# ~~~ ~ ~~ ~ ~ ~ ~ #
# ~ ~ ~ ~~ ~ ~ ~ #
########################################
RRRUWWWRRRURWWWWRDRRWWRDWWWWD
Produzione
8
Mappa fornita da me, mossa e uscita da @bobbel, corroborata da me e da @Allbeert.
Criteri vincenti
Penso che questo sia giocabile a golf, quindi seguirò le regole del code golf a meno che le persone non si lamentino.
Credito extra
Implementazione Unicode giocabile con i caratteri a doppia larghezza per assomigliare all'immagine!