Намалюйте «Доки ви не впадете»


17

У 5-му виданні Dungeons & Dragons (як і в більшості інших видань) існує магічний предмет під назвою Колода багатьох речей . Це надзвичайно потужний предмет, оскільки всі карти мають дуже сильні позитивні чи негативні ефекти. Щоб використовувати колоду, символ оголошує число, а потім малює до цієї кількості карт, при цьому ефекти застосовуються послідовно. Якщо персонаж намалює не всі ті картки, які вони оголосили, і пройшло не менше 1 години з моменту складання останньої картки, решта карт автоматично оформляється для них та застосовуються ефекти. Після витягування кожної картки її повертають на колоду, а колоду переміщують.

Далі наведено перелік ефектів малювання кожної з карт 1 :

  • Баланс : ваш розум зазнає гайморових змін, через що ваше вирівнювання змінюється. Законне стає хаотичним, добро стає злим і навпаки. Якщо ви справді нейтральні або неприєднані, ця карта не вплине на вас.
  • Комета : Якщо ви вручну переможете наступного ворожего монстра або групи монстрів, з якими ви стикаєтесь, ви отримуєте очки досвіду, достатньо, щоб отримати один рівень. Інакше ця картка не має ефекту.
  • Донджон : Ви зникаєте і потрапляєте в стан призупиненої анімації в надвимірній сфері. Все, що ти носив і носив, залишається позаду в просторі, який ти займав, коли ти зник. Ви залишаєтесь у в'язниці, поки вас не знайдуть і не усунуть зі сфери. Вас не може знайти жодна магія ворожіння, але заклинання побажань може розкрити місце розташування вашої в’язниці. Ви більше не малюєте картки.
  • Euryale . Картина, яка нагадує медузу, проклинає вас. Ви берете штраф-2 за збереження кидків, проклявши таким чином. Тільки бог чи магія картки Долі можуть закінчити це прокляття.
  • Долі : Тканина Реальності розкручується і закручується заново, що дозволяє уникнути або стерти одну подію так, ніби вона ніколи не відбулася. Ви можете використовувати магію карти, як тільки ви намалюєте картку, або в будь-який інший час перед смертю.
  • Полум'я : могутній диявол стає вашим ворогом. Диявол шукає вашої руїни і пошкоджує ваше життя, смакуючи ваші страждання, перш ніж намагатися вбити вас. Ця ворожнеча триває до тих пір, поки ви або диявол не помре.
  • Дурень : Ви втрачаєте 10000 XP, викидаєте цю карту і знову малюєте з колоди, рахуючи обидва нічиї як один із заявлених жеребкувань. Якщо втрата стільки XP призведе до того, що ви втратите рівень, натомість ви втратите суму, яка залишає вам достатньо XP, щоб зберегти рівень.
  • Самоцвіт : у ваших ніг з’являється двадцять п'ять ювелірних виробів вартістю 2000 штук на кожну або п’ятдесят дорогоцінних каменів вартістю 1000 штук.
  • Ідіот : Постійно знижуйте свій інтелект на 1d4 + 1 (до мінімальної оцінки 1). Ви можете оформити одну додаткову карту, ніж задекларовані розіграші.
  • Шут : Ви отримуєте 10000 XP, або ви можете намалювати дві додаткові картки за рамки заявленого розіграшу. Відкиньте цю карту після її малювання.
  • Ключ : Рідкісна чи рідкісна магічна зброя, з якою ви досвідчені, виявляється у ваших руках. ГМ обирає зброю.
  • Лицар : Ви отримуєте послугу бійця 4-го рівня, який з'являється у вибраному вами просторі за 30 футів від вас. Боєць тієї ж раси, що і ви, і віддано служить вам до смерті, вважаючи, що долі притягнули його або її до вас. Ви керуєте цим персонажем.
  • Місяць : Вам надається можливість кинути заклинання бажання 1d3 рази.
  • Шахрай : Неігровий персонаж вибору GM стає ворожим до вас. Особа вашого нового ворога невідома, поки NPC або хтось інший не розкриє його. Ніщо інше, як заклинання побажань або божественне втручання не може покласти край ворожнечі NPC до вас.
  • Руїна : Усі форми багатства, які ви носите чи володієте, крім магічних предметів, втрачаються для вас. Портативна власність зникає. Компанії, будівлі та земля, якою ви володієте, втрачаються таким чином, що як мінімум змінює реальність. Будь-яка документація, яка підтверджує, що ви повинні мати щось втрачене на цій картці, також зникає.
  • Череп . Ви викликаєте аватар смерті - примарний гуманоїдний скелет, одягнений у розтертий чорний халат і несе в собі спектральну косу. Він з'являється в просторі вибору GM в межах 10 футів від вас і атакує вас, попереджаючи всіх інших, що ви повинні виграти битву поодинці. Аватар бореться до тих пір, поки ви не помрете або він не впаде до 0 балів, після чого він зникне. Якщо хтось намагається вам допомогти, помічник викликає власний аватар смерті. Істоту, убиту аватаром смерті, неможливо відновити до життя.
  • Зірка : Збільшити один із балів своєї здатності на 2. Оцінка може перевищувати 20, але не перевищувати 24.
  • НД : Ви отримуєте 50 000 XP, і у ваших руках з’являється дивовижний предмет (який визначає ГМ випадково).
  • Талони : кожен магічний предмет, який ви носите або несете, розпадається. Артефакти, якими ви володієте, не руйнуються, а зникають.
  • Трон : Ви володієте вмінням переконання, і подвоюєте свій бонус за перевірку, зроблений цим вмінням. Крім того, ви отримуєте законну власність на невеликий зберігати десь у світі. Тим не менш, утримуйте зараз в руках монстрів, які ви повинні очистити, перш ніж ви зможете претендувати на збереження як свого.
  • Візір : У будь-який час, коли ви обираєте протягом одного року від складання цієї картки, ви можете задати питання в медитації та подумки отримати правдиву відповідь на це питання. Окрім інформації, відповідь допомагає вирішити неприємну проблему чи іншу дилему. Іншими словами, знання приходить з розумом щодо того, як його застосувати.
  • Пустота : Ця чорна карта заклинає лихо. Ваша душа витягнута з вашого тіла і міститься в предметі на місці вибору GM. Одне чи кілька потужних істот охороняють місце. Поки ваша душа захоплюється таким чином, ваше тіло недієздатне. Заклинання побажань не може відновити вашу душу, але заклинання розкриває розташування об'єкта, який його утримує. Ви більше не малюєте картки.

