我一直在研究一個實現連接4遊戲的程序,我碰到了一個障礙。這裏是我的輸出:Python:連接四個輪流輪流
>>> ================================ 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次,然後我們檢查,如果有一個贏家,如果不是球員兩部戲,等等。這需要一個單獨的課程:
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()
任何想法,輸入或建議將不勝感激!
看來你的代碼是不完整的。它是從早期版本粘貼的嗎? 特別是,董事會對象的通過不明確。 'play_game'和'play_turn'需要一個電路板參數,但它沒有通過,然後他們使用'b = ConnectFour()',這是沒有顯示。 請詳細說明。 – yoniLavi
它看起來像你創造了一個新的'ConnectFour'轉向。你不應該只在整個遊戲中創建一個嗎? – ApproachingDarknessFish