Die Symbole gegen die Buchstaben
Die ASCII - Zeichen wurden einmal geteilt wieder ! Deine Sets sind Die Buchstaben und Die Symbole .
Die Buchstaben
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Die Symbole
!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~
Die Aufgabe besteht darin, zwei Programme zu schreiben:
Drucken Sie jeden Buchstaben genau einmal aus, ohne ihn in Ihrem Programm zu verwenden.
Drucken Sie jedes der Symbole genau einmal aus, ohne eines davon in Ihrem Programm zu verwenden.
Regeln
- In Ihrem Programm oder in der Ausgabe wird möglicherweise ein Leerzeichen angezeigt.
- Nicht-ASCII-Zeichen sind nicht zulässig.
- Die Ausgabe erfolgt als Standardausgabe oder in eine Datei als Inhalt oder Name der Datei.
- Keine Eingabe.
- Die Ausgabe darf nur ASCII-Zeichen aus dem einen oder anderen Satz enthalten.
- Die Programme können mit einer Ausnahme in verschiedenen Sprachen oder in derselben Sprache geschrieben werden:
- Die Whitespace-Sprache darf nur für eines der Programme verwendet werden.
- Es gelten Standardlücken .
Wertung
# of characters in program 1
+# of characters in program 2
=Score
Die niedrigste Punktzahl gewinnt!
Hinweis:
Um mehr Einsendungen zu ermutigen, können Sie immer noch eine Antwort mit einer Lösung für nur eines der Programme posten. Sie werden nicht gewinnen können, aber Sie werden trotzdem in der Lage sein, etwas Cooles zu zeigen.
Vielen Dank an Calvins Hobbys , die die Idee mit seiner vorherigen Frage inspiriert haben .
code-golf
restricted-source
hmatt1
quelle
quelle
Antworten:
Gesamt: 53 Zeichen
Insgesamt in einer Sprache: 230 Zeichen, Pyth
Teil 1: Golfscript, 15
Ausgänge:
Erläuterung:
Teil 2: Pyth , 38
Ausgänge:
Erläuterung:
Bonuslösung:
Teil 1: Pyth, 192
Erläuterung:
$"%\143"$
=> "% c".$
Wechselt zum und vom Python-Parsing-Stil. Beim Python-String-Parsing\143
ist dies die oktale Escape-Sequenz fürc
. Diese Antwort entspricht daher dem folgenden Python-Code:Natürlich funktioniert dies in Python nicht, da das Drucken in Python verwendet wird
print
, aber das Drucken in Python ist implizit, sodass es funktioniert.Pyth-Lösungen verwenden keine der Funktionen, die hinzugefügt wurden, seit die Frage gestellt wurde.
quelle
Python (Symbole,
8782)Ich liebe Pythons String-Modul ...
Bearbeiten:
Ausgabe:
FALSCH (Buchstaben, 21)DUP (Buchstaben, 20):FALSCHE Lösung:
DUP sollution (1 Zeichen kürzer)
Ausgabe (für beide):
Dolmetscher für FALSE.
Gesamt: 102
quelle
from string import*
funktioniert genauso gut und reduziert die Anzahl der Bytes.*
ist in diesem Zusammenhang verboten ...from string import punctuation, digits
. Schöne Lösung, die den Regeln folgt. Entschuldigung für meinen Fehler!GolfScript (14 Zeichen) + Deadfish x (116 Zeichen) = 130 Zeichen
und
quelle
Teile 1 und 2 in Ruby 2, 56 + 484 = 540
Teil 1:
Weitere Informationen zu diesem Ruby-Stil finden Sie unter narfnme .
Teil 2 (dieses Bit ist nur Ruby 2.0+ und funktioniert perfekt mit Ruby-2.1.0, kann aber in früheren Versionen Warnungen ausgeben):
Das war schwer. Das Aufrufen von eingebauten Fixnum-Methoden gefällt
chr
undsucc
erfordert das Öffnen der Fixnum-Klasse und das Neudefiniereninspect
, da ich einen Aufruf vonx.inspect
mit auslösen kannp x
. Ich muss inspizieren, um zurückzukehrennil
,p
damit nur eine neue Zeile gedruckt wird. Jede Zeichenfolge wird in doppelte Anführungszeichen gesetzt. Aber als Nebeneffekt schleift es. Ich kann die erste und die zweite Schleife mit einem Zeichenfolgenvergleich beenden, um festzustellen, wann ich einen Buchstabenbereich erreicht habe. Da ich jedoch kein Zeichenfolgenliteral schreiben kann, muss ich eines durch AufrufenString()
des zurückgegebenen Symbols abrufen (in Ruby 2). nach demdef
Schlüsselwort. Da das eine mehrzeilige Syntax ist und ich nur einen Stringvergleich über machen kanncase
, die keine mehrzeiligen Ausdrücke aufnehmen können, muss ich das Literal in eine Methode einschließen (da ich offensichtlich keine Zuweisung machen kann). Die letzte Schleife ist schwerer zu beenden. Ich muss damit aufhören~
. Glücklicherweise ist eines der ASCII-Zeichen in diesem Bereich~
das einzige, das auf einem Fixnum ohne Argumente aufgerufen werden kann, ohne einen Fehler auszulösen, sodass ich erkennen kannsend chr
, wann ich am Ende bin, und die Schleife beenden kann.Nicht die beste Punktzahl in diesem Thread, aber bisher die einzige, die für beide Teile dieselbe Sprache verwendet. Yay Ruby.
quelle
Teil 2 in Applescript, 654
Warten Sie ... Wo sind die " Tipps zum Golfen in Applescript " -Seite?
Ausgabe:
quelle
CJam + AlphaBeta , 62 Bytes
Buchstaben, CJam , 12 Bytes
Probieren Sie es online!
Ausgabe
Wie es funktioniert
Symbole, AlphaBeta , 50 Bytes
Probieren Sie es online!
Der offizielle C ++ - Interpreter hat einen Fehler, der Schleifen unmöglich macht, und ich kann nicht herausfinden, wie der Lua-Interpreter verwendet wird. Ich habe diesen Fehler behoben. Sie können überprüfen, ob es wie beabsichtigt funktioniert, indem Sie die Beispielprogramme auf der EsoLang-Seite ausführen.
Ausgabe
Wie es funktioniert
quelle
Teil 1 in BrainFuck:
8074 Bytesquelle
>
aufgrund fehlender Codeeinrückung verloren. Es wird also als Zitat gerendert.Insgesamt 318 Bytes
Ich hatte wirklich gehofft, mit beiden Programmen in derselben Sprache eine Antwort zu finden, aber bisher nichts. Hier ist dies stattdessen:
Teil 1: Pure Bash, 129 Bytes
Ausgabe:
Teil 2: GNU DC, 189 Bytes
Ausgabe:
quelle
Weißt du, jemand sollte es in Gang bringen.
Teil 1 in BrainFuck: 174 Bytes
quelle
Teil 1: Ruby, 45 Bytes
Erläuterung
?@...?[
) enthält, und ein Bereich, der AZ (?`...?{
) enthält, werden_
mit dem splat-Operator (*
) zu den Elementen des Arrays ."@"
) und das 27. Element ("`"
) des Arrays_
werden auf gesetztnil
._
wird mitArray#*
stdout zusammengefügt und gedruckt ($>
)quelle
*$_
in der zweiten Zeile mitp
(oder[]
) ersetzen .