(описи карток, скопійовані з D&D 5-го видання SRD )

Деякі особливо нерозумні гравці малюватимуть відразу велику кількість карток, сподіваючись отримати хоча б одну потужну користь, щоб збалансувати шкідливі карти. Як можна було очікувати, це часто призводить до смерті персонажа або неможливості продовжувати малювати картки.

Змагання

Моделюйте повторне малювання з колоди з великою кількістю речей на 22 картках , виводячи кожну намальовану карту, зупиняючись лише тоді, коли виконується одна з наступних умов:

  • Персонаж вмирає (через малюнок черепа або малюнок 5 карт після нанесення пламен або шельму , без використання Доль або Місяця активні 2 ).
  • Характер не в змозі намалювати більше карт (через ефекти Donjon , Talons , The Void 3 або показник Intelligence персонажа знизиться до 3 або нижче через Idiot 4 ).

Правила

  • Вирівнювання персонажа, рівень, XP та володіння, відмінні від колоди, значення не мають.
  • Оцінка інтелекту персонажа починається з 10.
  • Немає максимального обмеження для інтелекту персонажа або їх запасів із бажань .
  • Використання доль не стоїть.
  • Бажання заклинання має шанс нанести персонаж ніколи не зможе використовувати 1-в-3 бажання знову заклинання, на додаток до свого звичайного ефекту. Якщо це сталося, персонаж більше не може використовувати заклинання, щоб заперечувати Вогник , Шахрай чи Череп - сила Долі - єдиний їхній спосіб звернення.
  • Персонаж завжди робить такі варіанти:
    • Долі і Місяць використовуються виключно для того, щоб позбавити персонажа від неприємностей Черепа , полум’я та ізгоя . Персонаж ніколи не використовуватиме їх для зміни ефекту Талонів, або заклинання бажання не може бути передано знову, і не може використовувати їх для того, щоб змінити ефекти Donjon і The Void . Персонаж негайно використає одне заклинання побажань, щоб зняти наслідки Черепа , Полум’я чи Шахрая , намалювавши одну з них, і це завжди матиме успіх. Персонаж завжди використовуватиме долі перед використаннямзабажає .
    • Персонаж завжди обирає намалювати більше карт із ефектами Ідіот та Шут (належним чином).
    • Ефект зірки завжди використовується для збільшення інтелекту на 2, щоб уникнути необхідності припиняти малювати карти через ефект Idiot .
  • Покликаний Найтом союзник NPC недостатньо потужний, щоб врятувати персонажа від їх несвоєчасного контину.
  • Будь-яке збільшення або зменшення рівня інтелекту (через Star або Idiot відповідно) повинно бути відображено у результатах (або відзначаючи зміни ( +2або -(1d4+1)), або виводячи поточну оцінку Intelligence після того, як ефект відбудеться).
  • Будь-які зміни кількості бажань, що використовуються символом, повинні аналогічно відображатись у результатах, включаючи бажання, що спричиняє можливість персонажу більше не користуватися бажанням .
  • Усі випадкові виділення здійснюються з рівномірних дискретних розподілів.
  • Ви можете вибрати будь-який набір з 22 різних виходів для виведення для намальованих карт - назви карт не потрібно використовувати.
  • Ви можете виводити зміни в інтелект, використання побажань і бажання стати непридатними в будь-якому послідовному, однозначному способі на свій вибір.
  • Персонаж може використовувати бажання або силу Долі, щоб уникнути смерті, якщо відповідна карта буде намальована як п’ята картка після малювання Негідника або Полум'я . Тільки якщо бажання є непридатним або використовуються всі сфери використання, а також, якщо долі не будуть використані вчасно або вже використані, персонаж загине.
  • Дурня та Блазня відкидають після їх звернення. Всі інші картки негайно повертаються на колоду, а колоду потім переміщують.
  • Якщо є кілька стеків Rogue та / або Flame активних, для того, щоб розвіяти їх , потрібно лише одне використання долі або бажання .
  • Малювання декількох карток одночасно через Jester або Fool не сприяє повороту лічильника повороту на Flames та / або Rogue .

