Example #1
0
	def _doPost(self, dataObject):

		if "name" and "game" and "photo" in dataObject:
			try:
				GameMapper = GM.GameMapper()

				if dataObject["game"] is not None and str(dataObject["game"]).isdigit():
					# Get the user by ID
					game = GameMapper.find(str(dataObject["game"]))

					if game is None:
						raise NotFound("The specified player type does not exist.")
				else:
					raise BadRequest("Argument provided for this player type is invalid.")

				print "GAME GOOD "+str(game)
				PlayerMapper = PM.PlayerMapper()

				player = Player()

				player.setName(dataObject["name"])
				player.setGame(game)
				player.setPhoto(dataObject["photo"])
				player.setUser(self.user)

				PlayerMapper.insert(player)
				print "PLAYER GOOD "+str(player)

				GameMapper.joinGame(self.user, player)

				return self._response(player.dict(3), CODE.CREATED)
				
			except mdb.DatabaseError, e:
				raise ServerError("Unable to search the user database (%s)" % e.args[1])
Example #2
0
def add_member():
    """ Adds a member to a team """
    content = request.json
    try:
        if content['type'] == 'manager':
            member1 = Manager(content['f_name'], content['l_name'], content['address'], content['phone'],
                             content['position'], content['salary'], content['type'])
            num = member_mgr.add_member(member1)
            response = app.response_class(
                response="New member ID: %s" % (str(num)),
                status=200
            )
        elif content['type'] == 'player':
            member1 = Player(content['f_name'], content['l_name'], content['address'], content['phone'],
                             content['position'],
                             content['jersey_number'], content['wage'], content["type"])
            num = member_mgr.add_member(member1)
            response = app.response_class(
                response="New member ID: %s" % (str(num)),
                status=200
            )
        else:
            raise ValueError('JSON object invalid')

    except ValueError as e:
        response = app.response_class(
            response=str(e),
            status=400
        )
    return response
Example #3
0
def update_member(member_id):
    """ Updates a member on a team """
    content = request.json

    try:
        if content["type"] == "manager":
            member1 = Manager(content['f_name'], content['l_name'], content['address'],
                              content['phone'],
                              content['position'], content['salary'], content["type"])
            member1.member_id = member_id
            member_mgr.update(member1)
            response = app.response_class(
                response="ok",
                status=200
            )
            return response
        elif content["type"] == "player":
            member1 = Player(content['f_name'], content['l_name'], content['address'],
                             content['phone'], content['position'], content['jersey_number'], content['wage'], content["type"])
            member1.member_id = member_id
            member_mgr.update(member1)
            response = app.response_class(
                response="ok",
                status=200
            )
            return response
    except KeyError:
        print("Wrong JSON format")

    except ValueError as e:
        response = app.response_class(
            response=str(e),
            status=400
        )
        return response
Example #4
0
 def get_players_list(self, tournament):
     """Get the tournament's players list from DB"""
     players = list()
     for player in tournament["players"]:
         player = Player(player["name"], player["first_name"],
                         player["birthday"], player["gender"],
                         player["elo"], player["score"])
         players.append(player)
     return players
 def enter_players(self):
     """Add 8 players to tournament's players list getting informations
     from the user from player_view"""
     for i in range(8):
         name = get_player_name()
         first_name = get_player_first_name()
         birthday = get_player_birthday()
         gender = get_player_gender()
         elo = get_player_elo()
         player = Player(name, first_name, birthday, gender, elo)
         self.tournament.add_player(player)
Example #6
0
    def test_get_member(self):
        """ 030A - valid Soccer Team member return by id """
        manager = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager")
        player = Player('P1.F NAME', 'P1.L NAME', 'P1.ADDR', 'P1.PHONE', 'P1.POSITION', 41, 50.1, 'player')

        id = self.member_mgr.add_member(manager)
        temp_student = self.member_mgr.get_member(id)
        self.assertEqual(manager.member_id, temp_student.member_id)

        id = self.member_mgr.add_member(player)
        temp_student = self.member_mgr.get_member(id)
        self.assertEqual(player.member_id, temp_student.member_id)
Example #7
0
    def test_add_member(self):
        """ 020A - Successfully add member to soccer team """

        manager = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager")
        player = Player('P1.F NAME', 'P1.L NAME', 'P1.ADDR', 'P1.PHONE', 'P1.POSITION', 41, 50.1, 'player')

        self.member_mgr.add_member(manager)
        all_points = self.member_mgr.get_team_members()
        self.assertEqual(len(all_points), 1)

        self.member_mgr.add_member(player)
        all_points = self.member_mgr.get_team_members()
        self.assertEqual(len(all_points), 2)
Example #8
0
    def get_member(self, member_id):
        """ Returns the member object that matches the given ID """
        Player._validate_int_input('Member Id', member_id)

        session = self._db_session()

        existing_member = session.query(Player).filter(
            Player.member_id == member_id).first()
        existing_member2 = session.query(Manager).filter(
            Manager.member_id == member_id).first()
        print(existing_member)
        print(existing_member2)

        session.close()
        if existing_member is None and existing_member2 is None:
            raise ValueError('Member does not exist')

        if existing_member.type == 'player':
            return existing_member
        elif existing_member2.type == 'manager':
            return existing_member2
        else:
            raise ValueError('Member does not exist')
Example #9
0
    def test_get_team_members(self):
        """ 040A - Successful Soccer Team List Member Retrieval """

        manager = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager")
        player = Player('P1.F NAME', 'P1.L NAME', 'P1.ADDR', 'P1.PHONE', 'P1.POSITION', 41, 50.1, 'player')

        members = self.member_mgr.get_team_members()
        self.assertEqual(len(members), 0)

        self.member_mgr.add_member(manager)
        self.member_mgr.add_member(player)

        students = self.member_mgr.get_team_members()
        self.assertEqual(len(students), 2)
Example #10
0
    def test_delete_member(self):
        """ 070A - Successfully delete member in soccer team"""
        manager = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager")
        player = Player('P1.F NAME', 'P1.L NAME', 'P1.ADDR', 'P1.PHONE', 'P1.POSITION', 41, 50.1, 'player')

        self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list")
        self.member_mgr.add_member(player)

        self.assertEqual(len(self.member_mgr.get_team_members()), 1, "There should be 1 member in the list")
        self.member_mgr.delete(player.member_id)

        self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list")

        """ Manager delete """
        self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list")
        self.member_mgr.add_member(manager)

        self.assertEqual(len(self.member_mgr.get_team_members()), 1, "There should be 1 member in the list")
        self.member_mgr.delete(manager.member_id)

        self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list")
Example #11
0
 def LoadConfigPlayer(player):
     conf = configparser.ConfigParser()
     conf.read(r"..\config\player.config")
     player = Player(conf.getint(player, 'player_strength'),
                     conf.getint(player, 'player_agile'),
                     conf.getint(player, 'player_intelligence'),
                     conf.getint(player, 'player_physique'),
                     conf.get(player, 'player_name'),
                     conf.getint(player, 'player_blood'),
                     conf.getint(player, 'player_mana'),
                     conf.getint(player, 'player_attack'),
                     conf.getint(player, 'player_speed'),
                     conf.getint(player, 'player_criticalChance'),
                     conf.getint(player, 'player_defenses'),
                     conf.getint(player, 'player_experience'),
                     conf.getint(player, 'player_level'))
     # 初始化
     player.attack = 0
     player.blood = 0
     player.mana = 0
     player.speed = 0
     player.defenses = 0
     return player
    def deserializer(self, tournament):
        """Deserializes tournament with DB informations
        and recreats tournament, round, match and player in class instances.
        Update player's score and opponents list"""
        self.tournament = Tournament(
            name=tournament["name"],
            place=tournament["place"],
            start=tournament["start"],
            end=tournament["end"],
            time_control=tournament["time_control"],
        )
        for player in tournament["players"]:
            new_player = Player(player["name"], player["first_name"],
                                player["birthday"], player["gender"],
                                player["elo"])
            new_player.set_score(player["score"])
            new_player.set_opponents(player["opponents"])
            self.tournament.add_player(new_player)

        for round in tournament["rounds"]:
            new_round = Round(round["number"], round["start"], round["end"])
            for match in round["matchs"]:
                player1 = self.get_player(match["player1"]["name"],
                                          match["player1"]["first_name"],
                                          match["player1"]["birthday"],
                                          match["player1"]["gender"],
                                          match["player1"]["elo"],
                                          match["player1"]["score"])
                player2 = self.get_player(match["player2"]["name"],
                                          match["player2"]["first_name"],
                                          match["player2"]["birthday"],
                                          match["player2"]["gender"],
                                          match["player2"]["elo"],
                                          match["player2"]["score"])
                new_match = Match(player1, player2)
                new_match.set_score(match["score_player1"],
                                    match["score_player2"])
                new_round.add_reload_match(new_match)
            self.tournament.add_round(new_round)
