#勝負がつくまでループ
while(True):
#配置する場所を決定
place = choice(selecter)
#配置場所を選択肢から削除
deletemap(selecter,place)
#選択した配置場所をユーザIDで埋める
map[place] = user
#勝敗チェック
checked = checker(map)
#勝負がついていればリターン
if checked != 0:
return checked
#先手、後手切り替え
if user == 1:
user = 2
else:
user = 1
#配置場所が無くなる(ドロー)であれば、
#ループを抜ける
if len(selecter) == 0:
break
return 0
#指定された値をリストから削除する
def deletemap(map, value):
for i in range(len(map)):
if (map[i] == value):
del(map[i])
break
return map
#勝敗がついているかチェック
def checker(map):
#横列チェック
for i in range(0,7,3):
if (map[i] == 1) and (map[i+1] == 1) and (map[i+2] == 1):
return 1
if (map[i] == 2) and (map[i+1] == 2) and (map[i+2] == 2):
return 2
#縦列チェック
for i in range(0,3):
if (map[i] == 1) and (map[i+3] == 1) and (map[i+6] == 1):
return 1
if (map[i] == 2) and (map[i+3] == 2) and (map[i+6] == 2):
return 2
#斜め列チェック
if (map[0] == 1) and (map[4] == 1) and (map[8] == 1):
return 1
if (map[2] == 1) and (map[4] == 1) and (map[6] == 1):
return 1
if (map[0] == 2) and (map[4] == 2) and (map[8] == 2):
return 2
if (map[2] == 2) and (map[4] == 2) and (map[6] == 2):
return 2