Приклади

Кожен рядок представляє послідовність малюнків. Зміни інтелекту та використання побажань відображаються поточним значенням у дужках. CПоруч зі бажанням використання означає , що бажання не може більше використовуватися. А Fпозначає, що сила Долі використовувалася для уникнення смерті. Додаткові коментарі надаються для пояснювальних цілей у вигляді коментарів у стилі Python.

Void # Can't draw with your soul ripped out of your body.
Throne, Euryale, Rogue, Star (12), Donjon # Can't draw while in suspended animation.
Moon (3), Throne, Sun, Flames (2), Fool, Idiot (6), Flames (1 C), The Fates, Skull (F), Skull # Two uses of wish were used on the two Flames draws. The second use rendered the character unable to use wish again. The Fates was used on the first Skull. When the second Skull came up, there was no way for the character to save himself, so he died.
Idiot (5), Star (7), Idiot (3) # Too dumb to draw.
Sun, Star (12), Talons # Talons destroys the deck.
Fates, Throne, Moon (2), Fates, Skull (F), Skull # Fates doesn't stack
Fates, Flames, Euryale, Fates, Skull, Void
Flames, Comet, Euryale, Gem, Knight, Key # 5 draws after Flames, the hero dies
Rogue, Balance, Throne, Gem, Idiot (8), Vizier, Sun # 5 draws plus one extra from Idiot

Довідкова реалізація

#!/usr/bin/env python3

import random

deck="""Sun
Moon
Star
Throne
Key
Knight
Void
Flames
Skull
Ruin
Euryale
Rogue
Jester
Vizier
Comet
Fates
Gem
Talons
Idiot
Donjon
Balance
Fool""".split()

random.shuffle(deck)

int_stat = 10
wish_uses = 0
wish_expired = False
fates = False
turn_count = None

