Note that there are some explanatory texts on larger screens.

plurals
  1. POPython Connect Four game
    text
    copied!<p>I am currently working on making a Python version of the game Connect Four. It is going to be pretty basic, using Tkinter for the interface. I think I have most of the code laid out and I'm not getting any errors, but it currently isn't creating the actual game board. Right now I only have it coded to make the first row of 7 (the gameboard is 7x6), but it's not showing up. Here is the code:</p> <pre><code>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() </code></pre> <p>Does anyone see any obvious errors causing the gameboard buttons not to show up? Or any errors in general? Thanks.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload