ドロップするまで描く


17

Dungeons&Dragons 5th edition(および他のほとんどのエディション)には、Deck of Many Thingsと呼ばれる魔法のアイテムが存在します。カードはすべて非常に強い正または負の効果を持っているため、非常に強力なアイテムです。デッキを使用するには、キャラクターが数字を宣言し、その数のカードを引き出します。効果は順番に適用されます。キャラクターが宣言したすべてのカードを描画せず、最後のカードが描画されてから少なくとも1時間経過している場合、残りのカードは自動的に描画され、効果が適用されます。各カードが描かれた後、それはデッキに戻され、デッキはシャッフルされます。

以下は、各カード1を引くことの効果のリストです:

  • バランス:あなたの心はひどい変化を被り、あなたのアライメントが変化します。合法は混oticとし、善は悪となり、逆もまた同様です。あなたが真のニュートラルまたは非同盟である場合、このカードはあなたに影響を与えません。
  • コメット:遭遇する次の敵対的なモンスターまたはモンスターのグループを単独で倒すと、1レベルを得るのに十分な経験値を獲得します。そうでない場合、このカードは効果がありません。
  • ドンジョン:あなたは姿を消し、異次元の球体でアニメーションが中断された状態で埋葬されます。あなたが身に着けていて運んでいたものはすべて、あなたが姿を消したときにあなたが占有していた空間に留まります。あなたが発見され、球から取り除かれるまで、あなたは投獄されたままです。あなたは占いの魔法で見つけることはできませんが、願いの呪文はあなたの刑務所の場所を明らかにすることができます。これ以上カードを引きません。
  • エウリュアレ。カードのメデューサのような顔はあなたを呪います。この方法で呪われている間、あなたはスローをセーブすることで-2ペナルティを受けます。この呪いを終わらせることができるのは、神か運命カードの魔法だけです。
  • 運命:Realityのファブリックは解きほぐされ、新たに回転します。これにより、1つのイベントを、発生しなかったように回避または消去できます。カードを引くとすぐ、または死ぬ前であればいつでもカードの魔法を使うことができます。
  • :強力な悪魔が敵になります。悪魔はあなたの破滅を求め、あなたの人生を苦しめ、あなたを殺そうとする前にあなたの苦しみを味わいます。この敵意は、あなたか悪魔が死ぬまで続きます。
  • 愚か者:10,000 XPを失い、このカードを捨てて、デッキから再び引きます。両方の引きを宣言した引きの1つとして数えます。それほど多くのXPを失うとレベルが失われる場合、代わりにレベルを維持するのに十分なXPだけが残る量を失うことになります。
  • 宝石:各2,000 gpに相当する25個の宝石、または各1,000 gpに相当する50個の宝石が足元に現れます。
  • 白痴:インテリジェンスを恒久的に1d4 + 1(最小スコア1まで)減らします。宣言されたドローを超えて追加のカードを1枚引くことができます。
  • 道化師:10,000 XPを獲得するか、宣言したドローを超えて2枚の追加カードを引くことができます。描いた後、このカードを捨てます。
  • キー:熟練したレアまたはレアな魔法の武器が手に現れます。GMは武器を選択します。
  • ナイト:あなたは、あなたの30フィート以内の選択したスペースに現れる第4レベルの戦闘機のサービスを獲得します。ファイターはあなたと同じ人種であり、運命が彼または彼女をあなたに引き寄せたと信じて、死ぬまで忠実にあなたに仕えます。あなたはこのキャラクターをコントロールします。
  • ムーン:ウィッシュスペルを1d3回キャストすることができます。
  • Rogue:GMが選択したノンプレイヤーキャラクターは、あなたに対して敵対的になります。新しい敵の身元は、NPCまたは他の誰かが明らかにするまでわかりません。願いの呪文や神の介入以外に、あなたに対するNPCの敵意を終わらせることはできません。
  • 破滅:魔法のアイテム以外の、あなたが持っているか所有しているあらゆる種類の富はあなたに失われます。ポータブルプロパティは消滅します。所有しているビジネス、建物、土地は、現実をほとんど変えない方法で失われます。このカードで紛失したものを所有する必要があることを証明する文書もすべて消えます。
  • スカル。あなたは死のアバターを召喚します-ボロボロの黒いローブに身を包み、スペクトルの鎌を運んでいる幽霊のようなヒューマノイドのスケルトン。それはあなたの10フィート以内のGMが選択したスペースに現れ、あなたを攻撃します。あなたが死ぬか、ヒットポイントが0になるまでアバターは戦うので、消えます。誰かがあなたを助けようとした場合、ヘルパーは死のアバターを召喚します。死のアバターによって殺されたクリーチャーは、生き返ることができません。
  • スター:能力スコアの1つを2つ増やします。スコアは20を超えることができますが、24を超えることはできません。
  • Sun:50,000 XPを獲得し、不思議なアイテム(GMがランダムに決定します)が手に現れます。
  • Talons:あなたが身につけたり運んだりするすべての魔法のアイテムは崩壊します。あなたが持っているアーティファクトは破壊されませんが、消えます。
  • 玉座:説得スキルの習熟度を獲得し、そのスキルで行われたチェックの習熟度ボーナスを2倍にします。さらに、世界のどこかにある小さなキープの正当な所有権を取得します。ただし、現在、キープはモンスターの手にあります。モンスターをキープする前にクリアする必要があります。
  • Vizier:このカードを引いてから1年以内にいつでも、瞑想で質問をすることができ、その質問に対する真実の答えを精神的に受け取ることができます。情報に加えて、答えは不可解な問題やその他のジレンマを解決するのに役立ちます。言い換えれば、知識はそれをどのように適用するかについての知恵を伴っています。
  • The Void:この黒のカードは災害を引き起こします。あなたの魂はあなたの体から引き出され、GMが選んだ場所のオブジェクトに含まれています。1人以上の強力な存在が場所を守っています。あなたの魂がこのように閉じ込められている間、あなたの体は無力化されています。願いの呪文はあなたの魂を回復することはできませんが、呪文はそれを保持するオブジェクトの場所を明らかにします。これ以上カードを引きません。

