コード例 #1
0
ファイル: aprentissage.py プロジェクト: arianacarnielli/2i013
    def entrainer2v2_snap(self, fname1, fname2, nb_snap):

        if self.nb_players != 2:
            raise Exception(
                "Not the good number of players for this function.")

    #Creation d'une partie
        kb_strat1 = KeyboardStrategy()
        kb_strat1.add("a", m.strategy.ShootStrat())
        kb_strat1.add("z", m.strategy.DefStrat())
        kb_strat1.add("e", m.strategy.GardienStrat())
        kb_strat1.add("q", m.strategy.DribleStrat())
        kb_strat1.add("s", m.strategy.PassStrat())
        kb_strat1.add("d", m.strategy.AtkStrat())

        kb_strat2 = KeyboardStrategy()
        kb_strat2.add("a", m.strategy.ShootStrat())
        kb_strat2.add("z", m.strategy.DefStrat())
        kb_strat2.add("e", m.strategy.GardienStrat())
        kb_strat2.add("q", m.strategy.DribleStrat())
        kb_strat2.add("s", m.strategy.PassStrat())
        kb_strat2.add("d", m.strategy.AtkStrat())

        kb_strat2.idp = 1

        sortie = False
        i = 0

        while (not sortie) and i < nb_snap:

            state = self.create_rd_state()
            kb_strat1.state = state
            kb_strat2.state = state
            self.affiche_rd_state(state, 900, 600)

            joueur_0 = input("Choose strategy for player red 0 : ")
            joueur_1 = input("Choose strategy for player red 1 : ")

            kb_strat1.send_strategy(joueur_0)
            kb_strat2.send_strategy(joueur_1)

            if input("wanna continue?") == "n":
                sortie = True

            i += 1

        try:
            temp_joueur_1 = load_jsonz(fname1)
            temp_joueur_1 += kb_strat1.states
            dump_jsonz(temp_joueur_1, fname1)
        except FileNotFoundError:
            dump_jsonz(kb_strat1.states, fname1)
        try:
            temp_joueur_2 = load_jsonz(fname2)
            temp_joueur_2 += kb_strat2.states
            dump_jsonz(temp_joueur_2, fname2)
        except FileNotFoundError:
            dump_jsonz(kb_strat2.states, fname2)