Нарисуй, пока не упадешь


17

В 5-м издании «Подземелья и драконы» (как и в большинстве других выпусков) существует магический предмет под названием « Колода многих вещей» . Это невероятно мощный предмет, так как все карты имеют очень сильный положительный или отрицательный эффект. Чтобы использовать колоду, персонаж объявляет число, а затем тянет до этого количества карт с эффектами, применяемыми последовательно. Если персонаж не вытягивает все карты, которые он объявил, и прошло не менее 1 часа с тех пор, как была взята последняя карта, остальные карты автоматически вытягиваются для него и применяются эффекты. После вытягивания каждой карты она возвращается в колоду, и колода перемешивается.

Ниже приведен список эффектов розыгрыша каждой из карт 1 :

  • Баланс : ваш разум претерпевает мучительные изменения, в результате чего меняется ваше выравнивание. Законное становится хаотичным, доброе становится злом, и наоборот. Если вы действительно нейтральны или не выровнены, эта карта не оказывает на вас никакого влияния.
  • Комета : если вы в одиночку победите следующего вражеского монстра или группу монстров, с которыми вы столкнетесь, вы наберете достаточно очков опыта, чтобы получить один уровень. В противном случае эта карта не действует.
  • Донжон : Вы исчезаете и погружаетесь в состояние приостановленной анимации в многомерной сфере. Все, что вы носили и носили, остается в пространстве, которое вы занимали, когда исчезали. Вы остаетесь в тюрьме, пока вас не найдут и не удалят из сферы. Вы не можете быть найдены никаким волшебством предсказания, но заклинание желания может показать местоположение вашей тюрьмы. Вы больше не тянете карты.
  • Эвриал . Медузообразный облик карты проклинает тебя. Вы получаете -2 штрафа за спасброски, будучи проклятыми таким образом. Только бог или магия карты Судьбы могут положить конец этому проклятию.
  • The Fates : ткань Reality разворачивается и вращается заново, позволяя вам избежать или стереть одно событие, как если бы оно никогда не происходило. Вы можете использовать магию карты, как только возьмете карту или в любое другое время, прежде чем умрете.
  • Пламя : могущественный дьявол становится вашим врагом. Дьявол ищет твоей гибели и мучает твою жизнь, смакуя твои страдания, прежде чем пытаться убить тебя. Эта вражда длится до тех пор, пока вы или дьявол не умрете.
  • Дурак : Вы теряете 10000 XP, сбрасываете эту карту и снова вытягиваете из колоды, считая обе ничьи одной из ваших заявленных ничьих. Если потеря такого большого количества XP приведет к потере уровня, вы вместо этого потеряете количество, которое оставляет вам достаточно XP, чтобы сохранить свой уровень.
  • Драгоценный камень : у ваших ног появляются двадцать пять ювелирных украшений стоимостью 2000 gp каждый или пятьдесят драгоценных камней стоимостью 1000 gp каждый.
  • Идиот : навсегда понизьте свой интеллект на 1d4 + 1 (до минимального значения 1). Вы можете взять одну дополнительную карту сверх заявленных.
  • Шут : Вы получаете 10000 XP или можете взять две дополнительные карты сверх заявленных дро. Сбросьте эту карту после вытягивания.
  • Ключ : в ваших руках появляется редкое или более редкое магическое оружие, которым вы владеете. Мастер выбирает оружие.
  • Рыцарь : Вы получаете службу бойца 4-го уровня, который появляется в пространстве, которое вы выбираете в пределах 30 футов от вас. Боец той же расы, что и вы, и преданно служит вам до самой смерти, полагая, что судьбы привлекли его или ее к вам. Вы управляете этим персонажем.
  • Луна : вам предоставляется возможность разыграть заклинание желания 1d3 раза.
  • Разбойник : неигровой персонаж по выбору гроссмейстера становится враждебным по отношению к вам. Личность вашего нового врага неизвестна до тех пор, пока NPC или кто-то еще не раскроет его. Ничто, кроме заклинания желаний или божественного вмешательства, не может положить конец враждебности NPC по отношению к вам.
  • Разрушение : все формы богатства, которые вы носите или имеете, кроме магических предметов, потеряны для вас. Портативная собственность исчезает. Предприятия, здания и земельные участки, которыми вы владеете, теряются таким образом, чтобы как можно меньше изменить реальность. Любая документация, подтверждающая, что вы должны владеть чем-то утерянным на этой карте, также исчезает.
  • Череп . Вы вызываете аватара смерти - призрачного гуманоидного скелета, одетого в изодранную черную мантию и несущего спектральную косу. Он появляется в пространстве по выбору Мастера в пределах 10 футов от вас и атакует вас, предупреждая всех остальных, что вы должны выиграть битву в одиночку. Аватар сражается до тех пор, пока вы не умрете или не упадет до 0 очков жизни, после чего он исчезнет. Если кто-то пытается помочь вам, помощник вызывает своего аватара смерти. Существо, убитое аватаром смерти, не может быть восстановлено к жизни.
  • Звезда : увеличьте один из ваших показателей способностей на 2. Счет может превышать 20, но не может превышать 24.
  • солнце : вы получаете 50 000 XP, и в ваших руках появляется удивительный предмет (который мастер определяет случайно).
  • когти : каждый магический предмет, который вы носите или носите, распадается. Артефакты в вашем распоряжении не уничтожены, но исчезают.
  • трон : Вы приобретаете мастерство в навыке Убеждения и удваиваете свой бонус к мастерству за проверки, сделанные этим навыком. Кроме того, вы получаете законное право собственности на небольшую крепость где-то в мире. Тем не менее, крепость в настоящее время находится в руках монстров, которые вы должны очистить, прежде чем сможете претендовать на эту крепость как на свою.
  • визирь : В любое время, которое вы выбрали в течение одного года после извлечения этой карты, вы можете задать вопрос в медитации и мысленно получить правдивый ответ на этот вопрос. Помимо информации, ответ поможет вам решить загадочную проблему или другую дилемму. Другими словами, знание приходит с мудростью о том, как его применять.
  • Пустота : эта черная карта означает катастрофу. Ваша душа извлечена из вашего тела и содержится в объекте в месте по выбору гроссмейстера. Одно или несколько могущественных существ охраняют это место. Пока ваша душа захвачена таким образом, ваше тело недееспособно. Заклинание желания не может восстановить вашу душу, но заклинание раскрывает местоположение объекта, который его держит. Вы больше не тянете карты.

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

