Ihre Aufgabe ist es, ein Programm zu schreiben, das einen bestimmten Code in der Sprache Ihrer Wahl "Golf" spielt, falls Sie dies nicht ablehnen.
Grundfunktionalität:
- Entfernen Sie überflüssige Leerzeichen
- Kommentare entfernen
"Erweiterte" Funktionalität:
- Deklarationen (
int x; int y; int z;
bisint x, y, z;
) kombinieren - Verwenden Sie kürzere Variationen grundlegender Kontrollstrukturen (
while(1)
wird ersetzt durchfor(;;)
). - Bewegen Sie den Code um (
i = 0; while(i < 10) { /* ... */ ++i; }
nachfor(i = 0; i < 10; ++i) { /* ... */ }
) - Etc
popularity-contest
metagolf
Mateen Ulhaq
quelle
quelle
Antworten:
Python mit Python
Führt eine Reihe von Aufgaben aus, einschließlich Umbenennen von Variablen, Entfernen von unnötigen Leerzeichen und Kommentaren und Platzieren von so viel wie möglich in einer Zeile. Funktioniert nicht immer vollständig mit der ausgefeilteren Python-Syntax und ich werde weiterhin mit allen Korrekturen aktualisieren.
Code:
Getestet mit einem alten Fraktal-Zeichenprogramm, das ich hatte ( 4672 bis 1889 ):
Original:
Golf gespielt:
Laufen Sie auf sich selbst (erstellen Sie eine sehr lange Quine) ( 9951 bis 5323 ):
quelle
import*
anstelle von verwenden könnenimport *
. Ich vermute, dass das auch in Python 2 funktionieren wird?BrainFuck - 489 Zeichen
Entfernt alle nicht ausführbaren Zeichen. Respektiert Kommentare von # bis zum Zeilenende.
Natürlich durchlaufen von dieser Quelle:
quelle
<>
die nichts zu tunBrainfuck Golfspieler in Bash (v3)
Dies ist noch in Arbeit, ich werde es weiter aktualisieren, wenn ich kann.
Liest aus einer Datei (der Dateiname sollte das erste Befehlszeilenargument sein).
Im Moment ist alles was es tut
<>+-.,[]
<>
,><
,+-
,-+
>>>><<<<<
reduziert<
Code
Wie es funktioniert
Nach dem Entfernen aller nicht ausführbaren Zeichen wird Folgendes ausgeführt. Der Trefferzähler wird zu
-1
Beginn auf gesetzt - er zählt, wie viele Golfoperationen jedes Mal ausgeführt wurden, wenn die äußere Schleife läuft.<>
ist><
,+-
oder-+
, fügen Sie 1 zumhits
Zähler hinzu und fahren Sie mit Schritt 1 fort.quelle
HQ9 + Golfer in Bash (v3)
Ich weiß, dass HQ9 + nutzlos ist, aber ich könnte genauso gut einen Fünfzeiler dafür einreichen. Es liest aus
Standardeingabeeine Datei. Der Pfad zur Datei sollte das erste Befehlszeilenargument sein.Eigenschaften
HhQq9+
)+
(erhöht eine Zahl, aber es gibt keine Möglichkeit, diese Zahl auszudrucken)hq
in Großbuchstaben (nicht Golfen)Code
quelle
/dev/stdin
als erstes Argument :)Java mit Java
Nimmt den Dateinamen als Befehlszeilenargument und bearbeitet die Datei an Ort und Stelle.
while(true)
nachfor(;;)
private
undfinal
Wenn das Programm auf sich selbst ausgeführt wird, wird seine Größe von 7792 auf 4366 reduziert.
quelle
Perl, Teile 1 - 2
(entfernt Kommentare und ignoriert
#
Zeichen in Anführungszeichen)(entfernt alle Leerzeichen nach Klammern und
=
Zeichen)Ich habe nicht versucht, diesen Code zu spielen. Wenn es fertig ist, könnte es vielleicht selbst Golf spielen.
Beispiel Eingabe
Ausgabe
Als nächstes werden Leerzeichen zwischen Symbolen und alphanumerischen Zeichen entfernt.
quelle
Java-Golfer in Perl
WIP im Moment, obwohl es im Moment ziemlich netten Code bekommt.
Eigenschaften:
Code
quelle