D&D 5th edition SRDからコピーされたカードの説明)

いくつかの特に愚かなプレーヤーは、有害なカードのバランスを取るために少なくとも1つの強力な恩恵を得ることを望んで、一度に多数のカードを引きます。予想されるように、これは多くの場合、キャラクターの死またはカードを引き続けることができないという結果になります。

チャレンジ

22枚の多くのモノのデッキから繰り返し描画をシミュレートし、描画された各カードを出力し、次の条件のいずれかが満たされた場合にのみ停止します。

  • キャラクターは死にます(Skullを引くか、FlamesまたはRogueを引いた後に5枚のカードを引くことで、The FatesまたはMoon active 2の恩恵は受けません)。
  • キャラクターは、より多くのカードを引くことができません(ドンジョンタロンボイド3の効果、またはキャラクターの知能スコアが白痴4で 3以下に低下する)。

ルール

  • キャラクターの属性、レベル、経験値、デッキ以外の所有物は関係ありません。
  • キャラクターの知能スコアは10から始まります。
  • キャラクターのインテリジェンスやウィッシュの備蓄された使用に上限はありません。
  • The Fatesの使用はスタックしません。
  • ウィッシュ呪文は文字が使用できないように原因の1-で-3チャンスがあるの願いその通常の効果に加えて、再び呪文を。これが発生すると、キャラクターはFlamesRogue、またはSkullを無効にするためにスペルを使用できなくなります- 運命の力は彼らの唯一の頼みの綱です。
  • キャラクターは常に次の選択を行います。
    • 運命は、スカルフレイムローグからキャラクターをトラブルから解放するためにのみ使用されます。キャラクターはの効果逆転するためにそれらを使用することはありませんタロン希望を再度キャストすることができないという呪文を、との効果逆転するためにそれらを使用することはできません天守閣ボイドを。キャラクターはすぐに1つのウィッシュスペルを使用してSkullFlames、またはRogueのいずれかを描画するとその効果を無効にし、常に成功します。キャラクターは使用する前に常に運命を使用しますお願いします。
    • キャラクターは常に、馬鹿道化師の効果で(適切に)より多くのカードを引くことを選択します。
    • 効果スターはいつもの効果によってカードを引く停止することを避けるために、2によって知能を高めるために使用される白痴
  • ナイトによって召喚されたNPCの味方は、キャラクターを早すぎる死から救うほど強力ではありません。
  • インテリジェンスの増加または減少(それぞれStarまたはIdiotを使用)は、出力に反映する必要があります(変更(+2または-(1d4+1))に注目するか、エフェクトの発生後に現在のインテリジェンススコアを出力する)。
  • 数への変更願いは文字を含む、同様に出力に反映されなければなら備蓄した使用願い使用することはできませんに文字を引き起こして願いをもう。
  • すべてのランダム選択は、均一な離散分布からのものです。
  • 描かれたカード用に出力する22の異なる出力のセットを選択できます-カードの名前を使用する必要はありません。
  • インテリジェンスの変更を出力し、使用を希望し、一貫性のある明確な選択方法で使用できなくなることを望みます。
  • キャラクターはRogueまたはFlamesを引いた後に5枚目のカードとして適切なカードが引かれた場合、死を避けるためにThe Fatesの願いまたは力を使うかもしれません。The Fatesが時間内に描画されないか、すでに使用されているだけでなく、願いが使用できないか、すべての使用が使用されている場合にのみ、キャラクターは死にます。
  • フールジェスターは、描かれた後に破棄されます。他のすべてのカードはすぐにデッキに戻され、デッキはシャッフルされます。
  • ローグフレイムのアクティブなスタックが複数ある場合、それらすべてを払拭するのに必要なのは「運命」または「願い」を一度だけ使用することだけです。
  • JesterまたはFoolで複数のカードを一度に引いても、FlamesRogueのターンカウンターは進みません。

