Ähnlich wie beim Generieren von Minensuchgittern , obwohl die Herausforderung darin besteht, ein funktionierendes Minensuchgitter zu erstellen. Dies wird länger Code als normal sein (ich denke) .
Weitere Informationen zu Minensuchbooten .
Minesweeper ist ein Logikspiel, das auf den meisten Betriebssystemen zu finden ist. Das Ziel des Spiels ist es, zu bestimmen, wo sich die Minen auf einem Gitter befinden. Die angegebenen Zahlen geben die Anzahl der Minen um diesen Punkt an.
Erforderliche Funktionen:
-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)
Anmerkung zur Wertung :
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.
Im Informatikunterricht bin ich auf eine spezifischere Version dieses Problems gestoßen: Erstellen Sie eine Arbeitsversion mit der kürzesten Anzahl von Zeilen in Visual Basic (ich habe 57 Zeilen), und ich dachte, dass dies eine interessante Herausforderung für Codegolf sein wird. Wenn es Vorschläge zur Verbesserung der Frage gibt, kommentieren Sie diese bitte. Kürzester Code in Bytes gewinnt.
quelle
Antworten:
Python 2.7 (487C)
Komplettes Spielerlebnis:
Der letzte Schritt ist jedoch gefährlich.
quelle
-1 for...
und1 if...
zwei Bytes sparen.Javascript, 978 Bytes (824 ohne CSS)
http://jsbin.com/otayez/6/
Checkliste:
JS:
MiniJS 812 Bytes :
HTML 12 Bytes
Das CSS ist vom Standpunkt der Funktionalität aus nicht erforderlich, aber vom Standpunkt der Benutzerfreundlichkeit aus:
Mini CSS 154 Bytes :
quelle
C
568, 557,537Beispielspiel:
Code:
quelle
for(x=64;x--;)...
Arbeit für c?Mathematica
566 5481056Bearbeiten : Dies ist eine vollständige Umschreibung. Ich gab den Versuch auf, den kürzesten Code zu erhalten, und beschloss stattdessen, die Funktionen einzubauen, die am sinnvollsten waren.
r
gibt die Anzahl der Zeilen im Raster an.c
gibt die Anzahl der Spalten im Raster an.m
: Anzahl der Minen.Das Spiel wird durch Mausklick auf die Schaltflächen gespielt. Wenn der Spieler auf eine Mine klickt, wird die Zelle schwarz und das Programm gibt "You Lose!"
Das Kontrollkästchen "u" ermöglicht es dem Spieler, jederzeit einen Blick auf die vollständige Lösung zu werfen. Die Fahnen "?" und "!" kann nach Belieben in eine beliebige Zelle gelegt werden.
Ausgangszustand
Zu einem späteren Zeitpunkt ...
quelle
Python (
502566)Checkliste:
Es hat auch einen Win-Detektor.
Die Eingabe erfolgt bei laufendem Spiel mit
(f, x, y)
.(x, y)
sind die Koordinaten der Rasterauswahl,f
ob Sie markieren möchten oder nicht.(0, 0, 0)
würde sich öffnen(0, 0)
und(1, 2, 3)
markieren (2, 3). Das Markieren funktioniert in einem Zyklus: Das zweimalige Markieren eines Quadrats gibt ein Fragezeichen.(Anzahl) - Anzahl der Minen
(Weltraum) - unerforscht
. - 0 Minen
! - flag
"- frage
Verbesserungsbedürftig: Funktion R [Alle Quadrate um Punkt p abrufen] (101 Zeichen), Drucken (69 Zeichen), Markieren (72 Zeichen)
quelle
Dyalog APL, 113 Bytes
{⎕←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
Nicht konkurrierend: keine "Mine" - und "Unknown" -Flaggen
Drucke
*
für ungeöffnete Zellen und Ziffern für geöffnete (einschließlich0
)Fordert den Benutzer wiederholt auf, die 1-basierten Koordinaten einer zu öffnenden Zelle einzugeben
Letztendlich gibt es
0
bei einem Fehler (Mine geöffnet) oder1
bei einem Erfolg (nur 10 ungeöffnete übrig)sieht aus wie das:
...
quelle