三目並べをテストする


アニメ『からかい上手の高木さん』

高木さんは隣の男子が気になって、ついからかってしまうんでしょうねえ。よい子だと思います。男子の方はいつも高木さんへの仕返しのことばかり考えてます。この子もよい子だと思います。よい子同志が仲良く戯れるお話です。

前回の続きです。
三目並べの判定が正しいか確認するため、人間が読める形でテスト結果を表示するように改造します。
このようなASCIIアートで三目並べを表現してみます。

O| | 
-+-+-
 | | 
-+-+-
 | |X

前回のプログラムからの変更ソースです。

    34	def disp(lis):
    35	  arr = [' ' for x in range(10)]
    36	  turn=0
    37	  print lis
    38	  for m in lis:
    39	    if turn==0:
    40	      arr[int(m)] = 'O'
    41	    else:
    42	      arr[int(m)] = 'X'
    43	    print"%s|%s|%s" % (arr[1],arr[2],arr[3])
    44	    print"-+-+-"
    45	    print"%s|%s|%s" % (arr[4],arr[5],arr[6])
    46	    print"-+-+-"
    47	    print"%s|%s|%s" % (arr[7],arr[8],arr[9])
    48	    print""
    49	    turn=1-turn
    50	
    51	for lis in pm:
    52	  judge(lis)
    53	
    54	disp(OWinlis[0])

arr配列は0始まりですが、盤の番号を1から振ったので混乱しないように1から使うようにしています。

実行すると、○の勝ちリストの中から一番最初のパターンを、ASCIIアートを使って○☓を交互に打っていく様子が見れます。
つまり、このテスト方法は目視確認ですね。

takk@deb9:~$ python tictactoe.py
(1, 2, 3, 4, 5, 6, 7, 8, 9)
O| | 
-+-+-
 | | 
-+-+-
 | | 

O|X| 
-+-+-
 | | 
-+-+-
 | | 

O|X|O
-+-+-
 | | 
-+-+-
 | | 

O|X|O
-+-+-
X| | 
-+-+-
 | | 

O|X|O
-+-+-
X|O| 
-+-+-
 | | 

O|X|O
-+-+-
X|O|X
-+-+-
 | | 

O|X|O
-+-+-
X|O|X
-+-+-
O| | 

O|X|O
-+-+-
X|O|X
-+-+-
O|X| 

O|X|O
-+-+-
X|O|X
-+-+-
O|X|O

○が斜めに揃った後でも、終了判定を入れていないため、盤が埋まるまで表示されます。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA