渡り鳥の旅路

元半導体系エンジニア、今Webエンジニアの雑記

人狼ゲームの配役割り振り@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('全員の役職が決まりました')