Nous avons déjà généré des champs Démineurs , mais quelqu'un doit vraiment balayer ces mines avant que PCG explose!
Votre tâche consiste à rédiger un solveur de démineur compatible avec une version légèrement modifiée de la solution acceptée de «travail de démineur» (les actions sont séparées par des espaces pour permettre l'utilisation de champs plus grands).
Entrée: un champ Démineur, champs séparés par des espaces. La première ligne indique le nombre total de mines.
x
: Intacte!
: Drapeau- Chiffre: Nombre de mines autour de ce champ
Exemple:
10
0 0 1 x x x x x
0 0 2 x x x x x
0 0 2 ! x x x x
0 0 1 2 x x x x
0 0 0 1 x x x x
1 1 0 2 x x x x
x 1 0 2 x x x x
1 1 0 1 x x x x
Sortie: votre prochaine étape dans le format action row column
(à partir de zéro)
Actions valides:
0
: Ouvrez-le1
: Placer un drapeau
Exemple:
0 1 2
Règles:
- Vous écrivez un programme complet qui prend un seul champ en entrée (STDIN ou arguments de ligne de commande) et génère une seule action (STDOUT). Par conséquent, vous ne pouvez pas enregistrer des états, à l'exception de
!
. - Votre choix doit suivre les meilleures chances de survie. (c.-à-d. s'il y a un déménagement 100% sécuritaire, prenez-le)
- C'est du code-golf ; la solution la plus courte (en octets UTF-8) gagne
Tests:
Ces tests servent à tester des situations claires et communes; votre programme doit fonctionner pour tous les domaines de test.
Dans:
4
x x x x
1 2 x x
0 1 2 x
0 0 1 x
Out (aucun de ceux-ci):
1 1 2
0 0 2
0 1 3
Dans:
2
x x x
1 ! x
1 1 x
Out (aucun de ceux-ci):
0 0 0
0 0 1
0 1 2
0 2 2
1 0 2
Dans:
10
x x x x x x x x
1 3 3 x x x x x
0 1 ! 3 3 4 x x
0 2 3 ! 2 3 x x
0 1 ! 2 2 ! x x
Out (aucun de ceux-ci):
1 1 5
1 0 2
Dans:
2
x x x
2 3 1
! 1 0
Out (aucun de ceux-ci):
0 0 1
1 0 0
1 0 2
la source
0 0 2
ou0 1 3
? Je ne vois pas comment l'un ou l'autre de ceux-ci seraient considérés comme sûrs. (Je ne dois pas être assez bon au dragueur de mines ...)F
- être ou a l'P
air meilleur drapeau que!
:)Réponses:
Mathematica
Toujours pas joué au golf. Besoin d'un peu plus de travail sur les formats d'E / S.
Edit: Bonus Track
J'ai créé un terrain de jeu interactif qui calcule les probabilités de bombe en calculant toutes les solutions possibles pour une configuration donnée:
Instructions pour le tester sans que Mathematica soit installé:
Le curseur modifie les dimensions du tableau. Ceci est juste un programme sommaire, pas complètement testé, veuillez signaler tout bogue. Je n'ai pas implémenté de fonctionnalité "nombre total de bombes disponibles à bord". C'est supposé infini.
la source