Tipps zum Golfen in The Powder Toy

9

Viel Spaß mit diesem, The Powder Toy ist eine interessante Herausforderung für den Golfsport, insbesondere mit Filt-Logik.

Was TPT zu einer Herausforderung macht, sind die vielen, vielen, vielen Möglichkeiten, ein Problem anzugehen: Should I use Cellular Automaton rules, SWCH logic, Filt logic, subframe filt logic, and/or wall logic?

Daher wäre ein Ort für Tipps zum TPT-Golfen sehr hilfreich, daher habe ich diesen Fragenthread erstellt.

Dieser Thread wird wahrscheinlich viele Abkürzungen verwenden. Viele von ihnen werden Elemente im Spiel sein. Wenn Sie sie also im Wiki nachschlagen, erhalten Sie viele Informationen über sie, wie sie sind.

Hier sind die häufigsten, die Sie wahrscheinlich in diesem Thread sehen werden, mit ihrer Ingame-Beschreibung (und ihrem vollständigen Namen) für Leute, die nicht suchen möchten:

  • SPRK: Strom. Die Basis aller Elektronik in TPT verläuft entlang von Drähten und anderen leitenden Elementen.
  • FILT: Filter. Filter nach Photonen, ändert die Farbe.
  • ARAY: Ray Emitter. Strahlen erzeugen Punkte, wenn sie kollidieren.
  • BTRY: Batterie. Erzeugt unendlichen Strom.
  • DRAY: Duplikatorstrahl. Repliziert eine Reihe von Partikeln davor.
  • CRAY: Partikelstrahlemitter. Erzeugt einen Partikelstrahl, der durch seinen c-Typ festgelegt wird, wobei der Bereich durch tmp festgelegt wird.
  • SWCH: Schalten. Leitet nur im eingeschalteten Zustand. (PSCN schaltet sich ein, NSCN schaltet sich aus)

Liste aller Elemente

Mondherz08
quelle
1
@ mbomb007 Danke, dass du den Link hinzugefügt hast. Ich wollte nur darum bitten. Ich kenne TPT nicht und dachte, es sei eine Herausforderung für Spielzeug, das früher - und vielleicht immer noch - in Waschmittelpackungen gefunden wurde ...: /
Arnauld
@Arnauld Haha. Hoppla. Danke mbomb007: P
moonheart08
Wie berechnet man überhaupt die Punktzahl?
12Me21
@ 12Me21 Im Moment basiert die Punktzahl auf der Sicherungsdatei. Sie können das in diesem Meta-Beitrag
moonheart08

Antworten:

2

Verwenden Sie die Subframe-Logik nur, wenn sie kleiner ist

Und für komplexere Maschinen ist es oft viel kleiner.

Der Subframe verursacht im Allgemeinen den Aufwand für die Erstellung eines soliden SPRK (etwa 3 Pixel für die meisten Richtungen, ein zusätzliches Pixel im Vergleich zu nur einem BTRY), FILT-Kanäle (für eine schnelle BRAY-Übertragung) und die Minimierung der Menge an Nicht-Subframe-Logik, selbst wenn diese kleiner ist , weil es viele Male (4x bis 20x-30x langsamer!) langsamer ist.

Subframe-Logik ist oft gut für komplexe Operationen (was hier die meisten Herausforderungen darstellt), aber für einfachere ist Subframe-Logik wahrscheinlich nicht optimal.

Mondherz08
quelle
Bitte fügen Sie Bilder hinzu tyvm
ASCII-
@ Nur ASCII Wird funktionieren, wenn ich nach Hause komme.
Moonheart08
3
Es wäre schön, wenn Sie Dinge buchstabieren könnten, anstatt so viele Abkürzungen zu verwenden. Nicht jeder kennt das Spiel, aber einige finden es vielleicht interessant.
mbomb007
@ mbomb007 Nur zu beachten, FILT, BTRY, BRAY, SPRK usw. sind nur Namen für Partikel im Spiel. Das Spiel selbst verwendet diese Namen. Soll ich stattdessen das Wiki des Spiels in den Hauptbeitrag stellen? Die Leute können diese Namen dort suchen und ganz einfach herausfinden, was sie sind.
Moonheart08
1

