Beschreibung
Erstellen Sie ein voll funktionsfähiges "Errate die Zahl" -Spiel. Das Spiel wird von zwei Spielern wie folgt gespielt:
- Spieler eins wählt eine Zahl (A) zwischen 1 und N.
- Spieler zwei versucht zu erraten, dass A eine Zahl (B) im gleichen Bereich auswählt
- Der erste Spieler antwortet "höher"
if A > B
, "niedriger"if A < B
oder "richtig"if A = B
. - Die Schritte 2-3 werden I- mal wiederholt oder bis "richtig" geantwortet wird.
- Wenn "richtig" zu hören ist, gewinnt Spieler zwei, andernfalls verliert er.
Technische Daten
Mindestanforderungen für einen gültigen Eintrag:
- Benutzer kann entweder als Spieler eins oder als Spieler zwei spielen.
- Computer spielt die andere Rolle.
- Der Computer muss wirklich versuchen, die Zahl zu erraten, während er als Spieler zwei spielt (also ist es ein Betrug, gegen die angegebenen Daten zu raten oder die angegebenen Daten zu ignorieren).
- N = 100 oder Eingabe durch den Benutzer (Ihre Wahl)
- I = 5 oder Eingabe durch den Benutzer (Ihre Wahl)
- Programm muss dann Gewinner am Ende bekannt geben.
- vollständige, von Menschen lesbare Anweisungen, was in jedem Schritt zu tun ist (z. B. "Als Spieler eins oder Spieler zwei spielen?" , "Geben Sie eine andere Vermutung ein:" usw.) - machen Sie sich in diesem Schritt nicht verrückt; halte es einfach.
Gewinnbedingungen
In dieser Reihenfolge:
- Der Beitrag mit der höchsten Stimme gewinnt, wenn er mindestens 3 Stimmen vor dem Beitrag mit der zweithöchsten Stimme liegt.
- Der kürzeste Eintrag gewinnt.
code-challenge
game
Eelvex
quelle
quelle
Antworten:
Windows PowerShell, 289
Geschichte:
while
→for
else{if...}
→elseif
- speichert die Klammern.switch
, um die Benennung der Schleife zu vermeiden. Jetzt kann ich auch nurbreak
eine Pipeline verwenden. Die Bekanntgabe des Gewinners wurde in einen Filter verschoben, der verwendet,exit
sodass niemals eine Unterbrechung erforderlich ist.elseif
Kette zum Überprüfen der Vermutung verwende ich nur eine Formatzeichenfolge mit unterschiedlichen Werten für negative, positive und Nullwerte. Spart viel.quelle
TRS-80 BASIC, 249 Zeichen
Ich denke, dies ist möglicherweise das erste Mal, dass ich eine Antwort auf diese Site eingereicht habe, die ich geschrieben habe, bevor die Site existiert hat.
Tatsächlich habe ich es geschrieben, bevor das World Wide Web existierte. In den 1980er Jahren, als TRS-80s irrelevant wurden.
Dies ist ein Beispiel für einen "Einzeiler" - ein Versuch, das interessanteste Programm, das Sie könnten, in eine einzelne Zeile von BASIC zu integrieren. Es war mein erster Einzeiler und nicht besonders beeindruckend. (Da draußen schwebten einige erstaunliche Einzeiler herum.)
Eine Zeile TRS-80 BASIC war auf 255 Zeichen begrenzt, abzüglich eines Paares für Overhead. Obwohl Sie dies manchmal überschreiten konnten, da das wahre Limit nach der Tokenisierung 255 Byte betrug, schnitt der Editor auch eine Zeile mit mehr als 255 Zeichen vor der Tokenisierung ab, und Sie mussten Tricks im Zeileneditor verwenden, um Literalsteuerzeichen einzufügen wie Zeilenumbrüche in Ihre Saiten.
Und ja, zur Verdeutlichung sind diese Zeilenumbrüche in der Liste wörtliche Zeilenumbrüche. (Um sie in Ihren Code aufzunehmen, mussten Sie den
C
Befehl hange verwenden, währendEDIT
Sie in der Zeile stehen. Ein totaler Schmerz, aber es lohnt sich, acht oder mehr Zeichen durch+CHR$(13)
eins zu ersetzen .)Verdammt, ich habe lange Golf gespielt.
quelle
C 397 Zeichen
In einer besser lesbaren Form.
quelle
C #:
Zeichenanzahl: Mit Leerzeichen: 575 Keine Leerzeichen: 464
Edit do while ist jetzt "Goto" ( Schauer )
quelle
Gute alte Ebene C.
quelle
JavaScript
Neue minimierte Version (abgebrochene
var
und reduziertealert
Anrufe:268 Zeichen
Um einen Anruf auszuführen
g(100);
, wird die Selbstausführung nicht gezählt, da eine variable Anzahl von Zeichen hinzugefügt wird (275 Zeichen fürg(100);
).Original (ungefähr 600 Zeichen einschließlich Leerzeichen):
Minimiert (312) :
quelle
Python 2.7
334335327314300 Zeichen (Mein erstes Mal Golf spielen)(335) Ich habe vergessen, der Newline zu entkommen.
(327) Redundante 100 für Randint entfernt. Vergleich des ersten Antwortzeichens anstelle der gesamten Zeichenfolge.
(314) Aktualisierter Druck, wer gewonnen hat.
(300) Geändert, als Spieler Spieler 1 war: Das Erraten der Nummer als Computer wurde geändert
quelle
BASIC, 184
Hier ist die No-AI-Version.
quelle
code-golf
.Lua 360 Zeichen
Nicht-Golf-Version:
quelle
Javascript
Dies sind ungefähr 800 Zeichen und beinhaltet Ihre grundlegende binäre Auswahl 'KI' für die Hälfte des Computerspielers. Ich könnte wahrscheinlich ein paar Zeichen speichern, wenn ich alle meine
var
s loswerden würde, aber ich mag es nicht, Variablen zu verlieren, selbst wenn ich Code spiele. Ich habe auch zwei Schritte gemacht: "Ist das richtig?" / "Ist das höher?" Eine Sache mit Popups bestätigen, anstatt ein sofortiges Popup zu geben und nach "richtig" / "höher" / "niedriger" zu suchen, obwohl das vielleicht auch einige Zeichen speichern könnte, habe ich nicht wirklich überprüft.Außerdem habe ich es nur in Firefox 4 getestet, sodass ich nicht weiß, ob einige der Dinge, die ich mache, konsistent funktionieren, insbesondere das Zusammenführen einer ungültigen Eingabe, die als NaN analysiert wird, zu einem Standardwert in meiner
wp
Funktion.quelle
Java, 1886 Zeichen
Nicht Golfversion:
quelle
int a=5,b=10
. B. (34). Sie können die Argumente im Konstruktor anders als die zu vermeidenden Felder benennenthis.
(10). Sie könnenL
ganz eliminieren, da es immer bei1
(4) bleibt . Sie können die Initialisierung vonH
undG
die im Konstruktor ohnehin gesetzt werden, weglassen (6). Sie können für alle Variablen und Methoden Ein-Buchstaben-Namen verwenden (235).fuzzify
mit dem bedingten Operator (20) neu schreiben . Sie können dasBufferedReader
ingetInt
(19) inline . Sie können verwendenString#matches
, um dasPattern
undMatcher
ingetInt
(48) zu vermeiden . Sie können den bedingten Operator auch inprocessGuess
(30) verwenden. Ich bin jetzt auf 1360 anstatt auf Ihre anfängliche 1953.Wecker Radio, 5756 Bit (2159 Bytes)
Bald zu einem Wecker in Ihrer Nähe! Zeilenumbrüche dienen nur der Lesbarkeit. ASCII-Werte werden gelegentlich anstelle der numerischen Literalanzeige auf dem Bildschirm verwendet. Passend für Spezifikationen. Verwendet Standardeinstellungen für
A
undI
. Verwenden Sie bei der ersten Eingabe NULL als Vermesser, andernfalls legen Sie die Nummer fest. PADSIZE MUSS 4 SEIN! Zellen müssen 7-Bit sein und wickeln! Turing-komplett! Ausgängehigher
,lower
,correct
,you won
, undyou lost
.quelle
Ruby 1,9 (298)
Keine sehr freundliche Anleitung.
quelle
Ich hatte das Bedürfnis, Java etwas gerecht zu werden. :) :)
Java -
486437421414Golf gespielt
Etwas ungolfed
quelle