コード例 #1
0
ファイル: BotTrainTest.py プロジェクト: Pellanor/MexicanTrain
    def test_bot_train(self):
        player_id = 42
        train_id = 9001
        required = 6
        p = Player(player_id, TestBot())
        t = Train(train_id, required, p)
        bt = BotTrain(t, p)
        self.assertTrue(bt.can_add)
        self.assertTrue(bt.am_owner)
        self.assertFalse(bt.identity.mexican)
        self.assertEqual(p, bt.identity.owner)
        self.assertEqual(required, bt.requires)
        bt.cars.append(Domino(2, 3))
        self.assertEqual(0, len(t.cars))

        d1 = Domino(6, 6)
        t.add_domino(d1, p)
        bt = BotTrain(t, p)
        self.assertTrue(bt.demands_satisfaction)
        self.assertEqual(6, bt.requires)
        self.assertEqual(d1, bt.cars.pop())

        d2 = Domino(12, 6)
        t.add_domino(d2, p)
        bt = BotTrain(t, p)
        self.assertFalse(bt.demands_satisfaction)
        self.assertEqual(12, bt.requires)
        self.assertEqual(d2, bt.cars.pop())
コード例 #2
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_provide_satisfaction(self):
     t = Train(5, 5, self.player_five)
     d = Domino(5, 5)
     t.add_domino(d, self.player_five)
     self.assertTrue(t.demands_satisfaction)
     self.assertFalse(t.private)
     t.add_domino(Domino(3, 5), self.player_five)
     self.assertFalse(t.demands_satisfaction)
     self.assertTrue(t.private)
コード例 #3
0
ファイル: BotTrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_bot_train_public(self):
     player_id = 42
     owner_id = 24
     train_id = 9001
     required = 6
     p = Player(player_id, TestBot())
     o = Player(owner_id, TestBot())
     t = Train(train_id, required, o)
     t.make_public()
     bt = BotTrain(t, p)
     self.assertTrue(bt.can_add)
     self.assertFalse(bt.am_owner)
     self.assertFalse(bt.identity.mexican)
     self.assertEqual(o, bt.identity.owner)
コード例 #4
0
ファイル: BotTrain.py プロジェクト: Pellanor/MexicanTrain
 def __init__(self, train: Train, player: Player):
     self.identity = train.identity
     self.is_public = not train.private
     self.am_owner = player == self.identity.owner
     self.can_add = train.can_player_add(player)
     self.cars = copy(train.cars)
     self.requires = train.requires
     self.demands_satisfaction = train.demands_satisfaction
     if player is not None:
         self.owner_tile_count = len(player.dominoes)
     else:
         self.owner_tile_count = 0
コード例 #5
0
ファイル: GameState.py プロジェクト: Pellanor/MexicanTrain
 def place_domino(self, train: Train, domino: Domino, player: Player):
     """
     Place a domino on a Train.
     :param train: The Train to add the Domino to.
     :param domino: The Domino to add.
     :param player: The Player who is placing the domino.
     """
     if train.add_domino(domino, player):
         player.dominoes.remove(domino)
         self.played_count[domino.left] += 1
         if not domino.is_double:
             self.played_count[domino.right] += 1
         self.played.append(domino)
コード例 #6
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_update_required(self):
     t = Train(2, 2, self.player_two)
     d = Domino(2, 3)
     t.add_domino(d, self.player_two)
     self.assertEqual(3, t.requires)
コード例 #7
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_private_to_public(self):
     t = Train(2, 2, self.player_two)
     t.make_private()
     t.make_public()
     d = Domino(2, 3)
     self.assertTrue(t.add_domino(d, self.player_two))
コード例 #8
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_private_train(self):
     t = Train(2, 2, self.player_two)
     t.make_private()
     d = Domino(2, 3)
     self.assertTrue(t.add_domino(d, self.player_two))
     self.assertFalse(t.add_domino(d, Player(1, TestBot())))
コード例 #9
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_cannot_add_domino(self):
     t = Train(5, 5, self.player_five)
     d = Domino(2, 3)
     self.assertFalse(t.add_domino(d, self.player_two))
