Golf Challenge
Angesichts der folgenden ASCII "Grün".
| |
| |> |
| | |
| O |
| |
| |
| |
| |
| |
| |
Lassen |
Sie eine Wand bezeichnen
Lassen |
Sie die Hälfte der Fahnenstange bezeichnen
Lassen >
Sie die Fahne auf der Stange bezeichnen
Lassen O
Sie das Loch bezeichnen
Lassen o
Sie den Ball bezeichnen
Die Maße des "Green" betragen 10x10. Es gibt zehn Räume zwischen den beiden Wänden |
.
Es gibt auch zehn Leerzeichen zwischen dem oberen und unteren Rand des Grüns.
Herausforderung
Geben Sie einen x- und einen y-Wert ein oder generieren Sie zwei Zufallszahlen, um einen Golfball auf das Grün zu "schießen".
Berührt das erzeugte x, y nicht das Loch oder den Fahnenmast / Fahnenausgang "Try Again!"
Wenn das erzeugte x, y die Lochausgabe "Hole in One!"
wenn das erzeugte x, y den Polausgang "Lucky Shot!"
wenn das erzeugte x, y die Flag-Ausgabe "Close One!" trifft
Geben Sie nach dem Schuss die Position des Balls auf dem Grün durch a aus o
und ersetzen Sie alle getroffenen Zeichen. Geben Sie auch den entsprechenden obigen Spruch aus.
Beispiele:
//Hole in one example, the O was replaced with a o
Randomed x = 3
Randomed y = 4
"Hole in One!"
| |
| |> |
| | |
| o |
| |
| |
| |
| |
| |
| |
//Clone example, the top half of the pole was replaced with a o
Randomed x = 3
Randomed y = 2
"Lucky Shot!"
| |
| o> |
| | |
| O |
| |
| |
| |
| |
| |
| |
//Lucky Shot example, the > was replaced with a o
Randomed x = 4
Randomed y = 2
"Close One!"
| |
| |o |
| | |
| O |
| |
| |
| |
| |
| |
| |
//Try Again example, the <space> was replaced with a o
Randomed x = 5
Randomed y = 1
"Try Again!"
| o |
| |> |
| | |
| O |
| |
| |
| |
| |
| |
| |
Viel Spaß und viel Glück und wie das ist , Code-Golf die kürzesten Code gewinnt!
Antworten:
JavaScript (ES6)
210208193184 BytesDemo
quelle
Jelly , 78 Bytes
Spiele ein Skill-Game oder ein Crap-Shoot bei TryItOnline!
(Mistschießen kostet mehr Bytes).
Wie?
quelle
Python 2,
290264262252248245 BytesEs ist nicht hübsch und nicht kurz, aber ich bin müde und es ist die
ersteeinzige Python-Antwort. Geben Sie die Aufnahme im Format x, y ein.Bearbeiten
Golfing off 26 durch Neudefinition der Art und Weise, wie die Liste aufgebaut ist. Trotzdem kein Glück mit der langen if-Anweisung.
-2 durch Ersetzen des langen if durch ein Wörterbuch und eines kürzeren if.
-10 danke an @ Noodle9 - ich hatte das verpasst :)
-4 - Nochmals vielen Dank :)
Weitere 3 aus. Vielen Dank.
Für alle, die an der Logik interessiert sind und keine Kommentare haben (1316 Bytes, aber trotzdem problemlos auf eine 3,5 "-Diskette passen, wenn sich jemand daran erinnert):
Für mich definitiv das erste Mal, dass ein Wörterbuch das beste Datenformat für eine Golf-Herausforderung ist.
quelle
C 236 Bytes
Ungolfed:
quelle
Scala, 238 Bytes
Null-Indexierung verwenden.
Das ist viel zu lesbar :(
Erläuterung:
Ich habe die Formel verwendet
1+x+13*y
, um den korrekten Index zu berechnen, da jede Zeile 13 Zeichen lang ist (2 Rahmen, ein Zeilenumbruch und 10 Leerzeichen) und einen Versatz von eins, da (0,0) das zweite Zeichen sein sollte.quelle
Perl,
225209 BytesDie beiden wörtlichen Zeilenumbrüche sparen jeweils ein Byte. Ziemlich normal. Druckt die Erklärung und dann den Spielplan.
quelle
Kohle , 99 Bytes
Nimmt eine durch Leerzeichen getrennte 1-basierte Eingabe für stdin auf. Der größte Teil des Codes dient zum Drucken (einer) der vier Nachrichten. Probieren Sie es online!
Hinweis: Holzkohle ist noch in Arbeit. Dieser Code funktioniert ab dem aktuellen Commit . Wenn es in Zukunft nicht mehr funktioniert (insbesondere wenn der TIO-Link nicht wie erwartet funktioniert), rufen Sie mich an und ich werde versuchen, eine nicht konkurrierende aktualisierte Version hinzuzufügen, die funktioniert.
Erläuterung
quelle
Brain-Flak , 1466,
1938BytesProbieren Sie es online!
Habe ich gewonnen?
quelle
TI-Basic, 183 Bytes
Zum Glück verwendet TI-Basic Token.
Das
|
kann normalerweise nicht eingegeben werden, aber es befindet sich im Zeichensatz.Bitte lassen Sie mich wissen, ob das Ergebnis der Aufnahme unbedingt Kleinbuchstaben sein muss.
Ich werde später einen Screenshot eines Beispielprogrammergebnisses hinzufügen.
quelle
Groovy - 235 Bytes
Mein erster Versuch - Ein grooviger Verschluss, der 2 Ganzzahlen von 0 bis 9 als X- und Y-Koordinaten für den Schuss akzeptiert.
quelle
Dyalog APL , 147 (oder 127) Bytes
Nimmt (y, x) als Argument.
Ab Version 16.0 können wir die Byteanzahl mit dem neuen
@
Operator fast halbieren .@
Setzt den linken Operanden in die rechten Operandenpositionen im rechten Argument:NewChars @ Positions ⊢ Data
Leicht modifizierter Code, der in TryAPL zulässig ist:
Hole in One , Glücksschuss 1 , Glücksschuss 2 , Close One , Random
quelle
Schildkröte , 164 Bytes
Turtlèd zeigt einmal mehr, wie gut Turtlèd die Balance zwischen Golf und Ausführlichkeit für die einfachsten Dinge (wie das Erhöhen einer Zahl) hält.
Probieren Sie es online aus
Beachten Sie, dass es halb null und halb eins indexiert ist. x ist eins indiziert, y ist null indiziert; 3,3 ist ein Loch in einem
quelle
R,
230226 BytesDank @billywob für -2 Bytes ist das Bemerken in einigen Fällen
M[a,b]
gleichbedeutend mitM[c]
.Es ist ärgerlich, dass die beiden
cat
Anrufe (!) Nicht konform sein könnencat
einem zusammengefasst werden, da dasfill
Argument die Nachricht durcheinander bringt . Argh!quelle
function(x,y){M=matrix("|",10,10);M[2:9,]=" ";M[34]="0";M[4,2:3]="f";M[15]=">";m=switch(M[y,x],">"="Close One","f"="Lucky Shot","0"="Hole In One","Try again");M[y,x]="o";cat(m,"!\n",sep="");cat(gsub("f","|",M),sep="",fill=10)}
f=
in meiner Lösung brauchte . Entfernt.