Example #13
0
def launch():

    # Creation d'un joueur au centre de la map
    player1 = Player(1, int(1024 / 2) - 40, int(768 / 2) - 40, 100)
    player_position = (player1.get_x(), player1.get_y())
    quantitefuel = player1.get_fuel()

    #Creation d'une game
    game1 = Game(0, 0)  # score et time
    #Creation plateforme
    plateformes = game1.generatePlateformes().copy()
    #Creation objet
    powerups = game1.generate_objet().copy()

    # Test des evenements
    pygame.init()
    screen = pygame.display.set_mode((1024, 768), RESIZABLE)

    # Background
    fond = pygame.image.load(
        "../Model/data/map_background.png").convert()  #map jusqu'a 10000px
    defilmap = -14000
    # Chargement et collage du personnage
    # convert alpha pour la transparance du png
    perso = pygame.image.load(
        "../Model/data/cosmonaut-idle-100.png")  #image du perso de base
    background_objects = [[0.25, [120, 10, 70,
                                  400]], [0.25, [280, 30, 40, 400]],
                          [0.5, [30, 40, 40, 400]], [0.5, [130, 90, 100, 400]],
                          [0.5, [300, 80, 120, 400]]]
    ## ici variables pour retenir en mémoire l’état des touches

    #variable deplacement
    droite = False
    gauche = False
    haut = False
    bas = False
    fall = True
    boost = False
    fuelHit = False
    niveauFall = 0
    fallspeed = game1.get_diffculty_set()

    listekeypressed = []

    fall = True  # de base le perso chute

    #timeinsecond = int(time.time() % 60)

    timefuel = 0
    nbboucle = 0
    boucle = 0
    true_scroll = [0, 0]
    launched = True
    powerup = False  #powerup actif ou non
    propulsion = pygame.image.load("../Model/data/air_propulsion.png")
    estSurPlateforme = False
    new_game = True

    def crash(screen):
        crash = True
        while crash:
            text = pygame.font.Font('freesansbold.ttf', 75)
            carb = text.render('Game Over', True, (0, 0, 0))
            screen.blit(carb, (295, 300))
            for event in pygame.event.get():
                # print(event)
                if event.type == pygame.KEYDOWN:
                    crash = False
            pygame.display.flip()

    while launched:
        if (new_game):
            time_var = T.time()
            new_game = False
        fall = True  # Pour le faire rechuter quand il quitte la plateforme
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                launched = False
            elif event.type == pygame.KEYDOWN:  #Si une touche est enfoncée
                listekeypressed.append(
                    event.key)  #insertion des touches enfoncées dans la liste
                if pygame.K_RIGHT in listekeypressed:
                    perso = pygame.image.load(
                        "../Model/data/cosmonaut-idle2-100.png")
                    #Sprite droit
                    droite = True
                    if estSurPlateforme == True:
                        perso = pygame.image.load(
                            "../Model/data/cosmonaut-march-100.png")
                elif pygame.K_LEFT in listekeypressed:
                    perso = pygame.image.load(
                        "../Model/data/cosmonaut-idle-100-gauche.png")
                    gauche = True
                    if estSurPlateforme == True:
                        perso = pygame.image.load(
                            "../Model/data/cosmonaut-march-100-gauche.png")
                if pygame.K_UP in listekeypressed:
                    perso = pygame.image.load(
                        "../Model/data/cosmonaut-jump-wind-100-gauche.png")
                    haut = True
                    if estSurPlateforme == False:
                        fall = True
                        if pygame.K_LEFT in listekeypressed:
                            perso = pygame.image.load(
                                "../Model/data/cosmonaut-idle-100-gauche.png")
                        elif pygame.K_RIGHT in listekeypressed:
                            perso = pygame.image.load(
                                "../Model/data/cosmonaut-idle2-100.png")
                        else:
                            perso = pygame.image.load(
                                "../Model/data/cosmonaut-jump-100.png")

                elif pygame.K_DOWN in listekeypressed:
                    perso = pygame.image.load(
                        "../Model/data/cosmonaut-jump-100.png")
                    bas = True

            elif event.type == pygame.KEYUP:  #Si une touche est relachée
                if len(listekeypressed) != 0:
                    listekeypressed.remove(
                        event.key)  ## supression de la touche relâchée
                if event.key == pygame.K_RIGHT:
                    droite = False
                elif event.key == pygame.K_LEFT:
                    gauche = False
                elif event.key == pygame.K_UP:
                    haut = False
                elif event.key == pygame.K_DOWN:
                    bas = False

        # calcul de la surface de l'image du player
        min_x = int(player1.get_x())
        max_x = int(player1.get_x() + 65)
        min_y = int(player1.get_y())
        max_y = int(player1.get_y() + 90)

        #Gestion des bords de l'ecran
        # Droite / Gauche
        if max_x >= 1060:
            droite = False
        elif min_x <= 0:
            gauche = False
        # Haut / Bas
        if min_y <= 5:
            haut = False
        elif max_y >= 768:
            launched = False
            file_highscore = open("../Model/highscore.txt", "a")
            file_highscore.write(str(game1.get_score()) + "\n")
            file_highscore.close()
            #pygame.mixer.init()
            #pygame.mixer.music.load('../Model/data/game_over.mp3')
            #pygame.mixer.music.play(0)
            effect = pygame.mixer.Sound('../Model/data/gameover.wav')
            effect.play()
            crash(screen)
            new_game = True

        # Gestion collision player-plateformes

        for plateforme in plateformes:
            # surface de la plateforme courante
            min_xplat = int(plateforme.get_x())
            max_xplat = int(plateforme.get_x() + plateforme.get_long())
            min_yplat = int(plateforme.get_y())
            max_yplat = int(plateforme.get_y() + plateforme.get_larg())

            if min_xplat <= max_x and min_x <= max_xplat and powerup == False:  # Est sur la longueur de la plateforme
                if (max_yplat - 5) <= min_y <= (max_yplat +
                                                5):  # collision par le bas
                    haut = False
                    player_position = player1.movePositCourante(
                        0, fallspeed)  # descends à la vitesse des plateformes
                    if plateforme.get_type() == 'teleportation':
                        effect = pygame.mixer.Sound(
                            '../Model/data/telepotation2.wav')
                        effect.play()
                        player_position = player1.movePositTeleportation()
                if (min_yplat - 10) <= max_y <= (min_yplat +
                                                 10):  # colisation par en haut
                    if plateforme.get_type() == 'poison':
                        launched = False
                        file_highscore = open("../Model/highscore.txt", "a")
                        file_highscore.write(str(game1.get_score()) + "\n")
                        file_highscore.close()
                        effect = pygame.mixer.Sound(
                            '../Model/data/gameover.wav')
                        effect.play()
                        crash(screen)
                        new_game = True

                    elif plateforme.get_type() == 'teleportation':
                        effect = pygame.mixer.Sound(
                            '../Model/data/telepotation2.wav')
                        effect.play()
                        player_position = player1.movePositTeleportation()
                    elif plateforme.get_type() == 'CarburantMoins':
                        player1.remove_fuel()
                        fuelHit = True
                    bas = False
                    fall = False
                    player_position = player1.movePositCourante(
                        0, fallspeed)  # descends à la vitesse des plateformes
                    # Rechargement du fuel
                    player1.add_fuel(0.2)
                    quantitefuel = int(player1.get_fuel())

            if min_y <= min_yplat and max_y >= max_yplat and powerup == False:  # Est sur la largeur de la plateforme
                if (max_xplat - 5) <= min_x <= (
                        max_xplat + 5
                ):  # collision par la droite (petite marge pour eviter les bug de traversement)
                    gauche = False
                if (min_xplat - 5) <= max_x <= (min_xplat +
                                                5):  # collision par la gauche
                    droite = False

            if min_y <= min_yplat and max_y >= max_yplat and powerup == False and min_xplat <= max_x and min_x <= max_xplat:  # Il est sur une plateforme
                fall = False
                estSurPlateforme = True
            else:
                estSurPlateforme = False

        # Re-collage du fond et du player
        defilmap += 1  # defilement de la map
        screen.blit(fond, (0, defilmap))  # recollage map

        # Re-collage
        defilmap += 1  #defilement de la map
        screen.blit(fond, (0, defilmap))
        if defilmap == 0:
            screen.fill((0, 0, 0))
        screen.blit(perso, player_position)
        if haut == True:  #Affichage de la propulsion (rajouter le son de la propulsion ici)
            screen.blit(propulsion, ((min_x - 15), max_y))

        # Fuel
        timefuel += 1
        if (
                timefuel % 20
        ) == 0:  #Retourne la duree depuis que pygame.init a été appeler en ms
            quantitefuel -= 1  #diminue de 1 le fuel à chaque boucle modulo 20 du timefuel
            player1.set_fuel(quantitefuel)
        if quantitefuel <= 0:
            launched = False
            file_highscore = open("../Model/highscore.txt", "a")
            file_highscore.write(str(game1.get_score()) + "\n")
            file_highscore.close()
            effect = pygame.mixer.Sound('../Model/data/gameover.wav')
            effect.play()
            crash(screen)
            new_game = True
        rect = pygame.Rect(740, 677, quantitefuel * 2, 25)
        pygame.draw.rect(screen, (255, 0, 0), rect)
        text = pygame.font.Font('freesansbold.ttf', 20)
        fuel = text.render('Carburant : {}'.format(int(player1.get_fuel())),
                           True, (0, 0, 0))
        screen.blit(fuel, (750, 680))

        #Fuel reduit alert
        if fuelHit == True:
            text = pygame.font.Font('freesansbold.ttf', 85)
            carb = text.render('-75', True, (255, 0, 0))
            screen.blit(carb, (900, 650))
            fuelHit = False

        # Message alerte fuel
        if player1.get_fuel() <= 30:
            text = pygame.font.Font('freesansbold.ttf', 35)
            carb = text.render('Alerte ! Alerte ! Niveau carburant bas', True,
                               (255, 0, 0))
            screen.blit(carb, (195, 165))

        # Score
        game1.set_time(int(pygame.time.get_ticks() /
                           1000))  #time in ms depuis pygame.init()
        if (timefuel % 50) == 0:  # ajout de score vitesse de base
            game1.add_score(1)
        text = pygame.font.Font('freesansbold.ttf', 60)
        text2 = pygame.font.Font('freesansbold.ttf', 15)
        time_end = T.time()
        if niveauFall < 6:
            score = text.render('Score : {}'.format(game1.get_score()), True,
                                (0, 0, 0))
            time = text2.render(
                'Temps : {} secondes'.format(int(time_end - time_var)), True,
                (0, 0, 0))
        else:
            score = text.render('Score : {}'.format(game1.get_score()), True,
                                (255, 255, 255))
            time = text2.render(
                'Temps : {} secondes'.format(int(time_end - time_var)), True,
                (255, 255, 255))
        screen.blit(score, (15, 20))
        screen.blit(time, (20, 70))

        # Collage des plateformes sur l'ecran
        timesprite = 1000
        for plateforme in plateformes:
            if plateforme.get_y() >= 0 and plateforme.get_y() <= 768:
                if (plateforme.get_type() == 'poison'):
                    if plateforme.get_long() == 50:
                        if (boucle % timesprite) == 0:
                            pique = pygame.image.load(
                                "../Model/data/plateformes/pike_50_1.png")
                        else:
                            pique = pygame.image.load(
                                "../Model/data/plateformes/pike_50_2.png")
                    elif plateforme.get_long() == 100:
                        if (boucle % timesprite) == 0:
                            pique = pygame.image.load(
                                "../Model/data/plateformes/pike_100_1.png")
                        else:
                            pique = pygame.image.load(
                                "../Model/data/plateformes/pike_100_2.png")
                    elif plateforme.get_long() == 150:
                        if (boucle % timesprite) == 0:
                            pique = pygame.image.load(
                                "../Model/data/plateformes/pike_150_1.png")
                        else:
                            pique = pygame.image.load(
                                "../Model/data/plateformes/pike_150_2.png")
                    screen.blit(pique,
                                (plateforme.get_x(), plateforme.get_y()))
                elif (plateforme.get_type() == 'teleportation'):
                    if plateforme.get_long() == 50:
                        if (boucle % timesprite) == 0:
                            portal = pygame.image.load(
                                "../Model/data/plateformes/portal_50_1.png")
                        else:
                            portal = pygame.image.load(
                                "../Model/data/plateformes/portal_50_2.png")
                    elif plateforme.get_long() == 100:
                        if (boucle % timesprite) == 0:
                            portal = pygame.image.load(
                                "../Model/data/plateformes/portal_100_1.png")
                        else:
                            portal = pygame.image.load(
                                "../Model/data/plateformes/portal_100_2.png")
                    elif plateforme.get_long() == 150:
                        if (boucle % timesprite) == 0:
                            portal = pygame.image.load(
                                "../Model/data/plateformes/portal_150_1.png")
                        else:
                            portal = pygame.image.load(
                                "../Model/data/plateformes/portal_150_3.png")

                    screen.blit(portal,
                                (plateforme.get_x(), plateforme.get_y()))
                elif (plateforme.get_type() == 'CarburantMoins'):
                    if plateforme.get_long() == 50:
                        if (boucle % timesprite) == 0:
                            fire = pygame.image.load(
                                "../Model/data/plateformes/fire_50_1.png")
                        else:
                            fire = pygame.image.load(
                                "../Model/data/plateformes/fire_50_2.png")
                    elif plateforme.get_long() == 100:
                        if (boucle % timesprite) == 0:
                            fire = pygame.image.load(
                                "../Model/data/plateformes/fire_100_1.png")
                        else:
                            fire = pygame.image.load(
                                "../Model/data/plateformes/fire_100_2.png")
                    elif plateforme.get_long() == 150:
                        if (boucle % timesprite) == 0:
                            fire = pygame.image.load(
                                "../Model/data/plateformes/fire_150_1.png")
                        else:
                            fire = pygame.image.load(
                                "../Model/data/plateformes/fire_150_2.png")
                    screen.blit(fire, (plateforme.get_x(), plateforme.get_y()))
                else:
                    if plateforme.get_long() == 50:
                        cloud = pygame.image.load(
                            "../Model/data/plateformes/cloud_50.png")
                    elif plateforme.get_long() == 100:
                        cloud = pygame.image.load(
                            "../Model/data/plateformes/cloud_100.png")
                    elif plateforme.get_long() == 150:
                        cloud = pygame.image.load(
                            "../Model/data/plateformes/cloud_150.png")
                    screen.blit(cloud,
                                (plateforme.get_x(), plateforme.get_y()))
            #Chute des plateformes
            if plateforme.get_y() <= 800:
                plateforme.set_position(0, fallspeed)
        # screen.blit(perso, player_position)

        #Augmentation de difficulte
        if timefuel % 500 == 0:
            niveauFall += 1
            fallspeed += 0.25
            print(niveauFall)
        #Power up
        for objet in powerups:
            if objet.get_y() >= 0 and objet.get_y() <= 768:
                if (objet.get_name() == "carburant"):
                    # pygame.draw.circle(screen, (255, 0, 0), (objet.get_x(), objet.get_y()), 40, False)
                    fuelimg = pygame.image.load("../Model/data/fuel.png")
                    screen.blit(fuelimg, (objet.get_x(), objet.get_y()))
                elif (objet.get_name() == "bouteille"):
                    # pygame.draw.circle(screen, (128, 128, 128), (objet.get_x(), objet.get_y()), 20)
                    bottleimg = pygame.image.load(
                        "../Model/data/oxygen_tank.png")
                    screen.blit(bottleimg, (objet.get_x(), objet.get_y()))

                # Verif si le player est sur le power up
                #surface de l'objet
                min_yobj = int(objet.get_y() - 20)  # 20 == rayon du cercle
                max_yobj = int(objet.get_y() + 20)
                min_xobj = int(objet.get_x() - 20)
                max_xobj = int(objet.get_x() + 20)
                if min_yobj <= max_y and max_yobj >= min_y:  #sur la largeur de l'objet
                    if min_xobj <= max_x and max_xobj >= min_x:  #Sur la longueur de l'objet
                        # L'astronaute est sur l'objet
                        if (objet.get_name() == "carburant"
                            ):  #Action des powerups
                            effect = pygame.mixer.Sound(
                                '../Model/data/bouteille.wav')
                            effect.play()
                            player1.add_fuel(objet.get_quantite())
                            quantitefuel = player1.get_fuel()
                        if (objet.get_name() == "bouteille"):
                            effect = pygame.mixer.Sound(
                                '../Model/data/boost2.wav')
                            effect.play()
                            fallspeed = fallspeed + 4
                            fall = False
                            powerup = True
                            game1.add_score(40)
                            nbboucle = boucle
                        powerups.remove(objet)
            #Desactivation de l'effet du powerup
            if nbboucle <= (
                    boucle - 150
            ) and powerup == True:  # On remet la vitesse normal apres 200 boucles
                fallspeed = fallspeed - 4
                fall = True
                powerup = False
            #chute des objets
            if objet.get_y() <= 800:
                objet.set_position(0, fallspeed)

        ## Traitement des deplacements
        # Droite / Gauche
        if droite:
            player_position = player1.movePositCourante(3.75, 0)
            player_position = player1.movePositCourante(0, 0.25)  # chute
        elif gauche:
            player_position = player1.movePositCourante(-3.75, 0)
            player_position = player1.movePositCourante(0, 0.25)  # chute
        # Haut / Bas
        if haut:
            if niveauFall == 0 or niveauFall == 1:
                player_position = player1.movePositCourante(0, -0.50)
                player_position = player1.movePositCourante(0, -1.5)
                player_position = player1.movePositCourante(0, -3.5)
            elif niveauFall == 2 or niveauFall == 3:
                player_position = player1.movePositCourante(0, -1.5)
                player_position = player1.movePositCourante(0, -2.5)
                player_position = player1.movePositCourante(0, -4.25)
            else:
                player_position = player1.movePositCourante(0, -2.25)
                player_position = player1.movePositCourante(0, -2.75)
                player_position = player1.movePositCourante(0, -4.75)

        elif bas:
            player_position = player1.movePositCourante(0, 5)
        # Chute
        if fall:
            if niveauFall == 0:
                player_position = player1.movePositCourante(0, 2.5)
            elif niveauFall == 1:
                player_position = player1.movePositCourante(0, 2.75)
            elif niveauFall == 2:
                player_position = player1.movePositCourante(0, 3)
            elif niveauFall == 3:
                player_position = player1.movePositCourante(0, 3.25)
            elif niveauFall == 4:
                player_position = player1.movePositCourante(0, 3.50)
            elif niveauFall == 5:
                player_position = player1.movePositCourante(0, 3.75)
            elif niveauFall == 6:
                player_position = player1.movePositCourante(0, 4)
            elif niveauFall == 7:
                player_position = player1.movePositCourante(0, 4.25)
            elif niveauFall == 8:
                player_position = player1.movePositCourante(0, 5.50)
            elif niveauFall > 8:
                player_position = player1.movePositCourante(0, 6)

        # recollage du pers
        screen.blit(perso, player_position)

        # Rafraichissement
        pygame.display.flip()

        boucle += 1
