Hallo Welt mit einem Twist


17

Ihr Ziel : Schreiben Sie einen Code, der das klassische Ergebnis von "Hallo Welt!" auf STDOUT oder gleichwertig gedruckt werden.

Regeln : Code muss vollständig im ASCII-Format gedruckt werden. Jeder Code muss funktionsfähig sein - das Entfernen eines einzelnen Zählzeichens muss das Ergebnis verändern oder den Code funktionsunfähig machen. Alle Variablen müssen nach der Zuweisung verwendet werden. Zeichen- und Zeichenkettenliterale müssen für die Ausgabe erforderlich sein. Das Ersetzen von Zeichenliteralen oder Zeichen in einem Zeichenkettenliteral durch ein anderes Zeichen muss das Ergebnis ändern können (und nicht durch die Auswirkung der Escape-Sequenz - Ersetzen von Zeichen durch Backslash) oder gleichwertig)

(HINWEIS: Die endgültige Regel wurde in bearbeitet.)

Wertung : Hier wird es interessant. Die höchste Punktzahl wird durch die Anzahl der Zeichen gemäß den typischen Regeln für das Code-Bowling bestimmt. Die wiederholte Verwendung von Zeichen führt jedoch zu Punktabzügen. Speziell...

  1. Die wiederholte Verwendung eines alphanumerischen Zeichens (az, AZ, 0-9) führt zu einem Abzug von 3 Punkten pro Wiederholung (die erste Verwendung führt nicht zu einem Abzug).
  2. Die wiederholte Verwendung der grundlegenden Interpunktion ([!? .-, ": ';]) - einschließlich der Klammern - führt zu einem Abzug von 2 Punkten pro Wiederholung.
  3. Die wiederholte Verwendung anderer ASCII-Zeichen {`~ @ # $% ^ & * _ + = | \ /> <} - einschließlich der geschweiften Klammern - führt zu einem Abzug von 4 Punkten pro Wiederholung.
  4. Die wiederholte Verwendung von Leerzeichen, Tabulatoren und Zeilenumbrüchen führt zu einem Abzug von 1 Punkt pro Wiederholung. Dies bedeutet, dass nur die erste Verwendung eines Leerzeichens, Tabulators oder einer neuen Zeile für Ihre Gesamtsumme berücksichtigt wird.

Hinweis: Kommentare zählen nicht zur Gesamtsumme, obwohl die Zeichen, die den Anfang / das Ende eines Kommentars markieren, dies tun. In C / C ++ /* This is a comment */werden zum Beispiel zwei Schrägstriche und zwei Sternchen gezählt, aber nichts dazwischen.

Einige Beispiele (Hinweis: Verwenden von Julia als Beispielsprache) ...

print("Hello, world!");

Insgesamt sichtbare Zeichen: 22
Enthält
Leerzeichen : +1 Wiederholte alphanumerische Zeichen: -12 für llor
Wiederholte Interpunktion: -2 für "
Endpunktzahl: 22 + 1-12-2 = 9

print("Hel",char(108),"o, wor",0x108,"d!"); # 0x108 makes a Uint8 that prints as ASCII

Gesamtanzahl der Zeichen: 43 (zählt keine Zeichen nach #, dem Kommentarzeichen)
Enthält
Leerzeichen : +1 Wiederholte alphanumerische Zeichen: -18 für rr1008
Wiederholte Interpunktion: -24 für () "" "" ,,,,,
Final Punktzahl: 43 + 1-24-18 = 2

xy=STDOUT
m="Hello, world!"
print(xy,m);

Insgesamt sichtbare Zeichen: 37
Enthält Newline: +1
Enthält
Leerzeichen : +1 Wiederholte alphanumerische Zeichen: -18 für Xyllor
Wiederholte Interpunktion: -4 für ",
Wiederholte andere ASCII-Zeichen: -4 für =
Endpunktzahl: 37 + 1 + 1-18-4 -4 = 13

Ein paar ungültige Code-Teile ...

x=2;print("Hello,world!")  

Problem: xwird zugewiesen, aber nicht verwendet.

print("Hello,"*" world!")  

Problem: *ist unnötig, das Ergebnis wird ohne dasselbe sein.

k=1
if k>0
  print("Hello, world!")
else
  print("abcghjmquvxyzABCDEFGIJKLMNOPQRSTUVWXYZ_+*-&|")
end  

Problem: Der zweite printBefehl wird nicht ausgeführt. Auch das Entfernen von Zeichen in Anführungszeichen im zweiten printBefehl ändert die Ausgabe nicht.

x="Hello, world!";
print(x)  

Problem: Das Entfernen einer neuen Zeile ändert weder das Ergebnis noch den Fehler (in Julia ist ein Semikolon nur erforderlich, wenn sich mehrere Befehle in derselben Zeile befinden, andernfalls wird nur der Rückgabewert unterdrückt).

print("Hellos\b, world!")  

Problem: Das sZeichen hat keinen Einfluss auf das Ergebnis, da es von gelöscht wird \b. Dies ist akzeptabel, wenn dies über code ( "Hello",char(100),"\b, world!") erfolgt, jedoch nicht über Zeichenkettenliterale oder Zeichenliterale.

Praktischer Score-Rechner - http://jsfiddle.net/4t7qG/2/ - dank Doorknob



1
Dies scheint für Ihre Diskussion relevant zu sein meta.codegolf.stackexchange.com/questions/777/…
Martin Ender

3
Ich habe ein JSFiddle erstellt, in das Sie Ihren Code einfügen können, und das automatisch Ihre Punktzahl ermittelt. Würdest du damit einverstanden sein, dass ich einen Link dazu in den Beitrag bearbeite?
Türklinke

1
@Dennis - Wenn Ihr Programm aufgrund des Befehls eine neue Zeile erzeugt, ist dies kein Problem (z. B. println in Julia druckt und fügt am Ende eine neue Zeile hinzu). Aber es sollte nicht Teil der Saite sein.
Glen O

1
@ACarter - im Grunde ja. Aber die Beschränkungen und die Abzüge machen es nicht trivial.
Glen O

Antworten:


17

Perl - 96

(Ziemlich gut, angesichts der theoretischen Höchstpunktzahl von 97)

s{}[Hel0o, w3$=d!];y<"#%&'*.124578:?@BCDEFGIJKLMNOQ/-9>(
    6PRSTUVWXYZ^_`abfghjmqvxz|~\cAk-u)+print

(Beachten Sie, dass die zweite Zeile mit einem tatsächlichen \tTabulatorzeichen beginnt. )

Der Code ist 98 Zeichen lang und enthält jedes ASCII-Zeichen genau einmal sowie ein zusätzliches -.
98-2 = 96

Es gibt keine String - Literale hier, aber die Entfernung von jedem einzelnen Zeichen bricht das Programm ab .

Deobfuscation

Es gibt 3 Anweisungen in diesem Programm (nun, eigentlich 2, aber ich habe sie +als eine Art Anweisungstrennzeichen missbraucht )

  1. s{}[Hel0o, w3$=d!]
    Dies ist ein sehr ausgedehnter Fall des sed-Operators. Es wird allgemeiner als s/a/b/oder geschrieben s:a:b:, aber Perl lässt hier viel mehr Fantasie zu: s(a)(b) s(a)^b^ s(a)[b]und sogar s qaqbq.
    Ersetzt eine leere Zeichenfolge (innen {}) durch Hel0o w360d!(innen []) ( $=interpoliert 60standardmäßig auf). Aufgrund des Fehlens eines ~=Bedieners arbeitet es weiter $_.

  2. y<"#%&'*.124578:?@BCDEFGIJKLMNOQ/-9>(\n\t6PRSTUVWXYZ^_`abfghjmqvxz|~\cAk-u)
    Dies ist ebenfalls ein sehr ausgedehnter Fall, jedoch eines trOperators, der auch als y( y< >( )) bezeichnet wird.
    Schauen wir uns die Ersetzungstabelle an:
    " # %&'*.124578:?@BCDEFGIJKLMNOQ /-9
    \n\t6PRSTUVWXYZ^_`abfghjmqvxz|~\cA k-u
    Ich habe einige Zeichen verschoben, damit die vorhandene Zeichenfolge nicht beschädigt wird. Der einzige Teil, der hier tatsächlich funktioniert, ist /-9-> k-u. Es ersetzt 0mit l, 3mit ound 6mit r.
    Da der ~=Operator nicht vorhanden ist, wird er ausgeführt. $_
    Jetzt haben wir also die vollständige Phrase in der $_Variablen.

  3. print
    Fehlen Argumente, wird nur die $_Variable ausgegeben.


Ich kenne Perl nicht genug, um dies zu kommentieren - was ist die Zeichenfolge zwischen <und +?
Glen O

@GlenO Nur /-9und k-uwerden tatsächlich zum Transformieren der Zeichenfolge verwendet. Der Rest ist ein gleich großer Müll. Wenn Sie nur ein Zeichen entfernen, werden die Sätze falsch ausgerichtet und das Programm gibt nicht "Hallo Welt!" nicht mehr.
5.

Auf welche Weise wird in diesem Fall der "Müll" ausgeführt? Das heißt, wie funktioniert es? Wenn nur Füllmaterial vom Code übersprungen wird, entspricht dies einem nicht ausgeführten Code innerhalb einer Bedingung.
Glen O

3
@ GlenO ist es nicht. Zur Spezifikation: Durch <...> removal of any single counting character must change the result or cause the code to not function.Entfernen von 1 Zeichen wird es an einer beliebigen Stelle unterbrochen. Sie können es schaffen, indem Sie 2 Zeichen entfernen, aber das steht nicht in den Regeln.
5.

2
All code must be functional. Zumindest verstößt du eindeutig gegen die Regeln. Ich sage nicht "es bricht die Regeln", aber es ist definitiv fraglich.
Glen O

7

Diese Antwort wurde vor dem Hinzufügen der Regel zu Zeichenfolgenliteralen erstellt und nimmt nicht am Wettbewerb teil.

#include <iostream>
int main(){std::cout<<56+"  !$%^&*?12347890-_QWERTYUIOPASDFGJKLZXVBNM,.qypfghjk:zvbHel\x6Co, world!";}

Es ist völlig legitim. : P Wenn Sie ein Zeichen aus dieser Zeichenfolge entfernen, wird es gedruckt ello, world!.


Bitte geben Sie die Punktzahl Ihres Codes in Ihrer Antwort an.
ProgramFOX

Auch wird es nicht Ihre Punktzahl ändern, aber die Leerzeichen <<müssen entfernt werden.
Martin Ender

1
Hmmm ... während ich Ihre Antwort begrüße, hat sie in erster Linie eine kleine Lücke in meinen Einschränkungen aufgedeckt. Ich gebe dir eine Gegenstimme und freue mich, dass andere das Gleiche tun, wenn sie es mögen, aber ich werde es mit einer zusätzlichen Einschränkung bearbeiten.
Glen O

1
OK, zusätzlich zu meinem vorherigen Kommentar habe ich jetzt eine Einschränkung hinzugefügt, die besagt, dass Zeichenketten- und Zeichenliterale relevant sein müssen - das Ersetzen von Zeichen in ihnen muss in der Lage sein, das Ergebnis zu ändern. Dies ermöglicht if 'x'>'w'Techniken, aber Blöcke "k \ bH" führen zum Beispiel zu "H". Fühlen Sie sich frei, eine zweite Antwort nach der hinzugefügten Einschränkung beizutragen.
Glen O

4

CJam, 94

{'H"EJO, WoRLD!"el96A+c/~_-3=0$@}"# 
`&^<>|;:?.()[]\1aBCdfFgGhiIjkKmMnNpPqQrsStTuUvVwxXyYzZ"254b87%*

Probieren Sie es online! Beachten Sie, dass sich unmittelbar vor dem Zeilenumbruch ein Tabulator befinden sollte. Da SE keine Tabulatoren mag, müssen Sie diese manuell einfügen.

  • 100 Zeichen lang
  • wiederholtes Album: -0 ()
  • wiederholte Zeichensetzung: -6 ("" ")
  • wiederholte andere: -0 ()
  • wiederholtes Leerzeichen: -0 ()

Gesamtpunktzahl: 94

Ich habe den folgenden Code verwendet, um zu überprüfen, ob keines der Zeichen in der Zeichenfolge entfernt werden kann:

"#  
`&^<>|;:?.()[]\1aBCdfFgGhiIjkKmMnNpPqQrsStTuUvVwxXyYzZ"
:A,,{_A\<A@)>+254b87%}%`

Es wird ein Array ausgegeben, das angibt, wie oft Hello, world! würde gedruckt werden, wenn das dem Index entsprechende Zeichen entfernt würde.


Wenn ich es in Ihrem Link ausführe, wird "Hallo Welt!" sechsmal hintereinander. Und was macht die Zeichenfolge?
Glen O

Ich vermute, der Zeilenvorschub ist der Fehler. Wenn Sie ihn entfernen, funktioniert er.
Glen O

Problem beim Kopieren und Einfügen. Es sollte einen Tabulator direkt vor dem LF geben. Es sieht so aus, als würde SE das nicht zulassen ... Die Zeichenfolge wird als Basis-254-Zahl ( 254b) betrachtet. Das Endergebnis Modul 7 sollte 1 sein, so dass der vorherige Codeblock einmal ausgeführt wird. Ich brauche einen Modul, um jeden Charakter notwendig zu machen.
Dennis

Nun, nach dem Hinzufügen des fehlenden Tabs (der den Code "repariert"), ändert das Entfernen der Z, der Toder wahrscheinlich einiger anderer Zeichen nichts am Ergebnis.
Glen O

Ich hatte einen Teil Ihrer Frage schrecklich falsch interpretiert. Es ist jetzt behoben.
Dennis

3

Ruby, 28 41

Beginnen Sie die Antworten mit einer Lösung im Geiste der Frage:

print"He#{?l*2}o, "+'world!'if[$`&(9<=>6)^7|~8-5/3.1%0x4]

Wertung (ich glaube, ich habe das richtig verstanden):

  • 57 Zeichen lang
  • wiederholtes Album: -12 ( orli)
  • wiederholte Zeichensetzung: -4 ( "')
  • wiederholte andere: -0
  • wiederholtes Leerzeichen: -0

Sieht für mich gut aus, punktet. Keine Notwendigkeit, nicht geltende Strafen aufzunehmen, aber kein Schaden, wenn sie aufgenommen werden.
Glen O

Der .Eingang 3.1kann problemlos entfernt werden. Wie kann das xin 0x4oder das -in 8-5.

3

PHP, 1 (ja, ein Punkt!)

Verwenden Sie magische Zeichen, um eine Prüfsumme zu generieren, die in binärer Form mit "Hell", "o, w", "orld" und "!" Übereinstimmt.

Normalerweise mag ich es, Lücken zu finden, aber dieses Mal habe ich mich entschieden, nach dem Geist und der Absicht des Wettbewerbs zu spielen. Jedes Zeichen und seine Position ist für die Ausgabe von wesentlicher Bedeutung. Die einzigen Stellen, die Sie ersetzen können, sind Variablennamen, die keine Literalwerte sind, der Leerraum zwischen phpund foreachder PHPals äquivalent behandelt wird, und die Verwendung von 'vs, "der PHPals ähnlich behandelt wird.

<?php foreach(array('_MC:`~+V4@SbHR/l[J','dN#UB`5!Rv^NG@D}','9gm6L&-kuD','8OM97g.q]XQ0')as$j)print(hash("crc32",$j,1))?>

Zu Ihrer Information, dies sind einige andere interessante magische Strings und Hashes:

E.D}S:  Hell
9UDIRQ: Hell
N\7&*`%:    orld
UWX[E^O:    orld
mAHzDEb:    !   
uLJ7Ck&:    Hell
B+bG5mYJ:   Hell
:OvMzuOR:   !   
TgYR9g!6k:  o, w
NkFN`!8mI:  o, w
N#VA\j~}J[: Hell
vEl*]@0XQ5: o, w
9gm6L&-kuD: orld
*}{Xg@HN`\: !   
Pj@Y44uA6YJ:    Hell
|7OX0VF8gv}:    !   
DLRJAjgMj}\:    !   
!0bT*D}O4Lw:    orld
YGN97^v7ZY`:    Hell
++~bL/kP:|]W:   o, w
8OM97g.q]XQ0:   !   
l^m-DqZ^g[&+:   !   
Ewu]Rv~*DHQ7:   Hell
JIqjgF|S!\`8l:  Hell
b4l!MEG7vTu6/:  Hell
+B:zEq*J\k-Cm:  !   
_}E7wZD76^`Y9AU:    orld
q:Nq-~+_S7~N9Hz:    !   

Der Code funktioniert immer noch , wenn ich entferne das \t, \noder den Raum. Kein PHP-Experte, aber auch ;optional.
5.

@mniip - Bearbeitungen vorgenommen. Mir war nicht bewusst, dass das Semikolon in einigen Fällen optional war.

3

Befunge-98 , 97 Punkte!

"v!dlrow ,h
B[CDEFGIJkLMNOPH
$<QRSTUV@|5cg1fe':-%\64*ab+7_/89}{0  j2
WXYZK`.=#>]
s()impq	n 3~
Atuxz&;y^ ?

Probieren Sie es online!

Die Registerkarte befindet sich zwischen qund n.

Verwendet einen ähnlichen Trick wie die vorherige Befunge-Antwort, um die Zeilen mit den verbleibenden Zeichen aufzufüllen, vermeidet jedoch die Verwendung doppelter Zeichen im ausführenden Abschnitt. Das Entfernen eines der nicht ausführbaren Zeichen führt dazu, dass die ausführbaren Teile nicht mehr richtig platziert sind und normalerweise in Endlosschleifen enden oder die falsche Ausgabe drucken.

Wie es funktioniert

In Wirklichkeit sieht der einzige ausführende Teil so aus:

"v!dlrow ,h
         k     H
$<      @|5cg1fe':-%\64*ab+7
         >]
        ^ ?

Zuerst wird ein Wrapping-String-Literal zum Hinzufügen , world!zum Stack verwendet. Dies vermeidet zwei "s.

$<      @|5cg1fe':-%\64*ab+7

Dadurch wird Helloder Stapel mithilfe verschiedener Methoden erweitert, um doppelte Zeichen zu vermeiden. $Löst den überschüssigen Speicherplatz aus, der durch das Zeilenumbruch-Literal verursacht wird.

7+Fügt dem hvom Ende des Strings abgeleiteten Literal 7 hinzu , um das zu erstellen o . ba*46\%:berechnet 111, den ASCII-Wert von lund dupliziert ihn.

'e Fügt e zum Stapel hinzu.

f1g bekommt das Zeichen bei 1,15 was das ist H

Anschließend wird die ,Zeichenfolge erneut verwendet, um das Ganze auszudrucken Hello, world!. Der Rest ist nur Richtungsänderungen, um zum Ende zu navigieren @.


1

Rubin, 78

Mehr Regelmissbrauch, ich glaube nicht genau, was der Patch sein würde. Nimmt eine lange Zeichenfolge und prüft die Summe der Ergebnisse, sodass das Programm beim Löschen oder Ändern fehlschlägt. Könnte wahrscheinlich ein wenig optimiert werden, um die Duplizierung einiger Buchstaben zu entfernen und Whitespace zu erzeugen.

puts('Hello, world!')if%["\#$&*+-/:;<>?@ABCDEFGIJKLMNOPQRSTUVWXYZ^_`abcghjknqvxyz{|}~123].sum==4980

3
Das Problem ist, alles nach und einschließlich der ifkann entfernt werden.
Siehe auch

@TheRare - daran ist nichts auszusetzen, solange das ifeigentlich funktioniert und das Zeug danach noch den Regeln gehorcht.
Glen O

@ GlenO Aber wird es nicht als "entfernbarer Code" gezählt? puts('Hello, world!')Würde einfach funktionieren. Ich denke, die Regeln müssen geklärt werden, ob dies legitim ist.
Siehe auch

@TheRare - im Nachhinein hätte ich wahrscheinlich einen Sweep verwenden sollen "eine Teilmenge des Codes sollte nicht in der Lage sein, die gleiche Ausgabe zu erzeugen", aber ich denke nicht, dass ich die Regeln weiterhin ändern sollte. Solange der Code funktionsfähig und nicht willkürlich ist und den anderen Regeln folgt, ist er legitim. Zumindest ist diese Lösungsmethode in den meisten Sprachen nicht erreichbar (die von mir vorgenommene Änderung hat eine Lücke geschlossen, die in den meisten Sprachen funktioniert).
Glen O

@ GlenO Du bist der Richter. Bitten Sie mich einfach, diese Kommentare zu löschen, wenn Sie der Meinung sind, dass sie unnötig sind.
Siehe auch

1

PHP, 2257

Lücke: Der Backslash wurde in den Spezifikationen und im Punkterechner weggelassen!

Dieser Code zählt die Häufigkeit von Backslashes in jeder Zeichenfolge und gibt ein ASCII-Äquivalent aus. Das Ersetzen eines Backslashs durch ein anderes Zeichen oder das Löschen eines Backslashs führt entweder zu einem Analysefehler oder ändert das Ergebnis.

Ein nettes Feature über Backslashes und PHPist, dass sie maskiert werden müssen, damit die Punktzahl automatisch verdoppelt wird! Sie können die Punktzahl verdoppeln, verdreifachen usw., indem Sie die Anzahl der Backslashes multiplizieren, wollten aber nicht gierig sein, und ich denke, dass dies die Grenzen dessen überschreitet, was Sie eingeben können.

<?php foreach(array('\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')as$x)print(chr(substr_count($x,"\\")))?>

Es ist eindeutig nichts weiter als ein Tippfehler in der Beschreibung, keine Lücke. Darüber hinaus wussten Sie das bereits. Die Beschreibung sagt ausdrücklich "andere ASCII-Zeichen". Wenn Sie dies lesen, wurde es bearbeitet, um es einzuschließen.
Glen O

Insbesondere Backslash war die Quelle der Frage, aber ich hatte nicht bemerkt, dass es sich um eine Escape-Sequenz handelte.
Glen O

Dies ist keine Änderung der Regeln, sondern die Korrektur eines geringfügigen Tippfehlers. Der Backslash war in den Regeln enthalten, er wurde nur nicht angezeigt (um sich selbst davon zu überzeugen, klicken Sie auf die Schaltfläche "Bearbeiten" und dann auf "Markieren nebeneinander"). Und die anderen nutzen keine Schlupflöcher, sie nutzen die Merkmale ihrer Sprachen.
Glen O

1

Befunge - 87

"dlrow ,olleH"bk,                                                                   v
!#$%&'()*+-./0123456789:;  <=>?ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`acfghijmnpqstuvxyz{|}~@

Die erste Zeile ist aufgrund der Wiederholung vier Punkte wert, die zweite Zeile enthält jedoch keine doppelten Zeichen. Das einzige Zeichenfolgenliteral in diesem Code ist dlrow ,olleH, das umgekehrt und als Ausgabe ausgegeben wird. Wenn Sie ein Zeichen entfernen, wird die Verbindung zwischen vdem Ende der ersten und @dem Ende der zweiten Zeile unterbrochen, sodass das Programm niemals beendet wird. Wenn das vselbst entfernt wird, wird der Code in eine Endlosschleife eingegeben, die die richtige Ausgabe druckt.



0

Acc !!, -138 (und ja das ist negativ 138)

Obwohl dies nicht unbedingt die beste Punktzahl ist, die ich jemals in PPCG erzielt habe, bezweifle ich, dass sie in Acc !! höher sein kann.

108
Write 72
Write 101
Count i while i-2 {
	Write _
}
Write _+3
Write 44
Write 32
Write 119
Write 111
Write 114
Write _
Write 100
Write 33

Probieren Sie es online!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.