while True:
    card = deck.pop()
    if card == "Fates":
        if turn_count is None:
            fates = True
            print(card)
        else:
            turn_count = None
            fates = False
            print("{} (F)".format(card))
    elif card == "Moon":
        wish_uses += random.randint(1, 3)
        if turn_count is None:
            print("{} ({})".format(card, wish_uses))
        else:
            turn_count = None
            wish_uses -= 1
            print("{} ({}) ({})".format(card, wish_uses+1, wish_uses))
    elif card in ["Flames", "Rogue"]:
        if turn_count is None:
            turn_count = 5
        if fates:
            fates = False
            turn_count = None
            print("{} (F)".format(card))
        elif wish_uses > 0 and not wish_expired:
            wish_uses -= 1
            turn_count = None
            wish_now_expired = random.choice([False, False, True])
            print("{} ({}{})".format(card, wish_uses, " C" if wish_expired else ""))
            wish_expired = wish_now_expired
        else:
            print("{}".format(card))
    elif card == "Idiot":
        int_stat -= random.randint(2, 5)
        print("{} ({})".format(card, int_stat))
        if turn_count is not None:
          turn_count += 1
        if int_stat <= 3:
            break
    elif card == "Star":
        int_stat += 2
        print("{} ({})".format(card, int_stat))
    elif card == "Skull":
        if fates:
            fates = False
            turn_count = None
            print("{} (F)".format(card))
        elif wish_uses > 0 and not wish_expired:
            wish_uses -= 1
            turn_count = None
            wish_now_expired = random.choice([False, False, True])
            print("{} ({}{})".format(card, wish_uses, " C" if wish_expired else ""))
            wish_expired = wish_now_expired
        else:
            print(card)
            break
    elif card in ["Donjon", "Void", "Talons"]:
        print(card)
        break
    elif card == "Fool":
        print(card)
        if turn_count is not None:
            turn_count += 1
    elif card == "Jester":
        print(card)
        if turn_count is not None:
            turn_count += 2
    else:
        print(card)
    if card not in ["Fool", "Jester"]:
        deck.append(card)
        random.shuffle(deck)
    if turn_count is not None:
        turn_count -= 1
    if turn_count == 0:
        break

[1]: Технічно є два варіанти: один з 13 карт і один з 22 картками. Нас тут хвилює лише повна версія 22 карт.

[2]: Полум'я та шахрай зазвичай не вбивають персонажа, але ворожий NPC вважає, що знайшов і вбив нерозумного персонажа після того, як вони встигнуть намалювати ще 5 карт. З призовом, викликаним Черепом , боротися надзвичайно важко, і передбачається, що персонаж не перемагає. Тільки божественне / магічне втручання через Долі або Місяць може врятувати нерозумного персонажа від їх смерті цими 3 картками.

[3]: Ми припускаємо, що друзі персонажа досить розумні, щоб не намагатися врятувати персонажа і дозволяти їм малювати більше карт.

[4]: Оцінка інтелекту в 3 - приблизно еквівалентна дикій тварині, яка не зможе активно зробити вибір для складання карток.



Можливо, добре включити ще кілька прикладів пробігу, коли: а) закінчується п’ять оборотів, в ідеалі - кілька бонусних карток, прокреслених між собою;
Мартін Ендер

Ваша контрольна реалізація не дозволяє закінчувати бажання, якщо воно буде використане з моменту залучення Місяця. І він також не перевіряє, чи термін їх дії вже минув.
Мартін Ендер

І ще одне: в оригінальних правилах розробки та розробки згадуються додаткові картки для всіх Idiot, Fool та Jester. У ваших правилах спочатку зазначається, що гравець малює додаткову карту для Idiot та Jester, але потім уточнити лічильник правил для Fool і Jester, а ваша контрольна реалізація, здається, малює лише додаткові картки для Fool та Jester. Чи можете ви це уточнити / виправити?
Мартін Ендер

2
@steenbergh Спочатку я також читав його попередньо, але " Після того, як кожна картка витягнута, вона повертається на колоду, і колоду перетасовують ". Тільки Дурня та Блазня будуть видалені при малюванні, все інше знову поміщається в колоду і перестановляється щоразу перед тим, як витягувати нову карту.
Kevin Cruijssen

Відповіді:


4

JavaScript (ES6), 379 байт

