This is Markov.
Markov's golf ball rolls around randomly.
Markov's ball will hole however he strikes it.
Markov is smart.
Be like Markov.
Et ceci:
est une fourmilière dans l'arrière-cour de Langton.
La fourmilière est assez grande pour contenir la balle de golf de Markov, MarGolf. Cependant, la fourmilière se déplace et change de direction en fonction du terrain environnant.
La tâche
Prenez une entrée d'un champ 10x20:
*
MarGolfO
La fourmilière de Lanton,
Anthill tourne à 90 degrés dans le sens des aiguilles d'une montre.
Anthill tourne à 90 degrés dans le sens antihoraire0
MarGolf dans Langton's Anthill
Un champ ressemble à ceci:
,...,.,,..,...,.,,..
..,.,,,..,...,..,.,.
.,,*.,....,.,,,.,,,.
,.,,.,...,,.,.,,,,,.
.,..,....,,.....,,.,
,.,.,...,..,.,,,,..,
....,,,,,,,,,.......
........,,.,...,...,
,,,,,,,,,,,,....,O.,
,.,.,.,.....,,.,,,,,
Règles du jeu:
La configuration du champ de saisie est appelée tick 0. Votre programme doit évaluer et imprimer la configuration du tick suivant, dans lequel MarGolf et Langton's Anthill se déplaceront vers une autre cellule. L'élément dans la cellule actuelle deviendra l'élément actuellement dans la cellule cible. Si MarGolf et la fourmilière se déplacent dans la même cellule lors du tick suivant, la partie se termine.
Règles de mouvement:
- MarGolf se déplace au hasard. Les neuf cellules de la zone 3x3 autour de MarGolf ont toutes les mêmes chances d'être sélectionnées. Cela devient un choix parmi 6 cellules à un bord du champ et 4 cellules à un coin.
- Langton's Anthill doit se souvenir de sa direction de déplacement vers le haut, le bas, la gauche ou la droite (NSEW ou équivalent). Il déplace une cellule dans sa direction à chaque tick, et le contenu d'origine de la cellule change sa direction dans le sens horaire ou anti-horaire, comme spécifié ci-dessus. La direction initiale au tick 0 est aléatoire, chaque direction a une chance égale d'être l'initiale.
Remarques
- Le programme doit imprimer la configuration de chaque tick, jusqu'à la fin du jeu.
- Le numéro de tick précède la configuration de champ de chaque tick.
- Vous pouvez supposer que l'entrée est toujours valide.
- Le programme le plus court est celui des octets gagnés.
Mise à jour: oublié de mentionner que la fourmilière inverse la direction avant de se déplacer si elle devait autrement quitter le terrain. Nous remercions user81655 pour le rappel.
O
direction s pour l' étape suivante .Réponses:
Java 10,
611609607593591 octets-4 octets grâce à @ceilingcat .
Suppose l'échange final de
*
etO
videra la cellule d'où*
vient.Explication:
Essayez-le en ligne.
la source