Esempio n. 1
0
    def run(self):
        while (True):
            self.View = MenuView(3, self.players)
            buttons1, buttons2, PlayButton, GRID3, GRID10 = self.View.draw_Menu(
                self.players)

            flag = 0
            p1 = None
            p2 = None
            p3 = None

            while (flag == 0):
                for event in pygame.event.get():
                    if (event.type == pygame.QUIT):
                        sys.exit()
                    if (event.type == pygame.MOUSEBUTTONDOWN):
                        if (p1 != None and p2 != None and p3 != None):
                            if (PlayButton.isClicked(event) == 1):
                                flag = 1
                                p3 = 2

                        if (GRID3.isClicked(event) == 1 and p3 != 2):
                            GRID3.Toggle()
                            GRID10.UnToggle()
                            GRID_SIZE = 3
                            p3 = 1

                        if (GRID10.isClicked(event) == 1 and p3 != 2):
                            GRID10.Toggle()
                            GRID3.UnToggle()
                            GRID_SIZE = 10
                            p3 = 1

                        for i, b in enumerate(buttons1):
                            if (b.isClicked(event) > 0):
                                p1 = deepcopy(self.players[i])
                                for bb in buttons1:
                                    bb.UnToggle()
                                b.Toggle()
                        for i, b in enumerate(buttons2):
                            if (b.isClicked(event) > 0):
                                p2 = deepcopy(self.players[i])
                                for bb in buttons2:
                                    bb.UnToggle()
                                b.Toggle()

            print("!!!")

            #             TicTacToe(needToWin, GRID_SIZE,player1,player2)
            A_TicTacToe = TicTacToe(needToWinDict[GRID_SIZE], GRID_SIZE, p1,
                                    p2, False)
            A_TicTacToe.run()

        pygame.time.wait(30000)
Esempio n. 2
0
    def __init__(self, m, n, Game):
        self.size = [m, n]
        self.Game = Game

        self.screenSize = [800, 600]

        EventManager.subscribe("MoveFinished", self.onMoveFinished)

        # init Tkinter
        self.tkInstance = Tk()

        self._GUISplashScreen = SplashScreenView(self.tkInstance, self)
        self._GUIMenu = MenuView(self.tkInstance, self)
        self._GUIGameBoard = GameView(self.tkInstance, self, Game)

        self._GUIMenu.show()
Esempio n. 3
0
 def __init__(self, m, n, Game):
     self.size = [m,n]
     self.Game = Game
     
     self.screenSize = [800, 600]
     
     EventManager.subscribe("MoveFinished", self.onMoveFinished)
     
     # init Tkinter
     self.tkInstance = Tk()
     
     self._GUISplashScreen = SplashScreenView(self.tkInstance, self)
     self._GUIMenu = MenuView(self.tkInstance, self)
     self._GUIGameBoard = GameView(self.tkInstance, self, Game)
     
     
     self._GUIMenu.show()
Esempio n. 4
0
 def __init__(self, m, n, Game):
     self.size = [m,n]
     self.Game = Game
     
     self.screenSize = [800, 600]
     
     EventManager.subscribe("MoveFinished", self.onMoveFinished)
     
     # init Tkinter
     self.tkInstance = Tk()
     self.tkInstance.title("HexGame by Daniel, Jannis and Mats")
     self.tkInstance.after(1000, self.onUITick)
     
     self._GUIMenu = MenuView(self.tkInstance, self)
     self._GUIGameBoard = GameView(self.tkInstance, self, Game)
     
     
     self._GUIMenu.show()
Esempio n. 5
0
class HexGUI:
    
    def __init__(self, m, n, Game):
        self.size = [m,n]
        self.Game = Game
        
        self.screenSize = [800, 600]
        
        EventManager.subscribe("MoveFinished", self.onMoveFinished)
        
        # init Tkinter
        self.tkInstance = Tk()
        
        self._GUISplashScreen = SplashScreenView(self.tkInstance, self)
        self._GUIMenu = MenuView(self.tkInstance, self)
        self._GUIGameBoard = GameView(self.tkInstance, self, Game)
        
        
        self._GUIMenu.show()
        
    
    def mainloop(self):
        mainloop()
    
    def receiveMove(self, move):
        # do somehting
        return 0
    
    def setFirst(self):
        # todo
        return 0
    
    def won(self, winner):
        self._GUIMenu.won(winner)
    
    def onMoveFinished(self):
        
        # show the Swap Button
        if self.Game.moveCounter == 1:
            self.Game.HexGUI._GUIGameBoard.showPlayerSwap()
        
        # and hide if second hexagon is marked
        if self.Game.moveCounter == 2:
            self.Game.HexGUI._GUIGameBoard.hidePlayerSwap()
        
        self.draw()
    
    def draw(self):
        self._GUISplashScreen.draw()
        self._GUIMenu.draw()
        self._GUIGameBoard.draw()
    
    def openPage(self, page):
        
        if page == "splash":
            self._GUIMenu.hide()
            self._GUIGameBoard.hide()
            self._GUISplashScreen.show()
        elif page == "menu":
            self._GUIMenu.show()
            self._GUIGameBoard.hide()
            self._GUISplashScreen.hide()
        elif page == "game":
            self._GUIMenu.hide()
            self._GUIGameBoard.show()
            self._GUISplashScreen.hide()
Esempio n. 6
0
class HexGUI:
    def __init__(self, m, n, Game):
        self.size = [m, n]
        self.Game = Game

        self.screenSize = [800, 600]

        EventManager.subscribe("MoveFinished", self.onMoveFinished)

        # init Tkinter
        self.tkInstance = Tk()

        self._GUISplashScreen = SplashScreenView(self.tkInstance, self)
        self._GUIMenu = MenuView(self.tkInstance, self)
        self._GUIGameBoard = GameView(self.tkInstance, self, Game)

        self._GUIMenu.show()

    def mainloop(self):
        mainloop()

    def receiveMove(self, move):
        # do somehting
        return 0

    def setFirst(self):
        # todo
        return 0

    def won(self, winner):
        self._GUIMenu.won(winner)

    def onMoveFinished(self):

        # show the Swap Button
        if self.Game.moveCounter == 1:
            self.Game.HexGUI._GUIGameBoard.showPlayerSwap()

        # and hide if second hexagon is marked
        if self.Game.moveCounter == 2:
            self.Game.HexGUI._GUIGameBoard.hidePlayerSwap()

        self.draw()

    def draw(self):
        self._GUISplashScreen.draw()
        self._GUIMenu.draw()
        self._GUIGameBoard.draw()

    def openPage(self, page):

        if page == "splash":
            self._GUIMenu.hide()
            self._GUIGameBoard.hide()
            self._GUISplashScreen.show()
        elif page == "menu":
            self._GUIMenu.show()
            self._GUIGameBoard.hide()
            self._GUISplashScreen.hide()
        elif page == "game":
            self._GUIMenu.hide()
            self._GUIGameBoard.show()
            self._GUISplashScreen.hide()
Esempio n. 7
0
"""
main py file to run the game
"""
import sys
import pygame
sys.path.append('./Controller')
sys.path.append('./Model')
sys.path.append('./View')
from MainController import MainController
from GameController import GameController
from GameView import GameView
from MenuView import MenuView

if __name__ == '__main__':

    GameController(GameView())

    MainController(MenuView()).run()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
Esempio n. 8
0
class HexGUI:
    
    def __init__(self, m, n, Game):
        self.size = [m,n]
        self.Game = Game
        
        self.screenSize = [800, 600]
        
        EventManager.subscribe("MoveFinished", self.onMoveFinished)
        
        # init Tkinter
        self.tkInstance = Tk()
        self.tkInstance.after(1000, self.onUITick)
        
        self._GUISplashScreen = SplashScreenView(self.tkInstance, self)
        self._GUIMenu = MenuView(self.tkInstance, self)
        self._GUIGameBoard = GameView(self.tkInstance, self, Game)
        
        
        self._GUIMenu.show()
        
    # called on every GUI Clock tick
    def onUITick(self):
        
        if not self.Game._pause:
            # notify subscripts
            EventManager.notify("UITick")
        
        
        # redo this step every nth seconds
        self.tkInstance.after(200, self.onUITick)
    
    def mainloop(self):
        mainloop()
    
    def receiveMove(self, move):
        # do somehting
        return 0
    
    def setFirst(self):
        # todo
        return 0
    
    def won(self, winner):
        self._GUIMenu.won(winner)
    
    def onMoveFinished(self):
        
        # show the Swap Button
        if self.Game.moveCounter == 1:
            self.Game.HexGUI._GUIGameBoard.showPlayerSwap()
        
        # and hide if second hexagon is marked
        if self.Game.moveCounter == 2:
            self.Game.HexGUI._GUIGameBoard.hidePlayerSwap()
        
        self.draw()
    
    def draw(self):
        self._GUISplashScreen.draw()
        self._GUIMenu.draw()
        self._GUIGameBoard.draw()
    
    def openPage(self, page):
        
        if page == "splash":
            self._GUIMenu.hide()
            self._GUIGameBoard.hide()
            self._GUISplashScreen.show()
        elif page == "menu":
            self._GUIMenu.show()
            self._GUIGameBoard.hide()
            self._GUISplashScreen.hide()
        elif page == "game":
            self._GUIMenu.hide()
            self._GUIGameBoard.show()
            self._GUISplashScreen.hide()
            EventManager.notify("GameUILoaded")
