Connect 4 のゲームを実装するプログラムに取り組んできましたが、問題が発生しました。ここに私の出力があります:
>>> ================================ RESTART ================================
>>>
Player 1 please pick a column: 5
-----------------------------
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
-----------------------------
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | x | |
-----------------------------
Player 2 please pick a column: 6
-----------------------------
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
-----------------------------
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | o |
-----------------------------
したがって、基本的に、交互にターンするときにボードは「更新」されません。基本的に、私のコードは次のようになります。
-----------------------------
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
-----------------------------
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | x | o |
-----------------------------
ボードを適切に更新するために何をしなければならないのかよくわかりません。印刷機能をいじってみましたが、出力が以前より悪くなってしまいました。これが私のコードです:
プレーヤーのインポートから *
def play_game(board, player1,player2):
b = ConnectFour()
f = Human(1)
g = Human(2)
while True:
f.play_turn(1)
if b.is_game_over() == None:
g.play_turn(2)
if b.is_game_over() == None:
pass
else:
print "Player 2 wins"
break
else:
print "Player 1 wins"
break
基本的に: プレイヤー 1 がプレイし、プレイヤー 2 がプレイしない場合は勝者がいるかどうかを確認します。そして、これは別のクラスを呼び出します:
class Human(Player):
def play_turn(self,board):
super(Human, self).play_turn(board)
b = ConnectFour()
x = raw_input("Player %s please pick a column: " % self.playernum)
b.play_turn(self.playernum, int(x))
b.print_board()
アイデア、意見、アドバイスをいただければ幸いです。