MacGyvers zweite Toolbox


16

In dieser Frage erhält jede Antwort eine "Toolbox", mit der ein Programm / eine Funktion erstellt werden kann. Die Toolbox besteht aus zwei Dingen:

  • eine Liste der Programmiersprachen

  • eine Liste der gültigen Zeichen

Sie müssen ein gültiges Programm / eine gültige Funktion in einer der bereitgestellten Sprachen schreiben und nur die Zeichen in der Toolbox verwenden. Ihr Programm / Ihre Funktion sollte die Anzahl der Antworten ausgeben, die bereits auf diese Frage vorhanden sind.

Sobald Sie eine Antwort geschrieben und gepostet haben, werden die von Ihnen verwendete Sprache und die Zeichen aus der Toolbox entfernt, und 1 neue Sprache und 8 neue Zeichen werden nach dem Zufallsprinzip hinzugefügt, um als Toolbox für die nächste Antwort verwendet zu werden.

Regeln

  • Jede Antwort wird:

    • Geben Sie die Anzahl der gültigen Antworten aus, die davor stehen
    • Enthält eine Teilmenge der Zeichen, die in der Toolbox für diese Antwort enthalten sind. (Wiederholungen sind erlaubt)
    • Seien Sie in einer der Sprachen aus der mitgelieferten Toolbox
  • Die nächste Toolbox wird von diesem Python-Programm bestimmt. Um die nächste Toolbox zu generieren, geben Sie die verbleibenden Sprachen und Zeichen zusammen mit der Beitrags-ID der letzten Antwort ein.

  • Die Sprachliste hier enthält alle Sprachen, die zum Zeitpunkt dieses Beitrags bei try it online verfügbar waren. Die Zeichen haben den Zeichencode 0-127.

  • Sie können entweder ein vollständiges Programm oder eine Funktion als Antwort schreiben. Da es sich bei REPLs um verschiedene Sprachen handelt, sind sie nicht zulässig. (Verwenden Sie die TIO-Version jeder Sprache)

  • Wenn eine Sprache eine spezielle Kodierung verwendet, sollten die Zeichen als Bytes interpretiert werden (aus ASCII dekodiert und mit einer Null aufgefüllt).

  • Die Start-Toolbox wird nach dem Zufallsprinzip aus der Post-ID ( 128464 ) zusammengestellt. Es werden 7 Sprachen gestartet, und ich werde die Zeichen echoprint0und ASCII 0-31 kostenlos hinzufügen , um die Leute zum Laufen zu bringen.

  • Sie dürfen nicht zweimal hintereinander antworten

Wertung

Jedes Mal, wenn eine Person antwortet, erhält sie eine Reihe von Punkten für ihre Antwort. Das Ziel ist es, so viele Punkte wie möglich zu bekommen. Für eine Antwort in Sprache X erhalten Sie so viele Runden, wie Sprache X in der Toolbox nicht mehr verwendet wurde. Zum Beispiel bekommt die erste Person, die antwortet, 1 Punkt, weil die Sprache gerade zur Toolbox hinzugefügt wurde. Es wird nicht unbedingt ein Ende geben und ich werde keine Antworten akzeptieren.

Sporting

Dies ist ein Wettbewerb, aber ich ermutige Sie, den Spaß über das Gewinnen zu stellen, während Sie wettbewerbsfähig bleiben (wenn ich die Gewinnkriterien so gestalten könnte, dass es Spaß macht, würde ich es tun). Einige Dinge, die keinen Spaß machen:

  • Wenn Sie absichtlich Charaktere verwenden, müssen Sie zukünftige Antworten nicht verkneifen.
  • Der Versuch, das Post-ID-System zu spielen, um zukünftige Toolboxen schwerer zu bedienen.
  • Der Versuch, das Post-ID-System zu spielen, um zukünftige Toolboxen benutzerfreundlicher zu machen.

Ich kann niemanden davon abhalten, diese Dinge zu tun, aber ich werde alle Antworten, von denen ich vermute, dass sie dies tun, ablehnen.