Esempio n. 9
0
class HexGUI:
    def __init__(self, m, n, Game):
        self.size = [m, n]
        self.Game = Game

        self.screenSize = [800, 600]

        EventManager.subscribe("MoveFinished", self.onMoveFinished)

        # init Tkinter
        self.tkInstance = Tk()
        self.tkInstance.after(1000, self.onUITick)

        self._GUISplashScreen = SplashScreenView(self.tkInstance, self)
        self._GUIMenu = MenuView(self.tkInstance, self)
        self._GUIGameBoard = GameView(self.tkInstance, self, Game)

        self._GUIMenu.show()

    # called on every GUI Clock tick
    def onUITick(self):

        if not self.Game._pause:
            # notify subscripts
            EventManager.notify("UITick")

        # redo this step every nth seconds
        self.tkInstance.after(200, self.onUITick)

    def mainloop(self):
        mainloop()

    def receiveMove(self, move):
        # do somehting
        return 0

    def setFirst(self):
        # todo
        return 0

    def won(self, winner):
        self._GUIMenu.won(winner)

    def onMoveFinished(self):

        # show the Swap Button
        if self.Game.moveCounter == 1:
            self.Game.HexGUI._GUIGameBoard.showPlayerSwap()

        # and hide if second hexagon is marked
        if self.Game.moveCounter == 2:
            self.Game.HexGUI._GUIGameBoard.hidePlayerSwap()

        self.draw()

    def draw(self):
        self._GUISplashScreen.draw()
        self._GUIMenu.draw()
        self._GUIGameBoard.draw()

    def openPage(self, page):

        if page == "splash":
            self._GUIMenu.hide()
            self._GUIGameBoard.hide()
            self._GUISplashScreen.show()
        elif page == "menu":
            self._GUIMenu.show()
            self._GUIGameBoard.hide()
            self._GUISplashScreen.hide()
        elif page == "game":
            self._GUIMenu.hide()
            self._GUIGameBoard.show()
            self._GUISplashScreen.hide()
            EventManager.notify("GameUILoaded")
Esempio n. 10
0
    ActivePorts = ArduinoIO.SerialPorts()
    print(ActivePorts)
    # Get list of active ports containing the property "Arduino".
    for i in range(len(ActivePorts)):
        if (ActivePorts[i]):
            # Print out serial ports as menu items
            funcs[ActivePorts[i]] = lambda: startFlight(MV, ActivePorts[i])
    funcs["Quit"] = sys.exit  # exit for the port selection sub menu
    MV.Refresh(funcs.keys(), funcs)


def startFlight(MV, port):
    con = ArduinoIO.SerialConnection(port)
    MV.Stop()
    fv = FlightView(MV.Screen, con)
    fv.Run()


# Creating the screen
screen = pygame.display.set_mode((900, 400), 0, 32)

pygame.display.set_caption('Drone Control')
MV = MenuView(screen)
funcs = {"Connect to Arduino": lambda: findDevices(MV), "Quit": sys.exit}
try:
    MV.Refresh(funcs.keys(), funcs)
    MV.Run()
except SystemExit:  #Exception
    pygame.quit()
#fv = FlightView(screen, None)
#fv.run()