Example #14
0
    def _doCreateObject(self, data):
        """Builds the kill object using the raw data provided from the database"""
        from Model.player import Player
        player_ = Player(data["id"])

        gmapper = GameMapper()
        game_ = gmapper.find(data["game_id"])

        # If the game is deleted and the player is still linked, then errors can occur
        player_.setGame(game_)

        umapper = UserMapper()
        user_ = umapper.find(data["user_id"])

        if user_ is not None:
            player_.setUser(user_)

        player_.setName(data["name"])
        player_.setPhoto(data["photo"])
        player_.setLat(data["lat"])
        player_.setLon(data["lon"])
        player_.setScore(data["score"])
        player_.setTime(data["time"])

        return player_
Example #15
0
 def players_elo_descending_order(self):
     """Deserialize players from DB and sort players in elo descending order"""
     players = Player.players_deserialized()
     players.sort(reverse=True, key=lambda x: x.elo)
     for i in players:
         print("****************************\n", i)
Example #16
0
 def players_alphabetic_order(self):
     """Deserialize players from DB and sort players by alphabetic order"""
     players = Player.players_deserialized()
     players.sort(key=lambda x: (x.name, x.first_name))
     for i in players:
         print("****************************\n", i)
	def _doCreateObject(self, data):
		"""Builds the kill object using the raw data provided from the database"""
		from Model.player import Player
		player_ = Player(data["id"])

		gmapper = GameMapper()
		game_ = gmapper.find(data["game_id"])

		# If the game is deleted and the player is still linked, then errors can occur
		player_.setGame(game_)

		umapper = UserMapper()
		user_ = umapper.find(data["user_id"])

		if user_ is not None:
			player_.setUser(user_)

		player_.setName(data["name"])
		player_.setPhoto(data["photo"])
		player_.setLat(data["lat"])
		player_.setLon(data["lon"])
		player_.setScore(data["score"])
		player_.setTime(data["time"])

		return player_
Example #18
0
	def _doPost(self, dataObject):

		if "name" and "game" and "photo" in dataObject:
			try:
				GM = GameMapper()

				if dataObject["game"] is not None and str(dataObject["game"]).isdigit():
					# Get the user by ID
					game = GM.find(str(dataObject["game"]))

					if game is None:
						raise NotFound("The specified player type does not exist.")
				else:
					raise BadRequest("Argument provided for this player type is invalid.")

				print "GAME GOOD "+str(game)
				PM = PlayerMapper()

				player = Player()

				player.setName(dataObject["name"])
				player.setGame(game)
				player.setPhoto(dataObject["photo"])
				player.setUser(self.user)

				PM.insert(player)
				print "PLAYER GOOD "+str(player)

				return self._response(player.dict(3), CODE.CREATED)
				
			except mdb.DatabaseError, e:
				raise ServerError("Unable to search the user database (%s)" % e.args[1])