for(D=[...Array(21)].map((a,b)=>b),d={},i=10,w=e=f=t=0,F=_=>f=t=o=0,W=_=>{w--,t=0,o=w+(e?' C':''),e=1>r(2)},r=a=>0|Math.random()*a,$=1;$;){for(;d[c=r(22)];);o='',c?3>c?(t&&(t+=c),d[c]=1):4>c?f?F():0<w&&!e?W():$=0:7>c?$=0:9>c?(!t&&(t=5),f?F():0<w&&!e&&W()):10>c?(w+=1+r(2),t?(t=0,o=[w,--w]):o=w):11>c?(i-=2+r(3),o=i,$=3<i):12>c&&(i+=2,o=i):t?F():f=1,console.log(c,o),t&&(t--,$=t)}

Безумовно

Пояснення результату

Картки варіюються від 0-21 таким чином:

  • 0: Долі
  • 1: Дурень
  • 2: Шут
  • 3: Череп
  • 4: Донджон
  • 5: Пустота
  • 6: Талони
  • 7: Полум'я
  • 8: Негідник
  • 9: Місяць
  • 10: Ідіот
  • 11: Зірка
  • 12 хоч 21: Сонце, Трон, Ключ, Лицар, Руїна, Еврйал, Візір, Комета, Каштовний камінь, Баланс

Поворот черепа, полум’я чи шахрая через Долі позначається символом a 0.


JavaScript (ES6), 792 байти

Попередня версія використовувала назви карт, перш ніж я з'ясував, що допускаються будь-які 22 виходи.

d=`Sun Moon Star Throne Key Knight Void Flames Skull Ruin Euryale Rogue Jester Vizier Comet Fates Gem Talons Idiot Donjon Balance Fool`.split` `,i=10,w=0,W=!1,f=!1,t=null,F=()=>{f=!1,t=null,_('F')},U=()=>{w--,t=null,_(w+(W?' C':'')),W=1>r(2)},_=(...a)=>console.log(c+a.map(b=>` (${b})`).join``),r=a=>0|Math.random()*a,$=!0;for(;$;)c=d.splice(r(d.length),1)[0],'Fates'==c?null==t?(f=!0,_()):F():'Moon'==c?(w+=1+r(2),null==t?_(w):(t=null,w--,_(w+1,w))):'Idiot'==c?(i-=2+r(3),_(i),3>=i&&($=!1)):'Star'==c?(i+=2,_(i)):'Flames'==c||'Rogue'==c?(null==t&&(t=5),f?F():0<w&&!W?U():_()):'Skull'==c?f?F():0<w&&!W?U():(_(),$=!1):'Donjon'==c||'Void'==c||'Talons'==c?(_(),$=!1):'Fool'==c?null!==t&&(t+=1):'Jester'==c?null!==t&&(t+=2):_(),['Fool','Jester'].includes(c)||d.push(c),null!==t&&t--,0===t&&($=!1)

Безумовно


2
@ Mee чесно, я не зрозумів це так добре, як я повинен був, поки не побачив цю відповідь, було добре зроблено; легко зрозуміти, побачивши повні імена. Якщо ви її зміните, чи можете ви зберегти версію з повними назвами?
Чарівний восьминога Урна

@MagicOctopusUrn Безумовно, я обов'язково збережу поточну повну назву в майбутньому.
darrylyeo

@Mego це було спрямовано на OP, і він просто говорив: "Версія з власними написаними іменами карт повністю повністю зробила цю реалізацію легкою для читання. Якщо ви будете голити байти, тримайте і цей, позначений як" neololfed "".
Чарівний восьминіг Урна

@MagicOctopusUrn Оновлено.
darrylyeo

0

Котлін , 1173 байт