各線は一連の描画を表します。インテリジェンスおよびウィッシュの使用に対する変更は、括弧内の現在の値によって示されます。Cウィッシュ使用がいることを意味願いは、もはや使用することはできません。A Fは、The Fatesの力が死を避けるために使用されたことを示します。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種類のカードの2つのバリエーションがあります。ここでは、完全な22カードバージョンについてのみ心配しています。

[2]:FlameRogueは通常、キャラクターを完全に殺しませんが、敵対的なNPCは、さらに5枚のカードを引く時間があった後に、愚かなキャラクターを見つけて殺したと想定されます。スカルによって召喚された亡霊 は戦うのが非常に難しく、キャラクターが勝てないと想定されています。The FatesまたはMoonを介した神/魔法の介入のみが、これらの3枚のカードによる愚かなキャラクターを死から救うことができます。

[3]:キャラクターの友だちは、キャラクターを助けようとせず、カードをさらに引き出そうとするほど賢いと思います。

[4]:インテリジェンススコア3は、野生動物とほぼ同等であり、カードを引く選択を積極的に行うことはできません。



a)5ターンが期限切れで、理想的にはいくつかのボーナスカードが間に引き込まれる場合、b)運命が2回引き分けられる場合の間に、それを使用する場合と使用しない場合の実行例をいくつか追加するとよいでしょう。
マーティンエンダー

あなたのリファレンス実装は、月が描かれた瞬間にそれが使われたとしても、願いが期限切れにならないようにします。また、有効期限が既に切れているかどうかも確認しません。
マーティンエンダー

もう1つ、元のD&Dルールでは、Idiot、Fool、Jesterのすべてに追加のカードが記載されています。ルールでは、最初にプレーヤーがIdiotとJesterの追加カードを引くと述べていますが、その後、FoolとJesterのルールカウンターを明確にし、リファレンス実装はFoolとJesterの追加カードのみを引くようです。これを明確化/修正してもらえますか?
マーティンエンダー

2
@steenbergh最初はそれも読みましたが、「各カードが描かれた後、デッキに戻され、デッキがシャッフルされます。」。フールとジェスターのみが描かれたときに取り除かれ、他のすべてはデッキに再び置かれ、新しいカードが描かれる前に毎回シャッフルされます。
ケビン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:太陽、玉座、鍵、騎士、破滅、エウリュアレ、ヴィジエ、彗星、宝石、バランス

The Fatesを介したSkull、Flames、またはRogueの反転は、で示されます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
@Mego正直に言って、私はこの答えを見るまでは得られなかったほどうまくいきませんでした。フルネームを見ればわかりやすい。変更した場合、フルネームでバージョンを保持できますか?
魔法のタコ

@MagicOctopusUrn確かに、将来的には現在のフルネームバージョンを確実に保持するでしょう。
-darrylyeo

@MegoはOPに向けられ、「実際のカード名が完全に記述されたバージョンにより、この実装が読みやすくなりました。
魔法のタコUr

@MagicOctopusUrnが更新されました。
-darrylyeo

0

Kotlin、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;}}

JavaでPython3参照実装を移植し、それを徹底的に試しました。間違いなくもっとゴルフができますが、これは私がすべてを正しくしたことを確認するための初期バージョンにすぎません。

誰かが間違いを見つけた場合(編集があったとしても驚かないでしょう:私がこれを投稿してから既に7つか8つの間違いのように修正されています。)、私に知らせてください。

カード出力:

0:運命
1:月
2:炎
3:ローグ
4:頭蓋骨
5:馬鹿
6:星
7/ 8/ 9:ドンジョン/ボイド/タロン
20/ 21:愚か者/ジェスター

10-19:その他すべて(Sun / Throne / Key / Knight / Ruin / Euryale / Vizier / Comet / Gem / Balance)

残された希望、使用された希望、残された知性、使用されたフラグの出力形式:

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ありがとう!今すぐ修正する必要があります。他の間違いを見つけたら、私に知らせてください。:)
ケビンクルーイッセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.