人狼ゲームの配役割り振り@Python勉強中
最近自分の中で人狼ゲームが熱いので(まだ観戦のみだけど)、
プログラミングの勉強もかねて配役を割り振るパートを書いてみた。
たぶんリストの要素を追加・削除するようにすれば、わざわざ場合分けごとのリストを用意しなくて済むはずなので、そこは勉強して直す予定。。
インデント、どこいった。。
#coding:utf-8 import random #プレイヤー人数。後で、プレイヤー数に制限をつけ、それ以外だとアラームを表示するようにする。 players = input('プレイヤー数を入力してください:') #配役用のリスト role_list_all = ['村人', '人狼', '占い師'] role_list_vj = ['村人', '人狼'] role_list_vf = ['村人', '占い師'] role_list_jf = ['人狼', '占い師'] role_list_v = ['村人'] role_list_j = ['人狼'] role_list_f = ['占い師'] i = 1 v = 0 j = 0 f = 0 #場合分けで、人狼2人、占い師1人、他は村人になるように指定。 while i <= players: if v == players - 3 and j < 2 and f == 0: n = random.choice(role_list_jf) print(str(i) + 'は' + n + 'です') elif v == players -3 and j < 2 and f == 1: n = random.choice(role_list_j) print(str(i) + 'は' + n + 'です') elif v == players -3 and j == 2 and f == 0: n = random.choice(role_list_f) print(str(i) + 'は' + n + 'です') elif j == 2 and f == 1: n = random.choice(role_list_v) print(str(i) + 'は' + n + 'です') elif j < 2 and f == 1: n = random.choice(role_list_vj) print(str(i) + 'は' + n + 'です') else: n = random.choice(role_list_all) print(str(i) + 'は' + n + 'です') if n == '村人': v += 1 if n == '人狼': j += 1 if n == '占い師': f += 1 i += 1 print('全員の役職が決まりました')