fun main(args:Array<String>){val d="Sun Moon Star Throne Key Knight Void Flames Skull Ruin Euryale Rogue Jester Vizier Comet Fates Gem Talons Idiot Donjon Balance Fool".split(" ");var c=(Math.random()*22).toInt();var i=10;var u=0;var e=false;var f=false;var t=1;r@while(true){when(c){15->{if(t>=1){f=true;println(c)}else{t = 1;f = false;println("${d[c]} (F)")}}1->{u+=(Math.random()*3).toInt()+1;if(t>=1){println("${d[c]} ($u)")}else{t=1;u-=1;println("${d[c]} (${u + 1}) ($u)")}}in arrayOf(7,11)->{if(t>=1){t=5};if(f){f=false;t=1;println("${d[c]} (F)")}else if(u>0&&!e){u-=1;t=1;val n=(Math.random()*3).toInt();println("${d[c]} ($u$e)");e=n==0}else{println(d[c])}}18->{i-=(Math.random()*4).toInt()+2;println("${d[c]} ($i)");if (t!=0){t+=1};if(i<=3){break@r}}2->{i+=2;println("${d[c]} ($i)")}8->{if(f){f=false;t=1;println("${d[c]} (F)")}else if(u>0&&!e){u-=1;t=1;val n=(Math.random()*3).toInt();println("${d[c]} ($u$e)");e=n==0}else{println(c);break@r}}in arrayOf(6,17,19)->{println(d[c]);break@r}21->{println(d[c]);if(t!=0){t += 1}}12->{println(d[c]);if(t!=0){t+=2}}else->{println(d[c])}};if((c !in arrayOf(12,21))){c=(Math.random()*23).toInt()};if(t!=0){t-=1}else{break}}}

Це також можна виконати. - Спробуйте в Інтернеті!

Напевно, багато помилок ... дайте мені знати в коментарях!


Нескінченний циклічний друк Foolабо Jester.
FrownyFrog

0

Java 8, 481 480 байт

v->{String r="";for(int i=10,d=22,c=d,F=0,t=0,w=0,W=0,j=Math.random()<.5?1:2;;c=d){c*=Math.random();r+=" "+c;if(c<1){F=1;r+=t>0?"F"+(F=0):"";t=-1;}else if(c<2){w+=Math.random()*3+1-(t>0?1:0);t=-1;}else if(c<4)t=F>0?-1:t<1?6:t;else if(c<5)t=F*w*W<1?1:-1;else if(c>19){t+=t>0?j:0;j=j%2+1;d--;}if(c>1&c<5&w*W>0){w--;W=(int)(Math.random()*3)%2;}i-=c==5?Math.random()*3+2:c==6?-2:0;r+=c>1&c<5&F>0?"F"+(F=0):c>0&c<5?"w"+w+"W"+W:c>4&c<7?"i"+i:"";if(--t==0|(c==5&i<4)|c>6&c<10)return r;}}

Переніс базову реалізацію Python3 на Java, а потім переграв її. Однозначно можна пограти в гольф більше, але це лише початкова версія, щоб переконатися, що я все зробив правильно.

Якщо хтось помітить якісь помилки ( не здивував би мене, якщо такі є редагування. Вже виправлено як сім-вісім помилок з моменту публікації цього повідомлення), будь ласка, дайте мені знати.

Виходи карт:

0: Долі
1: Місяць
2: Полум'я
3: Шахрай
4 : Череп
5: Ідіот
6: Зірка
7/ 8/ 9: Donjon / Пустота / Талони
20/21 : Дурень / Шут

10-19: все інше (Сонце / Трон / Ключ / Лицар / Руїна / Еврйал / Візір / Комета / Каменя / Баланс)

Формат виводу для залишених побажань, використаних побажань, інформації про ліворуч та використовуваного прапора:

4w1W0
4       // Card drawn
 w1     // New amount of wishes left
   W0   // Whether the wishes used flag is active (1) or inactive (0)

5i6
5       // Card drawn
 i6     // New intelligence

0F0
0       // Card drawn
 F0     // Fates used

Пояснення:

Спробуйте тут або спробуйте тут із симпатичним друком .

