Exemple #1
0
    def _update_availability_player(self, player: Player):
        player_is_playing = self.available_players.get(player.id, None)

        if not player.check_if_on_field():
            if player_is_playing:
                del (self.available_players[player.id])
        else:
            if player_is_playing is None:
                self.available_players[player.id] = player
Exemple #2
0
def init_field():
    print("Déplacement robot au centre")
    for idx in range(6):
        blue_team.players[idx] = Player(blue_team, idx)
        yellow_team.players[idx] = Player(yellow_team, idx)

    out_fields_cmd = []
    for player in yellow_team.players.values():
        cmd = command.MoveTo(
            player, Position(random.random() * 3,
                             random.random() * 3 + 5))
        out_fields_cmd.append(cmd)
    for player in blue_team.players.values():
        cmd = command.MoveTo(
            player, Position(random.random() * 3,
                             random.random() * 3 + 5))
        out_fields_cmd.append(cmd)

    for cmd in out_fields_cmd:
        gr_sim_debug_sender.send_command(cmd)
Exemple #3
0
class TestPlayer(unittest.TestCase):
    def setUp(self):
        self.team = Team(TeamColor.BLUE)
        self.player1 = Player(self.team, 1)
        self.player2 = Player(self.team, 2)

    def test_init_normal(self):
        random_player_id = 0
        p = Player(self.team, random_player_id)
        self.assertIsNotNone(p)
        self.assertIsNotNone(p.id)
        self.assertEqual(random_player_id, p.id)
        self.assertIsNotNone(p.team)
        self.assertIsNotNone(p.pose)
        self.assertEqual(p.pose, Pose())
        self.assertIsNotNone(p.velocity)
        self.assertEqual(p.velocity, Pose())
        self.assertIsNotNone(p.kf)
        self.assertTrue(isinstance(p.kf, EnemyKalmanFilter))
        self.assertIsNotNone(p.update)

    def test_has_id(self):
        player_id = 0
        p = Player(self.team, player_id)
        self.assertTrue(p.has_id(0))
        for i in range(1, 13):
            self.assertFalse(p.has_id(i))

    def test_check_if_on_field(self):
        # needs to fails since the pose is the default one
        self.assertFalse(self.player1.check_if_on_field())
        self.player1.pose = Pose(Position(200, 200), 1)
        self.assertTrue(self.player1.check_if_on_field())

    def test__update(self):
        self.player1._update(Pose(Position(200, 200), 1))
        self.assertEqual(self.player1.pose, Pose(Position(200, 200), 1))
        self.assertNotEqual(self.player1.pose, Pose())

    def test__kalman_update(self):
        self.assertEqual(self.player1.pose, Pose())
        # one kalman update and the kalman filter will put the pose of the player to Pose(9999, 9999, 0) or something
        self.player1._kalman_update([None], 0.5)
        self.assertNotEqual(self.player1.pose, Pose())
        self.assertNotEqual(self.player1.pose, Pose(200, 200, 1))
        # send enough image where the robot has no position for the kalman to say the robot
        # isnt on the field with Pose()
        for i in range(21):
            self.player1._kalman_update([None], 0.5)
        self.assertEqual(self.player1.pose, Pose())
Exemple #4
0
 def test_init_normal(self):
     random_player_id = 0
     p = Player(self.team, random_player_id)
     self.assertIsNotNone(p)
     self.assertIsNotNone(p.id)
     self.assertEqual(random_player_id, p.id)
     self.assertIsNotNone(p.team)
     self.assertIsNotNone(p.pose)
     self.assertEqual(p.pose, Pose())
     self.assertIsNotNone(p.velocity)
     self.assertEqual(p.velocity, Pose())
     self.assertIsNotNone(p.kf)
     self.assertTrue(isinstance(p.kf, EnemyKalmanFilter))
     self.assertIsNotNone(p.update)
Exemple #5
0
    def __init__(self, team_color: TeamColor):
        assert isinstance(team_color, TeamColor)
        self.players = {}
        self.available_players = {}
        for player_id in range(PLAYER_PER_TEAM):
            self.players[player_id] = Player(self, player_id)
            if player_id < 6:
                self.players[player_id].in_play = True
                self.available_players[player_id] = self.players[player_id]

        self.team_color = team_color
        self.score = 0
        self.update_player = self._update_player
        if ConfigService().config_dict["IMAGE"]["kalman"] == "true":
            self.update_player = self._kalman_update
Exemple #6
0
 def test_has_id(self):
     player_id = 0
     p = Player(self.team, player_id)
     self.assertTrue(p.has_id(0))
     for i in range(1, 13):
         self.assertFalse(p.has_id(i))
Exemple #7
0
 def setUp(self):
     self.team = Team(TeamColor.BLUE)
     self.player1 = Player(self.team, 1)
     self.player2 = Player(self.team, 2)
Exemple #8
0
 def setUp(self):
     self.team = Team(TeamColor.YELLOW)
     self.team_blue = Team(TeamColor.BLUE)
     self.first_player = self.team.players[0]
     self.second_player = self.team.players[1]
     self.no_player = Player(self.team, 0)