2010-07-29 68 views
0

下面是python中的tic tak toe遊戲代碼,可以有人向我展示如何使用重置選項在GUI窗體中顯示它,並顯示誰在最後獲勝。像X贏或O贏?在python編程中的GUI

board =「1 | 2 | 3 \ n ----------- \ n 4 | 5 | 6 \ n ----------- \ n 7 | 8 | 9「

。 checkboard = [1,2,3,4,5,6,7,8,9,1,4,7,2,5,8,3,6,9,1,5,9,3,5, 7]

空間=範圍(1,10)

DEF moveHandler(板,空格,棋盤格,播放器,N):

if player==1: 
    check="X" 
else: 
    check="O" 

while spaces.count(n)==0: 
    print "\nInvalid Space" 
    n=playerinput(player) 

spaces=spaces.remove(n) 

board=board.replace(str(n),check) 

for c in range(len(checkboard)): 
    if checkboard[c]==n: 
     checkboard[c]=check 


status = checkwinner(checkboard,check) 
return board,status 

DEF checkwinner(棋盤格,檢查): 一個, b,C = 0,1,2

while a<=21: 
    combo = [checkboard[a],checkboard[b],checkboard[c]] 

    if combo.count(check) == 3: 
     status =1 
     break 
    else: 
     status =0 

    a+=3 
    b+=3 
    c+=3 

return status 

DEF playerinput(播放器): 嘗試: 鍵= INT(的raw_input( '\ n \ nPlayer' + STR(播放器)+ ':請選擇一個空間'))

except ValueError: 

    print "Invalid Space" 

    key = playerinput(player) 

return key 

而真:

player = len(spaces)%2 +1 

if player == 1: 

    player = 2 

else: 

    player =1 

print "\n\n" + board 

key = playerinput(player) 

board,status =moveHandler(board,spaces,checkboard,player,key) 

if status == 1: 

    print '\n\nPlayer ' + str(player) + ' is the winner!!!' 

    print board 

    break 

elif len(spaces)==0: 

    print "No more spaces left. Game ends in a TIE!!!" 


    print board 

    break 

else: 

    continue 

回答

1

退房的python wiki爲有關不同GUI工具包的信息。我會建議看看wxPython,然後從那裏出發

5

顯然你需要選擇一個GUI工具包(Python支持其中的很多),用它來繪製一個3×3的正方形網格,並將playerinput函數接受(例如)當前玩家雙擊輸入他或她想要在玩空方。

然後,您需要更改print報表顯示GUI表面上的信息。

但是,如果遊戲不是試圖控制事件的流向,而是迴應玩家發起的事件,那麼遊戲會更好 - 這就是真正的GUI應用程序應該如何完成,而不是通過一些最小化的改造接口的基礎上設計爲命令行交互式過程。

每項任務是可觀,尤其是整體重構,我建議在最後一段,並在其細節,完全取決於你選擇什麼樣的GUI工具 - 所以你可能要開始了,並且再一般將問題分解成各個子任務(「每個問題有一個問題」,因爲後者中的許多可能會出現;-)。

有幾個關於Python的GUI選擇的SO問題,所以我建議你研究它們而不是問一個新的。我個人最喜歡的是PyQt(儘管越來越多的時候我只是通過一個簡單的基於瀏覽器的界面與一個僅支持本地的服務器通信),但其他流行的包括wxPython,Tkinter,PyGtk和其他列表here - 快樂的狩獵!