v->{                       // Method with empty unused parameter and String return-type
  String r="";             //  Result-String, starting empty
  for(int i=10,            //  Intelligence
          d=22,            //  Amount of cards in the deck, starting at 22
          c=d,             //  Current card drawn
          F=0,             //  Fates flag
          t=0,             //  Turn-counter
          w=0,             //  Wishes left
          W=0,             //  Wishes used flag
          j=Math.random()<.5?1:2;
                           //  Whether Jester/Fool is drawn first of the two
      ;                    //  Loop indefinitely
       c=d){               //    After every iteration, shuffle the deck (reset `c`)
    c*=Math.random();      //   Draw a random 0-21 card (or less if Fool/Jester is gone)
    r+=" "+c;              //   Append the result with a space and this card
    if(c<1){               //   If the card was Fates:
      F=1;                 //    Set the Fates-flag to active
      r+=t>0?              //    If the turn-counter is larger than 0:
          "F"+(F=0)        //     Append that Fates was used (and make Fates inactive)
         :                 //    Else:
          "";              //     Append nothing
      t=-1;}               //    Set the turn-counter to -1 (none)
    else if(c<2){          //   If the card was Moon instead:
      w+=Math.random()*3+1 //    Increase the wishes by 1-3 randomly
         -(t>0?            //    Then, if the turn-counter is larger than 0
            1              //     Subtract 1 from the amount of wishes
           :               //    Else:
            0);            //     Leave the wishes the same
      t=-1;}               //    Set the turn-counter to -1 (none)
    else if(c<4)           //   If the card was Flames or Rogue instead:
      t=F>0?               //    If the Fates-flag is active:
         -1                //     Set the turn-counter to -1 (none)
        :t<1?              //    Else-if the turn-counter is 0 or -1 (none):
         6                 //     Set the turn-counter to 6
        :                  //    Else:
         t;                //     Leave the turn-counter the same
    else if(c<5){          //   If the card was Skull instead:
      t=F                  //    If the Fates-flag is inactive
        *w                 //    or the amount of wishes is smaller than 1
        *W<1?              //    or the wishes used flag is inactive
         1                 //     Set the turn-counter to 1
        :                  //    Else:
         -1;               //     Set the turn-counter to -1 (none)
      F=0;}                //    Then set the Fates-flag to inactive
    else if(c>19){         //   If the card was Fool or Jester instead:
      t+=t>0?              //    If the turn-counter was not 0 or -1 (none):
          j                //     Increase either by 1 (Fool) or 2 (Jester)
         :                 //    Else:
          0;               //     Leave the turn-counter the same
      j=j%2+1;             //    Fix `j` (2->1; 1->2)
      d--;}                //    And remove the Fool/Jester from the Deck
    if(c>1&c<5             //   If the card drawn was Flames, Rogue or Skull,
       &w                  //   and the amount of wishes is at least 1,
        *W>0){             //   and the wishes used flag is active
      w--;                 //    Decrease the amount of wishes by 1
      W=(int)(Math.random()*3)%2;}
                           //    And set the wishes used flag to one of (0,0,1)
    i-=c==5?               //   If the card drawn was Idiot:
        Math.random()*3+2  //    Decrease the intelligence by 2-5 randomly
       :c==6?              //   Else-if the card drawn was Star:
        -2                 //    Increase the intelligence by 2
       :                   //   Else:
        0;                 //    Leave the intelligence the same
    r+=c>1&c<5             //   If the card drawn was Flames, Rogue or Skull,
       &F>0?               //   and Fates is active
        "F"+(F=0)          //    Append that Fates was used (and make Fates inactive)
       :c>0&c<5?           //   Else-if the card drawn was Moon, Flames, Rogue or Skull:
        "w"+w+"W"+W        //    Append the amount of wishes left and wishes used flag
       :c>4&c<7?           //   Else-if the card drawn was Idiot or Star:
        "i"+i              //    Append the amount of intelligence left
       :                   //   Else:
        "";                //    Append nothing
    if(--t                 //   Decrease the turn-counter by 1
          ==0              //   And if the turn-counter is now 0,
       |(c==5              //   or the card drawn was Idiot,
             &i<4)         //   and the intelligence dropped below 4,
       |c>6&c<10)          //   or the card drawn was Donjon, Void or Talons:
         return r;         //    Return the result of the game
  }                        //  End of loop
}                          // End of method

1
Jester; Fates; Ruin; Euryale; Gem; Ruin; Ruin; Rogue(Fates used) Gem; Balance; Throne; Rogue(wishes left: 0; wishes used: 0); Rogue(wishes left: 0; wishes used: 0);Чому це зупинилося?
FrownyFrog

@FrownyFrog Дякую! Слід виправити зараз. Якщо ви помітили будь-які інші помилки, повідомте мене про це. :)
Кевін Кройсейсен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.