Similaire à la génération de grilles de démineur , bien que le défi soit de créer une grille de démineur fonctionnelle. Ce sera un code plus long que la normale (je pense) .
plus d'informations sur le dragueur de mines .
Démineur est un jeu de logique que l'on trouve sur la plupart des OS. Le but du jeu est de déterminer où se trouvent les mines sur une grille, étant donné les nombres indiquant le nombre de mines autour de cet endroit.
Fonctionnalités requises:
-Randomized mine generation
-8x8 field with 10 mines
-Mine and "unknown" flags
-Reveal nearby blank spaces when a blank space has been revealed.
-Input and output code: It must be playable. (Input and output code counts in the total)
Remarque sur la notation :
Anything that is needed to make the program work is counted.
If it can be deleted and not affect the program, get rid of it.
I will occasionally update the selected answer to shorter programs if needed.
Je suis tombé sur une version plus spécifique de ce problème en cours d'informatique: créer une version de travail avec le plus petit nombre de lignes en Visual Basic (j'ai 57 lignes), et j'ai pensé que ce serait un défi intéressant pour le golf de code. S'il y a des suggestions pour améliorer la question, veuillez commenter. Le code le plus court en octets gagne.
la source
Réponses:
Python 2.7 (487C)
Expérience de jeu complète:
La dernière étape est cependant dangereuse.
la source
-1 for...
et1 if...
économiser deux octets.Javascript, 978 octets (824 sans CSS)
http://jsbin.com/otayez/6/
Liste de contrôle:
JS:
MiniJS 812 octets :
HTML 12 octets
Le CSS n'est pas nécessaire du point de vue des fonctionnalités, mais l'est du point de vue de l'utilisabilité:
Mini CSS 154 octets :
la source
C,
568, 557,537exemple de jeu:
code:
la source
for(x=64;x--;)...
travail pour c?Mathematica
566 5481056Edit : Ceci est une réécriture complète. J'ai renoncé à essayer d'obtenir le code le plus court et j'ai plutôt décidé d'intégrer les fonctionnalités qui avaient le plus de sens.
r
indique le nombre de lignes dans la grille.c
indique le nombre de colonnes dans la grille.m
: nombre de mines.Le jeu se joue en cliquant avec la souris sur les boutons. Si le joueur clique sur une mine, la cellule devient noire et le programme affiche "You Lose!"
La case à cocher "u" permet au joueur de jeter un œil à la solution complète à tout moment. Les drapeaux, "?" et "!" peut être placé dans n'importe quelle cellule comme vous le souhaitez.
Etat initial
Plus tard ...
la source
Python (
502566)Liste de contrôle:
Il dispose également d'un détecteur de victoire.
L'entrée est donnée pendant le jeu, avec
(f, x, y)
.(x, y)
est les coordonnées de la sélection de la grille,f
que vous souhaitiez marquer ou non.(0, 0, 0)
s'ouvrirait(0, 0)
et(1, 2, 3)
marquerait (2, 3). Marquer fonctionne dans un cycle: marquer deux fois un carré donne un point d'interrogation.(nombre) - nombre de mines
(espace) - inexploré
. - 0 mines
! - drapeau
"- question
À améliorer: fonction R [obtenir tous les carrés autour de l'élément p] (101 caractères), impression (69 caractères), signalisation (72 caractères)
la source
Dyalog APL, 113 octets
{⎕←1 0⍕c+○○h⋄10=+/,h:1⋄m⌷⍨i←⎕:0⋄∇{~⍵⌷h:0⋄(⍵⌷h)←0⋄0=⍵⌷c:∇¨(,⍳⍴m)∩⍵∘+¨,2-⍳3 3⋄0}i}h←=⍨c←{⍉3+/0,⍵,0}⍣2⊢m←8 8⍴10≥?⍨64
non compétitif: pas de drapeaux "mine" et "inconnu"
impressions
*
pour cellules non ouvertes et chiffres pour ouvert (y compris0
)demande à plusieurs reprises à l'utilisateur les coordonnées basées sur 1 d'une cellule à ouvrir
sorties finalement
0
en cas d'échec (le mien est ouvert) ou1
en cas de succès (seulement 10 non ouverts)ressemble à ça:
...
la source