コード例 #10
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_can_add_domino(self):
     t = Train(2, 2, self.player_two)
     d = Domino(2, 3)
     self.assertTrue(t.add_domino(d, self.player_two))
コード例 #11
0
ファイル: TrainTest.py プロジェクト: Pellanor/MexicanTrain
 def test_does_not_demand_satisfaction(self):
     t = Train(2, 2, self.player_two)
     d = Domino(2, 3)
     t.add_domino(d, self.player_two)
     self.assertFalse(t.demands_satisfaction)
     self.assertTrue(t.private)
コード例 #12
0
    def main_loop(self):

        if not internet_on():
            print 'No internet connection.'
            return

        try:
            #input = InputName(self.screen)
            #name = input.get_name()
            name = "02 03 2017"

            self.test_hash = name.lower().replace(' ', '_')
            # self.test_hash = str(random.getrandbits(1))
            self.__generate_logger()

            log_info_game = {
                'game_mode_parameter': self.game_mode,
                'game_helper_parameter': self.helper,
                'entrainment_helper_name': (CHARACTERS[self.helper % 2])[0],
                'player_number': self.test_hash
            }
            logging.info("General=> Starting test - %s", log_info_game)

            train = Train(self.screen)
            train.start()

            practiceGame = PracticeGame(screen=self.screen)
            practiceGame.config(self.test_hash)
            _, rate_avg, energy_avg, f0mean_avg = practiceGame.play()  # RG

            score_screen = InterGameScreen(
                screen=self.screen,
                step=0,
                scores=[practiceGame.human_player.score])
            score_screen.show()

            score_helper_1 = 0
            score_helper_2 = 0

            for j in range(1, CANT_GAMES + 1):
                if modeAdmin == PLAYING_MODE_ONE:
                    game = GameTypeOne(
                        screen=self.screen,
                        rate_base=rate_avg,
                        #  range_base=range_avg,  # RG
                        energy_base=energy_avg,  # RG
                        f0mean_base=f0mean_avg,  # RG
                        entrainment_helper=self.helper,
                        score_h1=score_helper_1,
                        score_h2=score_helper_2)
                elif modeAdmin == PLAYING_MODE_TWO:
                    game = GameTypeTwo(
                        screen=self.screen,
                        rate_base=rate_avg,
                        #  range_base=range_avg,  # RG
                        energy_base=energy_avg,  # RG
                        f0mean_base=f0mean_avg,  # RG
                        entrainment_helper=self.helper,
                        score_h1=score_helper_1,
                        score_h2=score_helper_2)
                game.config(self.test_hash)
                score, rate_avg, energy_avg, f0mean_avg = game.play()  # RG
                self.results.append(score)

                # Recupero los scores de los
                score_helper_1 = game.known_helpers[0].score
                score_helper_2 = game.known_helpers[1].score

                score_screen = InterGameScreen(screen=self.screen,
                                               step=j,
                                               scores=self.results)
                score_screen.show()
        except (KeyboardInterrupt, SystemExit):
            raise
コード例 #13
0
from src.Analyze import Analyze
from src.Train import Train
from src.FeatureExtraction import FeatureExtraction

if __name__ == "__main__":
    trainer = Train(datafp="data/np-rnn/")
    trainset = [1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 15, 17, 20]
    validationset = [9, 18, 19, 16, 8, 11]
    testset = [9, 10]
    trainer.trainmodel(trainset, validationset, testset)

    #extractor.load([1,2], "data/np-rnn/")

    # -----------------------------
    # extractor = FeatureExtraction()
    # savedir = "data/np-rnn2"
    # extractor.mkdir(savedir)
    # extractor.save(savedir)

    # -----------------------------
    sounds, sr = Analyze.load("datasets/UrbanSound8K/test/audio/")
    labels = [
        "foreground", "background", "synthesis", "synthesis", "synthesis",
        "synthesis", "synthesis"
    ]
    Analyze.plotwave(labels, sounds)
    Analyze.plotspectrogram(labels, sounds)
    Analyze.plotlogspectrogram(labels, sounds)
    Analyze.plotmelspectrogram(labels, sounds, sr)