Stage 8 ゲームを進行する
8-7 ゲームセット後を処理する
なんらかの形でゲームに決着がつき、while ループを脱したところをコーディングします。まだ playmode 関数の中なのでインデントは 1 つ下げたままです。
print('\nGAME SET')
if winner == EMPTY:
print('1/2 - 1/2\tDRAW')
# for record
main_board.s = '1/2-1/2 '
main_board.record(MAINRECADDRESS)
elif winner == WHITE:
print('1 - 0\tWHITE WINS')
# after white's move, 1-0 is written where black's move is written
main_board.s = '1-0 '
main_board.record(MAINRECADDRESS)
elif winner == BLACK:
print('0 - 1\tBLACK WINS')
# after white's move, 1-0 is written where black's move is written
main_board.s = '0-1 '
main_board.record(MAINRECADDRESS)
else:
logger.error('UNEXPECTED VALUE of PLAYER out of the loop')
print('SYSTEM ERROR')
sys.exit('SYSTEM ERROR')
# record output
if input('\nDo you want the record (y/n)? >>> ') in ['y', 'Y', 'yes', 'YES', 'Yes']:
record = open(MAINRECADDRESS, 'r')
print('\n------------------------------------')
print(record.read())
print('------------------------------------')
record.close()
print('\nGAME OVER\n')
どうせ長いと思ってたよ
察しが良くて助かりますよ。
~~~~~~~~~~~~~~~
まずゲームが終わってすぐ「ゲームセット」くらいはプレーヤーがわかるように書いときましょうか。
print('\nGAME SET')
if winner == EMPTY:
...
さて、このあとは winner の値、すなわち勝者によって場合わけします。while ループを抜ける時に winner に勝者を格納しておいてよかったですね。まずは引き分けの場合です。
if winner == EMPTY:
print('1/2 - 1/2\tDRAW')
# for record
main_board.s = '1/2-1/2 '
main_board.record(MAINRECADDRESS)
下 3 行は Stage 10 で扱いますので、とりあえず print だけをみていただければいいです。引き分けの記法は 1/2 - 1/2 ですから、この通り書いておきましょう。
また、1/2 - 1/2 が引き分けを表すことを知らない場合のために DRAW という単語も合わせて記載しておきます。
~~~~~~~~~~~~~~~
白勝ち、黒勝ちの場合も同様です。record の類はやっぱり Stage 10 にお預け。
elif winner == WHITE:
print('1 - 0\tWHITE WINS')
# after white's move, 1-0 is written where black's move is written
main_board.s = '1-0 '
main_board.record(MAINRECADDRESS)
elif winner == BLACK:
print('0 - 1\tBLACK WINS')
# after white's move, 1-0 is written where black's move is written
main_board.s = '0-1 '
main_board.record(MAINRECADDRESS)
その下にも record とかありますが、こいつもやっぱり Stage 10 で。最後に GAME OVER と書いておしまいです。
ただでさえ言葉足らずなのに、全く説明しなくなっちゃったよこの人
全部 Stage 10 でお教えしますから、安心してくださいよ。