注目キーワード
  1. ゲーム
  2. python
  3. MyLIFE
  4. 音楽

Python学習part9

どうもーASN48です。

今回もPython学習のアウトプットをしていきます!

前回同様「退屈なことはPythonにやらせよう」の本に沿って進めていきます!

こちらの辞書型データ構造の項目にある「〇×ゲーム」のコードを書いていきます。


「スポンサーリンク」

 

プログラムコード

#フィールド(リスト)作成
play_field = {'上左' : ' ' , '上中' : ' ' , '上右' : ' ',
              '中左' : ' ' , '中中' : ' ' , '中右' : ' ',
              '下左' : ' ' , '下中' : ' ' , '下右' : ' ',}

#フィールド表示を定義
def print_field(field):
    print(field['上左'] + '|' + field['上中'] + '|' + field['上右'])
    print('-+-+-')
    print(field['中左'] + '|' + field['中中'] + '|' + field['中右'])
    print('-+-+-')
    print(field['下左'] + '|' + field['下中'] + '|' + field['下右'])

turn = 'X'
for i in range(9):
    print_field(play_field)
    print(turn + 'の番です。どこに打ちますか?')
    print('上左 上中 上右')
    print('中左 中中 中右')
    print('下左 下中 下右')
    print('上記より選択してください。')
    move = input()
    play_field[move] = turn

    if turn =='X':
        turn ='O'
    else:
        turn ='X'

上記のようになります。

では実際に動かしてみます!

 | | 
-+-+-
 | | 
-+-+-
 | | 
Xの番です。どこに打ちますか?
上左 上中 上右
中左 中中 中右
下左 下中 下右
上記より選択してください。
中中
 | | 
-+-+-
 |X| 
-+-+-
 | | 
Oの番です。どこに打ちますか?
上左 上中 上右
中左 中中 中右
下左 下中 下右
上記より選択してください。
上左
O| | 
-+-+-
 |X| 
-+-+-
 | | 
Xの番です。どこに打ちますか?
上左 上中 上右
中左 中中 中右
下左 下中 下右
上記より選択してください。
下右
O| | 
-+-+-
 |X| 
-+-+-
 | |X
Oの番です。どこに打ちますか?
上左 上中 上右
中左 中中 中右
下左 下中 下右
上記より選択してください。
上中
O|O| 
-+-+-
 |X| 
-+-+-
 | |X
Xの番です。どこに打ちますか?
上左 上中 上右
中左 中中 中右
下左 下中 下右
上記より選択してください。
上右
O|O|X
-+-+-
 |X| 
-+-+-
 | |X
Oの番です。どこに打ちますか?
上左 上中 上右
中左 中中 中右
下左 下中 下右
上記より選択してください。
中右
O|O|X
-+-+-
 |X|O
-+-+-
 | |X
Xの番です。どこに打ちますか?
上左 上中 上右
中左 中中 中右
下左 下中 下右
上記より選択してください。
下左
O|O|X
-+-+-
 |X|O
-+-+-
X| |X
Oの番です。どこに打ちますか?
上左 上中 上右
中左 中中 中右
下左 下中 下右
上記より選択してください。

若干表示がズレていて見づらいですが・・・

先行がX、後攻がOで交互に打っていき、先行のXが3つ並べて勝利しました。

しかし勝ち負けの判定までは今回できませんでした。ネット上に勝ち負けの判定までは加えたプログラムコードが載ってますので興味があれば・・・

サイトリンク:https://github.com/oreilly-japan/automatestuff-ja

上記サイトの「ch05」の中にある「fullTicTacToe2.py」です。

ではアデュー。

最新情報をチェックしよう!