def newGame(self): # Ask for players' names self.p1 = 'Blue' self.p2 = 'Red' # Ask for grid size columns = 7 rows = 6 #self.game = ConnectFour(columns=columns, rows=rows) self.game = Boardposs() self.canvas.delete(ALL) self.canvas.config(width=(self.elementSize) * self.game.size['c'], height=(self.elementSize) * self.game.size['r']) self.master.update() # Rerender window self.drawGrid() self.draw() self._updateCurrentPlayer() self.gameOn = True fd = open("BAGENT.dna", 'rb') self.playerObj1 = AgentClass() self.playerObj1.dna = pickle.load(fd) fd.close() self.gameOver = False self.player = 1 self.root = gametree.TreeNode(parent=None, player=self.player) self.root.makeTree(pd) self.board = boardpos.Boardpos()
def generateChildren(self): count = 0 for element in range(len(self.boardpos.a[0])): if (self.boardpos.a[0][element] != 0): self.children.append(None) count += 1 else: newBoardPos = boardpos.Boardpos() newBoardPos.a = copy.deepcopy(self.boardpos.a) for i in range(5, -1, -1): if (newBoardPos.a[i][element] == 0): newBoardPos.a[i][element] = self.player break # rate(newBoardPos, self.player) # print("New players are ", newBoardPos.players) self.children.append( TreeNode(player=toggle(self.player), boardpos=newBoardPos, parent=self)) if (count >= 7): self.endPos = True else: self.leaf = False
def __init__(self, parent, player, boardpos=boardpos.Boardpos()): self.parent = parent self.children = [] self.boardpos = copy.deepcopy(boardpos) self.player = player self.leaf = True self.endPos = False rate(self.boardpos, self.player)
def __init__(self, master): self.master = master master.title('Connect Four') label = Label(master, text="NightFox") label.grid(row=0) button = Button(master, text="New Game!", command=self._newGameButton) button.grid(row=1) self.canvas = Canvas(master, width=200, height=50, background=self.backgroundColor, highlightthickness=0) self.canvas.grid(row=2) self.currentPlayerVar = StringVar(self.master, value="") self.currentPlayerLabel = Label(self.master, textvariable=self.currentPlayerVar, anchor=W) self.currentPlayerLabel.grid(row=3) self.canvas.bind('<Button-1>', self._canvasClick) self.state = True # from here fd = open("BAGENT.dna", 'rb') self.playerObj1 = AgentClass() self.playerObj1.dna = pickle.load(fd) fd.close() self.gameOver = False self.player = 1 self.root = gametree.TreeNode(parent=None, player=self.player) self.root.makeTree(pd) self.board = boardpos.Boardpos() self.newGame()
if (__name__ == "__main__"): # fd = open("EP-BAGENT.dna", 'rb') # playerObj1 = pickle.load(fd) # fd.close() # print("Agent is ", playerObj1.dna) playerObj1 = Temp() fd = open("BAGENT.dna", 'wb') pickle.dump(playerObj1, fd) fd.close() gameOver = False player = 1 root = gametree.TreeNode(parent=None, player=player) root.makeTree(pd) board = boardpos.Boardpos() while (not gameOver): oldpos = root.boardpos move, root = movemaker.acceptmove(root, player) gameOver = arena.change_vals(oldpos, move, player) player = gametree.toggle(player) if (not gameOver): oldpos = root.boardpos move, root = movemaker.move(playerObj1, root, player) # move, root = movemaker.acceptmove(root, player) gameOver = arena.change_vals(oldpos, move, player) player = gametree.toggle(player) if (gameOver): # print("Agent {} won with fitness {}".format(playerObj1.agentID, playerObj1.fitness)) pass
#print("counter after 1st for loop",counter) pos_diag = pos + 1 for i in range(glb.inserted_row + 1, 6): #135-degree diagonal right #print("row ",i," column ",pos_diag) #print(pos_diag) if (pos_diag < 7 and bObj.a[i][pos_diag] == player): pos_diag += 1 counter += 1 #print("r , pos",counter,pos_diag) else: break if (counter >= 4): # print("Player ",player," won : NEG_DIAG") return True return False if (__name__ == "__main__"): import boardpos bObj = boardpos.Boardpos() ip = False while (not ip): print("Player Position") player, pos = input().split(" ") player = int(player) pos = int(pos) ip = change_vals(bObj, pos, player) check_for_win(bObj, pos, player) print("Value returned is ", ip)