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 __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
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])
def main(): app = QtGui.QApplication(sys.argv) game = GameModel.Game() fenetre = Window(game) sys.exit(app.exec_())
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()
#! /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()
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()
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
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
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()
def main(): view = View() gameModel = GameModel() gameModel.view = view
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