示例#1
0
 def __init__(self):
     self.gameModel = GameModel(0)
     self.aiPlayer = AIPlayer(Figures.circle, self.gameModel)
     self.play = Board(self.canvasClickCallback, self.startNewGame,
                       self.aiPlayer.setDifficultyToEasy,
                       self.aiPlayer.setDifficultyToHard,
                       self.gameModel.playFieldWidth,
                       self.gameModel.playfieldHeight)
     self.aiTurn = False
示例#2
0
    def __init__(self):
        self.model = GameModel()
        root = Tk()
        root.minsize(width=900, height=650)
        root.title("Word Challenge")
        root.configure(background='#23B6C0')
        root.resizable(0, 0)
        self.root = root

        self.view = GameStartView(root)
        self.score = 0
        self.partial_score = 0  # score earned from current key word
        self.time_remaining = 120
        self.view.register_controller(self)
        self.view.pack()
def get_newgame(mode):
    """returns the game scene"""
    scene = Scene()
    collision_manager_Ennemi = cm.CollisionManagerBruteForce()
    collision_manager_Player = cm.CollisionManagerBruteForce()

    if mode == 0:
        spritedir = 'Sprites'
    else:
        spritedir = 'Polemique'
    
     # view
    arme = Arme("Simple", 20, spritedir + '/Armes/missile3.png')
    sprite = cocos.sprite.Sprite(spritedir + '/Ship2.png')
    shield = Shield(50, 100, spritedir)
    bombSpe = Bomb(100, 120, 100, collision_manager_Ennemi)
    vaisseau = Vaisseau("Default", 100, sprite, arme, collision_manager_Player, collision_manager_Ennemi, shield, bombSpe)
    hud = HUD()
    view = GameView(hud, vaisseau, collision_manager_Player)
    Star = Backgroundstar(30, 60, spritedir)

    ennemi_wave = Ennemi_wave(10,200,scene, collision_manager_Player, collision_manager_Ennemi, spritedir)
    
    #model
    model = GameModel()
    # controller
    ctrl = GameCtrl(model, view)
    # set controller in model
    model.set_controller( ctrl )
    
    scene.add( view, z=1, name="view" )
    scene.add( ctrl, z=1, name="controller" )
    scene.add( hud, z=3, name="hud" )
    scene.add( shield, z = 3 , name = "Shield")
    scene.add( bombSpe, z = 3 , name = "Bombe")
    scene.add( vaisseau , z=2, name="vaisseau" )
    scene.add( ennemi_wave, z = 2, name = "ennemis")
    scene.add( BackgroundLayer(spritedir), z=0, name="background" )
    scene.add( Star,z = 0, name = "Stars")

    


    return scene
def get_newgame():
	'''returns the game scene'''
	scene = Scene()
	collision_manager = cm.CollisionManagerBruteForce()
	
	 # view
	arme = Arme("Triple", 20, 'Sprites/Armes/missile1.png')
	sprite = cocos.sprite.Sprite('Sprites/Ship_moche.png')
	vaisseau = Vaisseau("Default", 100, sprite, arme, collision_manager);
	hud = HUD()
	view = GameView(hud, vaisseau, collision_manager)
	Star = BackgroundStar()
	#shield = Shield();
	#ennemi = EnnemiCollidableSprite(sprite,100,100,50)
	
	#model
	model = GameModel()
	# controller
	ctrl = GameCtrl(model, view)
    # set controller in model
	model.set_controller( ctrl )
	
	scene.add( view, z=1, name="view" )
	scene.add( ctrl, z=1, name="controller" )
	scene.add( hud, z=3, name="hud" )
	scene.add( vaisseau , z=2, name="vaisseau" )

	#scene.add( shield, z-2, name="TestShield")
	
	scene.add( BackgroundLayer(), z=0, name="background" )
	Scene.add(Star, z=0, name="Background_Stars")

	#background.do(Repeat( Reverse(scale) + scale ) )
	

	return scene
