だれでもポケカプログラミング その6 エレキジェネレーターがヒットする確率①(後1ごっつぁんプリファイを目指す)
↑前回の記事はこちら。
カウンターカイナ組んでみました。雷エネルギー15枚積みのやつです。これを使って後1ごっつぁんプリファイを目指します。
まず今回はエレキジェネレーターがヒットする確率を出したいと思います。
後1ごっつぁんプリファイを決める条件は下記です。
・テツノカイナexがベンチにいる
・エレキジェネレーターを使ってベンチのテツノカイナexにエネルギーを3~4枚つける(そのためにはエレキジェネレーターが2枚以上必要)
・エネルギーが4枚以上ついたテツノカイナexをバトル場に出す
結構しんどいっすね。
これ正確にシミュレーションするにはブーストエナジー未来でバトル場のポケモンを逃がしたり、ペパーや博士の研究でエレキジェネレーターを引いてきたりなどもプログラムしないといけないですね。
とりあえず今日はエレキジェネレーターがどれくらいの確率でヒットするかシミュレーションしてみましょう。
使用するデッキはこちら。
エレキ0個 = 0
エレキ1個ヒット0 = 0
エレキ1個ヒット1 = 0
エレキ1個ヒット2 = 0
エレキ2個ヒット0 = 0
エレキ2個ヒット1 = 0
エレキ2個ヒット2 = 0
エレキ2個ヒット3 = 0
エレキ2個ヒット4 = 0
エレキ3個ヒット0 = 0
エレキ3個ヒット1 = 0
エレキ3個ヒット2 = 0
エレキ3個ヒット3 = 0
エレキ3個ヒット4 = 0
エレキ3個ヒット5以上 = 0
エレキ4個 = 0
エレキ4個ヒット1 = 0
エレキ4個ヒット2 = 0
エレキ4個ヒット3 = 0
エレキ4個ヒット4 = 0
エレキ4個ヒット5以上 = 0
こんな感じで集計していきます。ヒット3+手貼りでいけますので最低でもヒット3は必要ですね。
#手札を7枚引く
for i in range(7):
手札.append(デッキ.pop())
#たねポケもネオラントVも1枚もない場合マリガンカウント
if 'たねポケ' not in 手札 and 'テツノカイナex' not in 手札:
マリガン回数カウント += 1
else
#サイドを6枚引く
for i in range(6):
サイド.append(デッキ.pop())
#1ドロー
手札.append(デッキ.pop())
対戦準備はいつもの通りです。手札引いてたねポケいなければマリガン。たねポケいればサイド引いて1枚ドロー。
if 'エレキジェネレーター' not in 手札:
エレキ0個 += 1
エレキジェネレーターが手札にない場合はエレキ0個をカウント。ここは簡単。
elif 手札.count('エレキジェネレーター') == 1:
#トップを5枚見る
for i in range(5):
トップを5枚見る.append(デッキ.pop())
if '雷エネルギー' not in トップを5枚見る:
エレキ1個ヒット0 += 1
エレキジェネレーターが手札に1枚あった場合、デッキのトップを5枚見て雷エネルギーがあるか確認。なければエレキ1個ヒット0をカウント。
elif 手札.count('エレキジェネレーター') == 1:
#トップを5枚見る
for i in range(5):
トップを5枚見る.append(デッキ.pop())
if '雷エネルギー' not in トップを5枚見る:
エレキ1個ヒット0 += 1
elif トップを5枚見る.count('雷エネルギー') == 1:
エレキ1個ヒット1 += 1
elif トップを5枚見る.count('雷エネルギー') >= 2:
エレキ1個ヒット2 += 1
else:
エレキが2個以上 += 1
繰り返すとこんな感じになる。
一旦出力してみましょう。
グラフにするとこんな感じですね。
マリガンを除くとこんな感じ。
エレキジェネレーターが2個以上の確率が7.2%…。結構高くない?1ターン目にエレキジェネレーターが1個あって、1個か2個雷エネルギーがヒットする確率は…27.5%!マリガンになる確率より高いんだな~!
一旦ここで区切ります。次回はエレキジェネレーター2個以上持ってる場合のプログラムを書きまーす。
#プログラミング
#python
#ポケカ
#プログラミング初心者
#python初心者
#ポケカ考察
#GoogleColab
#GoogleColaboratory
#ごっつぁんプリファイ
#テツノカイナex