Ejemplo n.º 1
0
    def setViews(self):
        width = self.ref_engine.screen.get_width()
        height = self.ref_engine.screen.get_height()

        self.gameView = GameView(
            self.ref_engine.screen,
            pygame.Rect(10, 10, width * 3 / 4 - 15, height - 20), self.player,
            self.ref_engine)
        self.scoreView = ScoreView(
            self.ref_engine.screen,
            pygame.Rect(width * 3 / 4 + 5, 10, width / 4 - 15, height - 20),
            self.player, self.ref_engine)
Ejemplo 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()
Ejemplo n.º 3
0
class GameController():
    """
        (MVC) Class that control model and view

    """
    
    def __init__(self):
        self.game = GameModel()
        self.view = GameView(self)
        self.main_loop = None

    def handle_input(self, key):
        if key == 'f12':
            self.confirm_exit()
        else:
            pass

    def confirm_exit(self):
        self.game.exit_request()
        if self.view.confirm_exit():
            raise urwid.ExitMainLoop()

    def refresh(self, _loop, _data):
        self.view.refresh_view()
        self.main_loop.draw_screen()
        self.main_loop.set_alarm_in(1, self.refresh)

    def get_game_mode(self):
        return self.game.get_game_mode()

    def main(self):


        self.main_loop = urwid.MainLoop(self.view.layout, self.view.palette, unhandled_input=self.handle_input)
        self.main_loop.set_alarm_in(0, self.refresh)
        self.main_loop.run()
Ejemplo 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._GUISplashScreen = SplashScreenView(self.tkInstance, self)
     self._GUIMenu = MenuView(self.tkInstance, self)
     self._GUIGameBoard = GameView(self.tkInstance, self, Game)
     
     
     self._GUIMenu.show()
Ejemplo n.º 5
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()
Ejemplo n.º 6
0
from GameView import GameView
from GameState import GameState
import functions

gamestate = GameState(player=0)
gameview = GameView(gamestate)
enumerations = gameview.enumerate(gamestate)
print len(enumerations)
functions.viewEnumerationNum(enumerations[0])

for i in range(1, 4):
    for j in range(6):
        gamestate.cards[i][j]['rank'] = 'unclear'
gamestate.cards[1][0] = {'rank': 0, 'color': gamestate.cards[1][0]['color']}
gameview.update(gamestate)
print len(gameview.enumerations)
functions.viewEnumerationNum(gameview.enumerations[0])
Ejemplo n.º 7
0
 def __init__(self):
     self.game = GameModel()
     self.view = GameView(self)
     self.main_loop = None
Ejemplo n.º 8
0
class GameScreen(Screen):

    player = Player((400, 400))

    gameView = None
    scoreView = None

    def __init__(self, _engine):
        super(GameScreen, self).__init__(_engine)
        self.setViews()

    def onScreenAvtivation(self):
        self.newGame()

    def newGame(self):
        self.player.rect.move_ip(
            self.gameView.rect.x + self.gameView.rect.width / 2 -
            self.player.rect.x, self.gameView.rect.y +
            self.gameView.rect.height - 100 - self.player.rect.y)
        self.player.lives = 10
        self.player.score = 0
        self.player.level = 1
        self.gameView.newGame()

    # ustawia oddzielne widoki na ekranie gry (widok rozgrywki i informacji dodatkowych)
    def setViews(self):
        width = self.ref_engine.screen.get_width()
        height = self.ref_engine.screen.get_height()

        self.gameView = GameView(
            self.ref_engine.screen,
            pygame.Rect(10, 10, width * 3 / 4 - 15, height - 20), self.player,
            self.ref_engine)
        self.scoreView = ScoreView(
            self.ref_engine.screen,
            pygame.Rect(width * 3 / 4 + 5, 10, width / 4 - 15, height - 20),
            self.player, self.ref_engine)

    def render(self, _screen):
        _screen.fill((0, 0, 0))
        self.gameView.render()
        self.renderBlackBars(_screen)
        self.scoreView.render()
        pygame.display.flip()

    def onEvent(self, _event):
        self.gameView.onEvent(_event)

    def onTick(self, _clock):
        super(GameScreen, self).onTick(_clock)
        self.gameView.onTick(_clock)

    # renderuje czarne prostokaty na okolo widoku rozgrywki, aby przeciwnicy mogli sie za nimi "chowac"
    def renderBlackBars(self, _screen):
        screenWidth = _screen.get_width()
        screenHeight = _screen.get_height()
        viewWidth = self.gameView.rect.width
        viewHeight = self.gameView.rect.height
        viewX = self.gameView.rect.x
        viewY = self.gameView.rect.y

        rectL = pygame.Rect(0, 0, viewX, _screen.get_height())
        rectR = pygame.Rect(viewX + viewWidth, 0,
                            screenWidth - viewX - viewWidth, screenHeight)
        rectU = (0, 0, screenWidth, viewY)
        rectD = (0, viewY + viewHeight, screenWidth,
                 screenHeight - viewY - viewHeight)

        pygame.draw.rect(_screen, (0, 0, 0), rectL)
        pygame.draw.rect(_screen, (0, 0, 0), rectR)
        pygame.draw.rect(_screen, (0, 0, 0), rectU)
        pygame.draw.rect(_screen, (0, 0, 0), rectD)
Ejemplo n.º 9
0
 def on_mouse_press(self, x, y, button, modifiers):
     game_view = GameView(self.width,self.height, self.window, 1, 0)
     self.window.show_view(game_view)
Ejemplo n.º 10
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()
Ejemplo n.º 11
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()
Ejemplo n.º 12
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")
Ejemplo n.º 13
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")
Ejemplo n.º 14
0
 def on_key_press( self, key, key_modifiers ):
     game_view = GameView()
     game_view.setup()
     self.window.show_view( game_view )
Ejemplo n.º 15
0
from PyQt5.QtWidgets import QApplication
import sys

from Game import Game
from GameView import GameView
from GameScene import GameScene
from UnitCreatingController import UnitCreatingController

if __name__ == '__main__':
    app = QApplication(sys.argv)
    game = Game()
    game_scene = GameScene()
    controller = UnitCreatingController()
    game.set_scene(game_scene)

    view = GameView()
    view.set_scene(game_scene)

    game_scene.tile_clicked.connect(controller.tile_clicked)
    view.unit_changed.connect(controller.changed_unit_type)
    game.unit_added_in_map.connect(view.update_after_adding_unit)
    game.turn_changed.connect(view.update_after_turn_change)

    sys.exit(app.exec_())
Ejemplo n.º 16
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()
Ejemplo n.º 17
0
from GameView import GameView
from Game import Game

#Constante
boat_type_list=[5,4,4,3,3,3,2,2,2,2,1,1,1,1,1]
grid_size = 20

#Set up
game = Game(grid_size)
game.set_up(boat_type_list)
display = GameView(game)

#Game
display.display_grid()
Ejemplo n.º 18
0
 def render_game1(self, button):
     self.root_view.window.remove(self.view.vbox)
     self.view = GameView(self.root_view.window)
     self.controller = GameController(self.view)