2011-10-17 6 views
2

現在、私はPython版のゲームを作成しています。インターフェイスのためにTkinterを使うことでかなり基本的になるでしょう。ほとんどのコードがレイアウトされていると思いますが、エラーは出ませんが、現在は実際のゲームボードを作成していません。今は7行目(ゲームボードは7x6)の最初の行を作るようにコード化されていますが、表示されません。ここでは、コードは次のようになります。Python Connect Four game

from Tkinter import * 

class cell: 
    def __init__(self,cellNum,frame,game): 
     self.Empty=PhotoImage(file='empty.gif') 
     self.Black=PhotoImage(file='black.gif') 
     self.Red=PhotoImage(file='red.gif') 
     self.b = Button(frame,image=self.Empty,command=self.makeMove) 
     self.frame = frame 
     self.game = game 
     self.num = cellNum 

    def pack(self): 
     self.gameSquare.pack() 

    def makeMove(self): 
     Player = self.game.Player 
     if self.Player == 'Black': 
      self.b.config(image=self.Black) 
      num = self.num 
      self.game.moves[Player].append(num) 
      self.game.free.remove(num) 
      self.Player = 'Red' 
     else: 
      self.b.config(image=self.Red) 
      self.Player = 'Black' 
     self.turninfo.config(text=Player+"'s Turn") 

    def restart(self): 
     self.b.config(image=self.Empty) 

class game: 
    def __init__(self): 
     self.win = Tk() 
     self.win.title('Connect Four') 
     self.win.config(bg="blue") 
     self.cells=[] 
     self.free = range(42) 
     self.moves = { 'X' : [ ], 'O' : [ ] } 
     self.Row1 = Frame(self.win) 
     for i in range(7): 
      self.cells.append(cell(i,self.Row1,self)) 
     self.Player = 'Black' 

     self.titleFrame = Frame(self.win) 
     self.title = Label(self.win,text="Connect Four",font=(200),fg='white', bg='blue') 


     self.middleRow = Frame(self.win) 
     self.turninfo = Label(self.middleRow,text=self.Player+"'s Turn", font=(200),fg='white',bg='blue') 

     self.bottomRow = Frame(self.win) 
     self.quitbutton = Button(self.bottomRow, text="Quit", command=self.win.destroy, font=(200)) 
     self.playbutton = Button(self.bottomRow, text="Play Again", command=self.restart, font=(200)) 

     self.titleFrame.pack() 
     self.title.pack() 
     self.Row1.pack() 
     self.turninfo.pack() 
     self.middleRow.pack() 
     self.bottomRow.pack() 
     self.quitbutton.pack(side="left") 
     self.playbutton.pack(side="right") 
     self.win.mainloop() 

    def restart(self): 
     self.Player = 'Black' 
     self.turninfo.config(text=self.Player+"'s Turn") 
     self.free = range(42) 
     self.moves = {'Black' : [ ], 'Red' : [ ]} 
     for c in self.cells: 
      c.restart() 

game = game() 

誰もが表示されるまでにないゲームボードボタンを引き起こし、明らかなエラーを表示していますか?または一般的なエラー?ありがとう。

答えて

4

は、フレームにボタンをパックすることを忘れないでください:

self.b = Button(frame,image=self.Empty,command=self.makeMove) 
    self.b.pack(side=LEFT) 
関連する問題