Некоторые особенно глупые игроки будут брать большое количество карт одновременно, надеясь получить хотя бы одно мощное благо, чтобы уравновесить вредные карты. Как и следовало ожидать, это часто приводит к смерти персонажа или неспособности продолжать брать карты.

Соревнование

Имитируйте повторный розыгрыш из колоды из 22 вещей из 22 карт , выводя каждую вытянутую карту, останавливаясь только при выполнении одного из следующих условий:

  • Персонаж умирает (через рисунок черепа или рисунок 5 карт после нанесения пламен или Шельму , без использования Судеб или Луны активны 2 ).
  • Персонаж не может взять больше карт (с помощью эффектов Донжона , Когтей , Бездны 3 или снижения интеллекта персонажа до 3 или ниже благодаря Идиоту 4 ).

правила

  • Расстановка персонажей, уровень, опыт и другие предметы, кроме колоды, не имеют значения.
  • Интеллектуальная оценка персонажа начинается с 10.
  • Не существует максимального ограничения интеллекта персонажа или его накопленного использования желания .
  • Использование Судьбы не складывается.
  • Желание заклинание имеет шанс нанести персонаж никогда не сможет использовать 1-в-3 желания снова заклинание, в дополнение к своему обычному эффекту. Если это происходит, персонаж больше не может использовать заклинание, чтобы отрицать Flames , Rogue или Skull - сила The Fates является их единственным выходом.
  • Персонаж всегда делает следующие выборы:
    • Судьбы и Луна используются исключительно для того, чтобы избавить персонажа от неприятностей из Черепа , Пламени и Разбойника . Персонаж никогда не будет использовать их, чтобы полностью изменить эффект Когтей или заклинание желания, которое невозможно разыграть снова, и не может использовать их, чтобы обратить вспять эффекты Донжона и Пустоты . Персонаж немедленно использует одно заклинание желаний, чтобы свести на нет эффекты Черепа , Пламени или Разбойника при получении одного из них, и это всегда будет успешным. Персонаж всегда будет использовать The Fates перед использованиемпожелает .
    • Персонаж всегда предпочитает брать больше карт с эффектами Идиота и Шута (соответственно).
    • Эффект Звезды всегда используется для увеличения Интеллекта на 2, чтобы избежать необходимости останавливать рисование карт с помощью эффекта Идиота .
  • NPC-союзник, призванный Рыцарем , недостаточно силен, чтобы спасти персонажа от его безвременной кончины.
  • Любое увеличение или уменьшение интеллекта (через Звезду или Идиота , соответственно) должно быть отражено в выходных данных (либо отмечая изменение ( +2или -(1d4+1)), либо выводя текущий балл Интеллекта после достижения эффекта).
  • Любые изменения в количестве использований желания , накопленных персонажем, должны также отражаться в выводе, включая желание, приводящее к тому, что персонаж больше не сможет использовать желание .
  • Все случайные выборки из равномерных дискретных распределений.
  • Вы можете выбрать любой набор из 22 различных выходов для вывода для вытянутых карт - названия карт не должны использоваться.
  • Вы можете выводить изменения в Интеллекте, использовании желаний и желании стать непригодным для использования любым последовательным, однозначным способом по вашему выбору.
  • Персонаж может использовать желание или силу Судьбы, чтобы избежать смерти, если соответствующая карта берется в качестве пятой карты после розыгрыша Разбойника или Пламени . Персонаж умрет только в том случае, если желание непригодно или все виды использования были использованы, а также если «Судьбы» не нарисованы вовремя или уже были использованы.
  • Дурак и Шут сбрасываются после того, как их вытянули. Все остальные карты немедленно возвращаются в колоду, и колода перетасовывается.
  • Если есть несколько стеков Разбойника и / или Пламени , только одно использование Судьбы или желание необходимо, чтобы рассеять их все.
  • Вытягивание нескольких карт одновременно через Шута или Дурака не увеличивает счетчик ходов в Пламени и / или Разбойнике .