Positiv ist zu vermerken, dass hier einige Dinge aufgeführt sind, die sportlich gut sind und gefördert werden:

  • Koordination mit anderen Usern im Chat.
  • Speichern von Zeichen für härtere oder restriktivere Sprachen

Dies ist eine zweite Wiederholung einer Herausforderung, die hier zu finden ist . Es verbessert eine Reihe von Problemen mit dem ersten. Hier ist ein Meta, das diese Fragen diskutiert.


Was ist der erste Werkzeugkasten?
CalculatorFeline

@CalculatorFeline Wird in der Frage verlinkt und mit der Fragen-ID versehen.
Weizen-Assistent

1
@tuskiomi Die ältere Frage und die neuere Frage werden von derselben Person erstellt, und es ist angebracht, ältere Fragen als Duplikate von neueren, besseren Fragen zu schließen.
Stephen

2
@tuskiomi Der größte Unterschied besteht in der Anzahl der Zeichen, die der Sandbox jedes Mal hinzugefügt werden. Zuvor war es 12, was schnell außer Kontrolle geriet, was bedeutete, dass praktisch jede Antwort alle verfügbaren ASCII-Daten enthielt. Ich habe es auf 8 gesenkt, was der durchschnittlichen Anzahl von Zeichen entspricht, die von allen Antworten in der letzten Version verwendet wurden. Ich würde zustimmen, dass der Unterschied im Samen und in der Wertung geringfügige Änderungen sind, aber die Abnahme der Charaktere ist der ganze Grund, warum ich eine zweite Iteration durchgeführt habe.
Weizen-Assistent

1
Ich bin mir ziemlich sicher, dass das unmöglich ist. Str-Programme erfordern ein ;(nicht in der Toolbox), um etwas zu tun, wenn keine Eingabe erfolgt. Condit- und Tcl-Programme benötigen als Teil der Syntax ein Leerzeichen (nicht in der Toobox). Schema braucht (. Brain-Flak kann aus offensichtlichen Gründen nicht funktionieren (der einzige Charakter in der Toolbox, den es versteht, ist )). Java 8 benötigt ein {(nicht in der Toolbox), um eine Funktion zu deklarieren. Das lässt nur Maxima übrig, von denen ich nicht denke, dass sie Dinge ohne "print" drucken oder eine Funktion ohne die Verwendung von Klammern deklarieren können.
Paprika

Antworten:


8

Das ist unmöglich

Alle Sprachen in der Langbox durchgehen:

  1. Die Programmiersprache tcl besteht aus durch Leerzeichen getrennten Wörtern. Das Leerzeichen befindet sich nicht in der Toolbox, daher können keine gültigen Programme geschrieben werden.
  2. Str-Programme transformieren standardmäßig die Eingabe. Damit sie etwas tun können, wenn keine Eingabe erfolgt, ist das ;Zeichen erforderlich, das sich nicht in der Toolbox befindet.
  3. Das einzige Mittel für ein Programm in scheme-chez, etwas zu tun, ist das Aufrufen einer Funktion in Klammern. Alle scheme-chez-Programme benötigen daher das (Zeichen, das sich nicht in der Toolbox befindet
  4. Brain-Flak-Programme benötigen ausgeglichene Klammern. Das einzige Klammerzeichen in der Toolbox ist ), daher sind keine Programme mit ausgeglichenen Klammern möglich.
  5. Ähnlich wie bei Schemata erfordern Maxima-Programme Klammern, um etwas zu tun.
  6. Java-Programme benötigen die Zeichenfolge {oder ->, um eine Funktion zu deklarieren (und alle vollständigen Programme benötigen mindestens eine Funktion), von denen sich keine in der Toolbox befindet.
  7. Für Condit-Programme ist das Wort erforderlich when, das das Zeichen "e" enthält, das sich nicht in der Toolbox befindet.

Unmöglichkeitsnachweise sind als Antwort zulässig



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.