示例#5
0
    def victoryStuffs(self):
        self._status = VICTORY
        self.turnLbl[self.ind].text = 'Victory !'
        self.player[self.ind].makeShipsVisible()
        self.player[not self.ind].makeShipsVisible()

        pXY = self.player[self.ind].xy
        pWH = self.player[self.ind].wh
        wh = [reduceTo(pWH[0], 50), self.topPanelXY[1] - pXY[1] - pWH[1] - 10]
        xy = [(glb.wh[0] - wh[0]) // 2, pXY[1] + pWH[1] + 5]

        self.mainMenuButton = GameModel.GameModel(xy,
                                                  wh, [1, 1],
                                                  self.batch,
                                                  gPlayer,
                                                  mouseOverAud=True)
        mXY = self.mainMenuButton.xy
        mWH = self.mainMenuButton.wh

        mdl.quad(mXY,
                 mWH, [0, 159, 217, 180],
                 self.batch,
                 gFullQuad,
                 blend=True)
        mdl.quad([0, 0],
                 glb.wh, [0, 0, 0, 150],
                 self.batch,
                 gFullQuad,
                 blend=True)

        wh[1] = reduceTo(wh[1], 85)
        mdl.label(xy,
                  wh,
                  'Main Menu',
                  size=49,
                  batch=self.batch,
                  group=gHeaderText,
                  xyPercInside=[5, 20])
示例#6
0
def main():
    app = QtGui.QApplication(sys.argv)
    game = GameModel.Game()
    fenetre = Window(game)
    sys.exit(app.exec_())
示例#7
0
class GameController:
    def __init__(self):
        self.model = GameModel()
        root = Tk()
        root.minsize(width=900, height=650)
        root.title("Word Challenge")
        root.configure(background='#23B6C0')
        root.resizable(0, 0)
        self.root = root

        self.view = GameStartView(root)
        self.score = 0
        self.partial_score = 0  # score earned from current key word
        self.time_remaining = 120
        self.view.register_controller(self)
        self.view.pack()

        # Play background music
        #self.music_player = pyglet.media.load('Lacrimosa.mp3')
        #self.music_player.play()

    # This functions removes the start view, creates a new game and renders a new main view
    def create_game(self):
        main_view = GameMainView(self.root)
        main_view.register_controller(self)
        self.view.destroy()
        self.view = main_view
        self.view.create_labels()
        self.send_curKey()
        self.view.pack()
        self.start_timer()

    # Return the current key of the game
    def get_curKey(self):
        return self.model.curKey

    # Display the current key of the game on the view
    def send_curKey(self):
        self.view.display_curKey(self.get_curKey())

    # This function plays a word to the model
    def play_word(self, word):
        position = 0  # the position of the word in the corresponding sorted list, if it is in the list
        if len(word) == 3:
            if word in self.model.three_fixed:
                position = self.model.three_fixed.index(word)
        elif len(word) == 4:
            if word in self.model.four_fixed:
                position = self.model.four_fixed.index(word)
        elif len(word) == 5:
            if word in self.model.five_fixed:
                position = self.model.five_fixed.index(word)
        elif len(word) == 6:
            if word in self.model.six_fixed:
                position = self.model.six_fixed.index(word)

        # Increase the score and the time remaining
        word_score = self.model.play_word(word)
        if word_score > 0:
            print(self.model.three)
            if word_score > 30:
                self.increase_time(word_score // 10)
            self.view.type_character(word, position)
            self.increase_score(word_score)
        elif word_score == 0:  # replace later with other feedback
            print("Word has already been played.")
        else:
            print("Invalid word")  # replace later with other feedback
        self.view.reset_input()
        return word_score

    # This function increases the score by the amount specified by word_score,
    # and then updates the score in the field
    def increase_score(self, word_score):
        self.score += word_score
        self.partial_score += word_score
        if word_score == 60:  # if the 6-letter word is found, the player can get the next key word
            self.partial_score += 200
        self.view.update_score()

    # This function increases the time remaining by the amount specified by the parameter time,
    # and then updates the time in the field
    def increase_time(self, time):
        self.time_remaining += time
        self.view.display_time(self.time_remaining)

    # This function starts the timer
    def start_timer(self):
        if self.time_remaining <= 0:
            self.view.display_time(-1)
        else:
            self.view.display_time(self.time_remaining)
            self.time_remaining -= 1
            self.view.master.after(1000, self.start_timer)

    # This function generates and displays a new key for the game
    def get_new_key(self):
        # The player can only get a new key word after scoring at least 200 points from the current key word
        if self.partial_score >= 200:
            self.partial_score = 0
            self.model.get_next_key()
            self.view.reset_input()  # reset the input area on the game view
            self.send_curKey()  # display the new key on the game view
            self.view.create_labels(
            )  # reset the labels that hold the words formed
        else:
            print(
                "You need to score 200 points from the current key word before you can get another key word."
            )
            print("Your current partial score is: " + str(self.partial_score))

    # This function ends the current game, removes the main view, and renders the end view
    def end_game(self):
        print("The game ended.")
        end_view = GameEndView(self.view.master, self)
        self.view.destroy()
        self.view = end_view
        self.view.tkraise()
示例#8
0
#! /usr/bin/python3

import pygame
import GameView
import GameController
import GameMenu
import GameModel

if __name__ == "__main__":
    pygame.mixer.pre_init(44100, -16, 2, 4096)
    pygame.mixer.init()
    pygame.init()
    gameModel = GameModel.GameModel()
    gameMenu = GameMenu.GameMenu()
    gameView = GameView.GameView(gameMenu.screen, gameModel)
    gameController = GameController.GameController(gameView, gameMenu)
    gameController.main_menu()
示例#9
0
import ViewCube

if __name__ == '__main__':
    # Set up controllers:
    ca = ControllerAggregator()
    cKeyboard = KeyboardController.KeyboardController(ca)
    cLeap = None

    if (LeapController.isLeapSupported()):
        cLeap = LeapController.LeapController(ca)
        dbg("Leap is supported :-)")
    else:
        dbg("Leap is NOT supported :-(")

    # Set up Model:
    model = GameModel.Model(4, ca)

    if (len(sys.argv) == 2 and sys.argv[1] == "test"):  # Load sample game
        model.playing_field = model.testing_field

    # Set up Panda:
    app = ViewCube.ViewCube(ca, model)
    #app = ViewBase.PandaApp(ca)

    model.setViewComponent(app)

    # Register keyboard controller with Panda:
    cKeyboard.setPandaSBase(app)

    app.run()
示例#10
0
class GameController:
    def __init__(self):
        self.gameModel = GameModel(0)
        self.aiPlayer = AIPlayer(Figures.circle, self.gameModel)
        self.play = Board(self.canvasClickCallback, self.startNewGame,
                          self.aiPlayer.setDifficultyToEasy,
                          self.aiPlayer.setDifficultyToHard,
                          self.gameModel.playFieldWidth,
                          self.gameModel.playfieldHeight)
        self.aiTurn = False

    def startNewGame(self):
        startPlayer = randint(0, 1)
        self.gameModel.resetGame(startPlayer)
        self.play.resetBoard()
        self.aiTurn = startPlayer
        self.executeAITurn()

    def executeAITurn(self):
        if self.gameModel.checkIfGameOver() or not self.aiTurn:
            return False

        self.aiPlayer.executeTurn()
        self.play.drawSigns(self.gameModel.currentField,
                            self.gameModel.currentPlayer)

        self.gameModel.checkIfCurrentPlayerWon()
        self.gameModel.changeCurrentPlayer()
        self.aiTurn = False

    def canvasClickCallback(self, event):
        if self.aiTurn or self.gameModel.checkIfGameOver():
            return False

        x = event.x
        y = event.y
        field = [x, y]

        if self.gameModel.executePlayerTurn(field[0], field[1]):
            self.play.drawSigns(self.gameModel.currentField,
                                self.gameModel.currentPlayer)
            self.gameModel.checkIfCurrentPlayerWon()
            self.gameModel.changeCurrentPlayer()
            self.aiTurn = True
            self.executeAITurn()

        return True
示例#11
0
pygame.init()

# screen
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
area = pygame.Rect(-BORDER_SIZE, -BORDER_SIZE, SCREEN_WIDTH + 2 * BORDER_SIZE,
                   SCREEN_HEIGHT + 2 * BORDER_SIZE)

# text
myFont30 = pygame.font.SysFont(None, 30)
myFont200 = pygame.font.SysFont(None, 200)
myFont100 = pygame.font.SysFont(None, 100)
pygame.display.set_caption("Asteroids")

mouseSprite = pygame.sprite.Sprite()

game = GameModel.GameModel(area, asteroidsNumber=ASTEROID_NUMBER)

player = AIPlayer.AIPlayer(game, "player")
clock = pygame.time.Clock()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN
                                         and event.key == pygame.K_ESCAPE):
            sys.exit()
        if game.isOver and (event.type == pygame.KEYDOWN
                            and event.key == pygame.K_RETURN):
            game.restart()
        if game.isOver and event.type == pygame.MOUSEBUTTONDOWN:
            game.restart()

    # update gameModel
示例#12
0
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.model = GameModel()
        self.master = parent
        self.controller = None

        # Color values declared as constants
        self.COLOR_RANDOM_EMPTY = '#F8F8FF'  # background color of the labels for the keyword
        self.COLOR_ENTER_EMPTY = '#FFEBCD'  # background color of the labels for the letters entered
        self.COLOR_WORD_EMPTY = '#CCFFFF'  # background color of the labels for the keyword

        self.COLOR_RANDOM_FILLED = '#008B8B'
        self.COLOR_ENTER_FILLED = 'pink'
        self.COLOR_WORD_FILLED = '#191970'
        self.FS = 14  # font size of the letters

        #main frame
        s = Style()
        s.theme_use('alt')

        self.filename = Image.open('snowflakes.jpg')
        self.resized = self.filename.resize(
            (900, 650),
            Image.ANTIALIAS)  # resized image-gets the size of the whole frame
        self.resized2 = ImageTk.PhotoImage(
            self.resized)  #creates the photo image from the file
        self.back = Label(self, image=self.resized2,
                          anchor=CENTER)  #sets the image
        self.back.place(x=0, y=0, relheight=1, relwidth=1)
        self.back.pack(fill=BOTH, expand=YES)

        # array of labels for letters of the key word
        self.randomlet = []
        self.randomlet = self.labels(self, 0.05, 6, 500, 80, 150, 70,
                                     self.COLOR_RANDOM_FILLED, 25)

        # array of labels for letters entered
        self.enteredlet = []
        self.enteredlet = self.labels(self, 0.05, 6, 400, 80, 150, 70,
                                      self.COLOR_ENTER_EMPTY, 25)

        # LABELS ON VIEW
        #score
        self.score = Label(self,
                           text='Score: 0',
                           foreground='#223245',
                           background='#7dd4e4',
                           font=('Symbol', 22),
                           anchor=CENTER)
        self.score.pack()
        self.score.place(x=100,
                         y=525,
                         relwidth=0.13,
                         relheight=0.07,
                         anchor=CENTER)

        #timer
        self.timer = Label(self,
                           text="2:00",
                           background='#2929a3',
                           foreground='#ffffcc',
                           font=('Symbol', 22),
                           anchor=CENTER)
        self.timer.pack()
        self.timer.place(x=800,
                         y=525,
                         relwidth=0.13,
                         relheight=0.07,
                         anchor=CENTER)

        #feedback
        self.feedback = Label(self,
                              text='Some Feedback',
                              foreground='#223246',
                              background='#7dd4e4',
                              font=('Symbol', 16),
                              anchor=CENTER)
        self.feedback.pack()
        self.feedback.place(x=100,
                            y=430,
                            relwidth=0.17,
                            relheight=0.05,
                            anchor=CENTER)

        # BUTTONS ON VIEW

        # bstyle = Style()
        # bstyle.configure('B.TButton',background = 'red')

        # Enter button
        #  self.enter=Button(self, text = "enter", width = 6)
        #  self.enter.pack()
        #  self.enter.place(x = 400, y = 600, anchor = CENTER)
        #  self.enter.configure(style='B.TButton')

        # Shuffle button
        #  bstyle.configure('green.TButton',background = 'green')
        # self.shuffle=Button(self, text = "shuffle", width = 6)
        #self.shuffle.pack()
        #self.shuffle.configure(style = 'green.TButton')
        #self.shuffle.place(x = 500, y = 600, anchor = CENTER)

        # New button
        # self.getnew = Button(self, text = "New", width = 6)
        #      #   self.getnew = Button(self, text = "New", width = 6, command = self.end_game)
        # self.getnew.pack()
        # self.getnew.place(x = 600, y = 600, anchor = CENTER)

        # Start button
        # self.start = Button(self, text = "Start", width = 6)
        # self.start.pack()
        # self.start.place(x = 300, y = 600, anchor = CENTER)

        # fields that hold labels for words of each length
        self.words3 = []
        self.words4 = []
        self.words5 = []
        self.words6 = []

        # binding keys to buttons
        self.master.bind("<Return>", self.enter_function)
        self.master.bind("<space>", self.shuffle_function)
        self.master.bind("<BackSpace>", self.backspace_function)
        self.master.bind("<Tab>", self.get_new_key)
        self.master.bind("<Key>", self.key)
        self.pack()
示例#13
0
def main():
    view = View()
    gameModel = GameModel()
    gameModel.view = view
示例#14
0
import cocos
from model/game import GameModel
from view/game import GameModel
from controller/game import GameController

def get_scene()
	scene = cocos.scene.Scene()

	model = GameModel()
	view = GameView(model)
	controller = GameController(model)

	return scene