Kennen Sie Ihre FILT-Modi

FILT ist zumindest für FILT und Subframe-Logik der Eckpfeiler des Rechnens in TPT. Und als solches hat es eine Reihe von Tricks, die Ihnen das Leben erleichtern, in Form der verschiedenen Modi. Sie stellen einen FILT-Modus mit ein tmp, aber eine umfassende Liste, die die Feinheiten dieser Modi beschreibt, ist derzeit nicht wirklich eine Sache. FILT benötigt zwei Eingaben: die eigene Farbe (CTYPE) und die Farbe der Interaktion, entweder BRAY oder CRAY. Ich werde diese FILTC bzw. INTRC für diese Liste kennzeichnen.

  • Modus 0:

    Im einfachsten Modus wird INTRC auf den Wert von FILTC gesetzt, nicht mehr.

    INTRC = FILTC
    
  • Modus 1:

    Dies ist ein binäres UND, das INTRC und FILTC zusammenfügt und INTRC auf das Ergebnis setzt.

    INTRC = INTRC & FILTC
    
  • Modus 2:

    Dies ist ein binäres ODER, das INTRC und FILTC zusammenfasst und INTRC auf das Ergebnis setzt.

    INTRC = INTRC & FILTC
    
  • Modus 3:

    Dieser Modus ist etwas komplizierter, er kombiniert die Umkehrung von FILTC und INTRC und setzt INTRC auf das Ergebnis.

    INTRC = INTRC & (~FILTC)
    
  • Modus 4:

    Dieser Modus ist etwas schwieriger zu beschreiben. Es ist eine Rotverschiebung (binäre Linksverschiebung),

    Der Haken dabei ist, dass der Betrag, um den es sich verschiebt, durch seine Temperatur gesteuert wird, wobei die Gleichung (Temperatur-273.0) * 0.025 standardmäßig eine Verschiebung um 1 vorsieht, wenn der Wert kleiner als 1 ist. Sie können eine Verschiebung eines beliebigen erforderlichen Betrags erzielen indem Sie die Anzahl der benötigten Bits mit 40 multiplizieren und 273.0 addieren. Ich werde den Betrag verschoben X nennen.

    Daher wird INTRC um X nach links verschoben, wodurch INTRC auf das Ergebnis gesetzt wird.

    X = (temperature-273.0)*0.025
    INTRC = INTRC << X
    
  • Modus 5:

    Dies ist im Wesentlichen Modus 4, jedoch mit einer Rechtsverschiebung. Informationen zur Verwendung finden Sie in den Informationen zu Modus 4.

    X = (temperature-273.0)*0.025
    INTRC = INTRC >> X
    
  • Modus 6:

    Tut nichts.

    INTRC = INTRC
    
  • Modus 7:

    Führt ein binäres XOR für INTRC und FILTC aus und setzt INTRC auf das Ergebnis.

    INTRC = INTRC ^ FILTC
    
  • Modus 8:

    Führt ein binäres NOT bei INTRC aus und setzt INTRC auf das Ergebnis.

    INTRC = ~INTRC
    
  • Modus 9:

    Setzt INTRC auf eine zufällige Farbe.

    INTRC = rand()
    
  • Modus 10:

    Führt eine andere Version einer Rotverschiebung durch.

    [TODO: finde heraus, wie man beschreibt]

    LSB = FILTC & (-FILTC)
    INTRC = INTRC * LSB
    
  • Modus 11:

    Führt eine andere Version einer Blauverschiebung durch.

    [TODO: finde heraus, wie man beschreibt]

    LSB = FILTC & (-FILTC)
    INTRC = INTRC / LSB
    
Mondherz08
quelle