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)
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 __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 __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()
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()
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()
""" 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()
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")
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")
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()