Поради щодо гольфу в іграшці з порошком


9

Повеселіться з цим, The Powder Toy - цікавий виклик для гольфу, особливо з логікою фільтра.

Те, що робить ТПТ викликом, - це багато, багато та багато способів вирішити проблему: Should I use Cellular Automaton rules, SWCH logic, Filt logic, subframe filt logic, and/or wall logic?

Таким чином, місце для отримання порад щодо гольфу в TPT було б дуже корисним, тому я зробив це питання.

Цей потік, ймовірно, буде використовувати безліч скорочень. Багато з них будуть ігровими елементами, тому пошук їх у Вікі принесе вам багато інформації про них, як, наприклад, вони є.

Ось найпоширеніші з них, які ви, швидше за все, побачите в цій темі з додаванням їх опису ingame (та повним ім'ям) для людей, які не хочуть шукати:

  • SPRK: Електрика. Основа всієї електроніки в ТПТ, проходить вздовж проводів та інших струмопровідних елементів.
  • ФІЛЬТ: Фільтр. Фільтр для фотонів, змінює колір.
  • ARAY: Рей-випромінювач. Промені створюють точки, коли вони стикаються.
  • BTRY: Акумулятор. Виробляє нескінченну електрику.
  • КРАЙ: Копіюючий промінь. Повторює лінію частинок перед собою.
  • КРЕЙ: Емітер променя частинок Створює пучок частинок, заданий його типом, з діапазоном, заданим tmp.
  • SWCH: Перемикач. Проводить тільки при включенні. (PSCN включається, NSCN вимикається)

Список усіх елементів


1
@ mbomb007 Дякуємо за додавання посилання. Я тільки збирався просити цього. Я не знаю TPT і думав, що це виклик з приводу іграшок, які колись були - і, можливо, все ще є - знайдені в пачках миючого засобу ...: /
Arnauld

@Arnauld Haha. Уопс. Дякую mbomb007: P
moonheart08

Як ви навіть підраховуєте бал?
12Me21

@ 12Me21 Наразі оцінка базується на збереженому файлі. Ви можете обговорити це в цьому
метапості

Відповіді:


2

Використовуйте логіку підкадру лише тоді, коли вона менша

А для більш складних машин це часто набагато менше.

Підрамник, як правило, накладає накладні витрати на створення твердого SPRK (приблизно 3 пікселі для більшості напрямків, додатковий піксель порівняно з лише BTRY), "канали" FILT (для швидкої передачі BRAY) та мінімізацію кількості логіки без кадру, навіть якщо вона менша , через те, що він у багато разів (4х до 20х-30х повільніше!) повільніше.

Логіка підрамника часто хороша для складних операцій (що є більшою частиною викликів тут), але для більш простих логіка підкадру, ймовірно, не є оптимальною.


pls додайте зображення tyvm
лише ASCII

@ ASCII-тільки Зробиться, коли я повернусь додому.
moonheart08

3
Було б добре, якби ви могли прописати речі замість того, щоб використовувати стільки скорочень. Не всі знайомі з грою, але деякі можуть вважати її цікавою.
mbomb007

@ mbomb007 Щойно зазначу, FILT, BTRY, BRAY, SPRK тощо - це лише назви частинок у грі. Сама гра використовує ці назви. Чи повинен я замість цього помістити вікі гри в основний пост? Люди можуть шукати ці імена там і зрозуміти, що вони досить легко.
moonheart08

1

Знайте свої режими FILT

FILT - принаймні для логіки FILT та підкадру, є основою обчислень у TPT. І як такий, у нього є маса хитрощів, щоб полегшити ваше життя у вигляді різних режимів. Ви встановлюєте режим FILT за допомогою tmp, але всебічний список, який описує тонкощі цих режимів, зараз насправді не є річчю. FILT приймає два входи: це власний колір (CTYPE) і колір того, з чим він взаємодіє, або BRAY або CRAY. Я позначу ці FILTC та INTRC відповідно до цього списку.

  • Режим 0:

    Найпростіший режим, він встановлює INTRC значення FILTC, не більше того.

    INTRC = FILTC
    
  • Режим 1:

    Це двійковий І, це разом INTRC і FILTC, встановлюючи INTRC на результат.

    INTRC = INTRC & FILTC
    
  • Режим 2:

    Це двійкове АБО, воно об'єднує INTRC і FILTC, встановлюючи INTRC на результат.

    INTRC = INTRC & FILTC
    
  • Режим 3:

    Цей режим трохи складніший, він поєднує зворотний FILTC та INTRC, встановлюючи INTRC до результату.

    INTRC = INTRC & (~FILTC)
    
  • Режим 4:

    Цей режим трохи складніше описати. Це червоний зсув (двійковий лівий зсув),

    Привід тут полягає в тому, що величина, на яку він зміщується, контролюється його температурою, а рівняння (Температура-273,0) * 0,025, дефолт - до зсуву на 1, якщо значення менше 1. Ви можете отримати зміщення будь-якої необхідної кількості помноживши потрібну кількість біт на 40, і додавши 273,0. Я зателефоную на суму, зміщену X.

    Таким чином, INTRC зміщується вліво на X, встановлюючи INTRC на результат.

    X = (temperature-273.0)*0.025
    INTRC = INTRC << X
    
  • Режим 5:

    Це по суті режим 4, але замість цього є правильний зсув. Дивіться інформацію про режим 4, як її використовувати.

    X = (temperature-273.0)*0.025
    INTRC = INTRC >> X
    
  • Режим 6:

    Нічого не робить.

    INTRC = INTRC
    
  • Режим 7:

    Виконує двійковий XOR на INTRC та FILTC, встановлюючи INTRC на результат.

    INTRC = INTRC ^ FILTC
    
  • Режим 8:

    Виконує двійковий NOT на INTRC, встановлюючи INTRC на результат.

    INTRC = ~INTRC
    
  • Режим 9:

    Встановлює INTRC на випадковий колір.

    INTRC = rand()
    
  • Режим 10:

    Виконує іншу версію зміни червоного кольору.

    [TODO: з'ясуйте, як описати]

    LSB = FILTC & (-FILTC)
    INTRC = INTRC * LSB
    
  • Режим 11:

    Виконує іншу версію синього зсуву.

    [TODO: з'ясуйте, як описати]

    LSB = FILTC & (-FILTC)
    INTRC = INTRC / LSB
    
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.