Примеры

Каждая линия представляет последовательность розыгрышей. Изменения в интеллекте и использовании желаний показаны текущим значением в скобках. Рядом 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]: Flame и Rogue обычно не убивают персонажа, но предполагается, что враждебный NPC нашел и убил глупого персонажа после того, как у него есть время, чтобы взять еще 5 карт. Призрак, вызванный Черепом , чрезвычайно труден для сражения, и предполагается, что персонаж не победит. Только божественное / магическое вмешательство через Судьбы или Луну может спасти глупого персонажа от его смерти этими 3 картами.

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

[4]: Интеллект 3 равен примерно дикому животному, которое не сможет активно выбирать карты.



Возможно, было бы неплохо включить еще несколько примеров прогонов, где а) истекают пять ходов, в идеале, когда между ними разыгрываются несколько бонусных карт, б) судьбы разыгрываются дважды, между ними и без них.
Мартин Эндер

Ваша эталонная реализация не позволяет желанию истечь, если оно используется в момент рисования Луны. И это также не проверяет, истек ли они уже.
Мартин Эндер

Еще одна вещь: в оригинальных правилах D & D упоминаются дополнительные карты для всех Идиота, Дурака и Шута. Ваши правила сначала утверждают, что игрок берет дополнительные карты для Идиота и Шута, но затем уточняют счетчик правил для Дурака и Шута, а ваша эталонная реализация, кажется, вытягивает только дополнительные карты для Дурака и Шута. Не могли бы вы уточнить / исправить это?
Мартин Эндер

2
@steenbergh Я тоже сначала прочитал, но " После того, как каждая карта извлечена, она возвращается в колоду, и колода перетасовывается ». Только Дурак и Шут будут извлечены при извлечении, все остальное снова помещается в колоду и перетасовывается каждый раз, перед тем, как берется новая карта.
Кевин Круйссен

Ответы:


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)}

Ungolfed

Объяснение вывода

Карты варьируются от 0 до 21 следующим образом:

  • 0: Судьбы
  • 1: Дурак
  • 2: Шут
  • 3: Череп
  • 4: Донжон
  • 5: Пустота
  • 6: Когти
  • 7: Пламя
  • 8: Разбойник
  • 9: Луна
  • 10: Идиот
  • 11: Звезда
  • 12 - 21: Солнце, Трон, Ключ, Рыцарь, Руина, Эвриал, Визирь, Комета, Драгоценный камень, Баланс

Обращение Черепа, Пламени или Разбойника через Судьбы обозначается через 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)

Ungolfed


2
@ Честно говоря, честно, я не получил это так хорошо, как должен был, пока не увидел этот ответ. легко понять, увидев полные имена. Если вы измените его, можете ли вы сохранить версию с полными именами?
Волшебная Осьминог Урна

@MagicOctopusUrn Конечно, я обязательно сохраню текущую версию с полным именем в будущем.
darrylyeo

@Mego, он был направлен на OP, и просто говорил, что «версия с полными названиями карт написана полностью, что облегчает чтение этой реализации. Если вы сбриваете байты, оставьте и эту, помеченную как« ungolfed »».
Волшебная Урна Осьминога

@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: Донжон / Бездна / Когти
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.