Conseils pour jouer au golf dans The Powder Toy

9

Amusez-vous avec celui-ci, The Powder Toy est un défi intéressant pour le golf, en particulier avec la logique filt.

La chose qui fait du TPT un défi est la multitude de façons d'aborder un problème: Should I use Cellular Automaton rules, SWCH logic, Filt logic, subframe filt logic, and/or wall logic?

En tant que tel, un emplacement pour des conseils pour le golf TPT serait très utile, j'ai donc créé ce fil de question.

Ce fil utilisera probablement beaucoup d'abréviations. Beaucoup d'entre eux seront des éléments du jeu, donc les rechercher sur le Wiki vous apportera beaucoup d'informations à leur sujet, comme ce qu'ils sont.

Voici les plus courants que vous verrez probablement dans ce fil, avec leur description du jeu ci-jointe (et leur nom complet), pour les personnes qui ne veulent pas aller chercher:

  • SPRK: électricité. La base de toute l'électronique en TPT, se déplace le long des fils et autres éléments conducteurs.
  • FILT: Filtre. Filtre pour les photons, change la couleur.
  • ARAY: Ray Emitter. Les rayons créent des points lorsqu'ils entrent en collision.
  • BTRY: Batterie. Génère une électricité infinie.
  • DRAY: Rayon duplicateur. Réplique une ligne de particules devant elle.
  • CRAY: Émetteur de rayons de particules. Crée un faisceau de particules défini par son type, avec une plage définie par tmp.
  • SWCH: Commutateur. Conduit uniquement lorsqu'il est allumé. (PSCN s'allume, NSCN s'éteint)

Liste de tous les éléments

moonheart08
la source
1
@ mbomb007 Merci d'avoir ajouté le lien. J'allais juste demander ça. Je ne connais pas le TPT et pensais que c'était un défi pour les jouets qui étaient - et sont peut-être encore - trouvés dans des packs de détergent ...: /
Arnauld
@Arnauld Haha. Oups. Merci mbomb007: P
moonheart08
Comment calculez-vous même le score?
12Me21
@ 12Me21 Pour le moment, le score est basé sur le fichier de sauvegarde. Vous pouvez en discuter dans cette méta post
moonheart08

Réponses:

2

N'utilisez la logique de sous-trame que lorsqu'elle est plus petite

Et, pour les machines plus complexes, il est souvent beaucoup plus petit.

La sous-trame impose généralement la surcharge de créer un SPRK solide (environ 3 pixels pour la plupart des directions, un pixel supplémentaire par rapport à juste un BTRY), des 'canaux' FILT (pour un transfert BRAY rapide) et minimiser la quantité de logique sans sous-trame, même si elle est plus petite , car il est plusieurs fois (4x à 20x-30x plus lent!) plus lent.

La logique de sous-trame est souvent bonne pour les opérations complexes (ce qui est la plupart des défis ici), mais pour les opérations plus simples, la logique de sous-trame n'est probablement pas optimale.

moonheart08
la source
pls add images tyvm
ASCII uniquement
@ ASCII uniquement Fera quand je rentrerai.
moonheart08
3
Ce serait bien si vous pouviez énoncer les choses au lieu d'utiliser autant d'abréviations. Tout le monde ne connaît pas le jeu, mais certains pourraient le trouver intéressant.
mbomb007
@ mbomb007 Je vais juste noter que FILT, BTRY, BRAY, SPRK, etc. ne sont que des noms de particules dans le jeu. Le jeu lui-même utilise ces noms. Dois-je plutôt mettre le wiki du jeu dans le message principal? Les gens peuvent rechercher ces noms là-bas et comprendre ce qu'ils sont assez facilement.
moonheart08
1

Connaissez vos modes FILT

FILT est, au moins pour la logique FILT et la sous-trame, la pierre angulaire de l'informatique dans TPT. Et en tant que tel, il a un tas d'astuces pour vous faciliter la vie, sous la forme de ses différents modes. Vous définissez un mode FILT à l'aide tmp, mais une liste complète qui décrit les subtilités de ces modes n'est pas vraiment une chose en ce moment. FILT prend deux entrées: sa propre couleur (CTYPE) et la couleur de ce avec quoi il interagit, BRAY ou CRAY. Je vais étiqueter ces FILTC et INTRC, respectivement, pour cette liste.

  • Mode 0:

    Le mode le plus simple, il définit INTRC à la valeur de FILTC, rien de plus.

    INTRC = FILTC
    
  • Mode 1:

    Il s'agit d'un ET binaire, il est associé à INTRC et FILTC, définissant INTRC sur le résultat.

    INTRC = INTRC & FILTC
    
  • Mode 2:

    Il s'agit d'un OU binaire, il combine ensemble INTRC et FILTC, définissant INTRC sur le résultat.

    INTRC = INTRC & FILTC
    
  • Mode 3:

    Ce mode est légèrement plus compliqué, il combine l'inverse de FILTC et INTRC, définissant INTRC sur le résultat.

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

    Ce mode est un peu plus difficile à décrire. C'est un décalage rouge (décalage gauche binaire),

    Le problème ici est que la quantité de décalage est contrôlée par sa température, avec l'équation (Température-273,0) * 0,025, par défaut un décalage de 1 si la valeur est inférieure à 1. Vous pouvez obtenir un décalage de n'importe quelle quantité requise en multipliant le nombre de bits dont vous avez besoin par 40 et en ajoutant 273,0. J'appellerai le montant décalé X.

    En tant que tel, INTRC est décalé vers la gauche de X, définissant INTRC sur le résultat.

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

    Il s'agit essentiellement du mode 4, mais avec un décalage à droite à la place. Voir les informations sur le mode 4 pour savoir comment l'utiliser.

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

    Ne fait rien.

    INTRC = INTRC
    
  • Mode 7:

    Effectue un XOR binaire sur INTRC et FILTC, définissant INTRC sur le résultat.

    INTRC = INTRC ^ FILTC
    
  • Mode 8:

    Effectue un NOT binaire sur INTRC, définissant INTRC sur le résultat.

    INTRC = ~INTRC
    
  • Mode 9:

    Définit INTRC sur une couleur aléatoire.

    INTRC = rand()
    
  • Mode 10:

    Effectue une version différente d'un décalage vers le rouge.

    [TODO: comprendre comment décrire]

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

    Effectue une version différente d'un décalage bleu.

    [TODO: comprendre comment décrire]

    LSB = FILTC & (-FILTC)
    INTRC = INTRC / LSB
    
moonheart08
la source