Exemple #1
0
    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()
Exemple #2
0
    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
Exemple #3
0
 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)
Exemple #4
0
    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()
Exemple #5
0

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
Exemple #6
0
                #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)