def start(self, show=False, verbose=True): self.results = np.empty((self.trials, 2), dtype=int) for i in range(self.trials): if verbose: print(" Match", i) brasil = SoccerTeam("Brasil") brasil.add( "self.strategy", self.strategy(accShoot=self.list_param[0], accDrible=self.list_param[1], vit=self.list_param[2], n=self.list_param[3], maxAngle=self.list_param[4], tooFar=self.list_param[5], rSurfBut=self.list_param[6], AngleHyst=self.list_param[7], alpha=self.list_param[8])) desafiante = self.ia.get_team(1) simu = Simulation(brasil, desafiante, max_steps=self.max_steps) if show: show_simu(simu) else: simu.start() self.results[i, 0] = simu.get_score_team(1) self.results[i, 1] = simu.get_score_team(2) if verbose: print(" Score : {} x {}".format(self.results[i, 0], self.results[i, 1]))
def entrainement(fn): simu = Simulation(team1, team2) show_simu(simu) # recuperation de tous les etats training_states = strat_j1.states # sauvegarde dans un fichier dump_jsonz(training_states, fn)
def entrainer(fname): #Creation d'une partie kb_strat_def = KeyboardStrategy() kb_strat_def.add("a", posdefStrategy()) kb_strat_def.add("z", passeStrategy()) kb_strat_atk = KeyboardStrategy() kb_strat_atk.add("q", pospasseStrategy()) kb_strat_atk.add("s", dribbleStrategy()) kb_strat_atk.add("d", tirStrategy()) team1 = SoccerTeam(name="Control Team") team2 = SoccerTeam(name="Sparing") team1.add("Defenseur", kb_strat_def) team1.add("Attaquant", kb_strat_atk) team2.add("Player1", AttaqueStrategy()) team2.add("Player2", DefenseStrategy()) simu = Simulation(team1, team2) #Jouer, afficher et controler la partie show_simu(simu) print("Nombre d'exemples : " + str(len(kb_strat_atk.states))) print("Nombre d'exemples : " + str(len(kb_strat_def.states))) # Sauvegarde des etats dans un fichier dump_jsonz(kb_strat_atk.states, fname) dump_jsonz(kb_strat_def.states, fname)
def entrainer1v1_main(self, fname, ia): if self.nb_players != 1: raise Exception( "Not the good number of players for this function.") #Creation d'une partie kb_strat = KeyboardStrategy() kb_strat.add("a", m.strategy.ShootStrat()) kb_strat.add("z", m.strategy.DefStrat()) kb_strat.add("e", m.strategy.GardienStrat()) kb_strat.add("q", m.strategy.DribleStrat()) kb_strat.add("s", m.strategy.PassStrat()) kb_strat.add("d", m.strategy.AtkStrat()) team1 = SoccerTeam(name="Control Team") #team2 = SoccerTeam(name="Sparing") team1.add("ControlPlayer", kb_strat) #team2.add("Player",m.strategy.ShootStrat()) team2 = ia.get_team(1) simu = Simulation(team1, team2) #Jouer, afficher et controler la partie show_simu(simu) print("Nombre d'exemples : " + str(len(kb_strat.states))) # Sauvegarde des etats dans un fichier if simu.get_score_team(1) > simu.get_score_team(2): try: temp = load_jsonz(fname) temp += kb_strat.states dump_jsonz(temp, fname) except FileNotFoundError: dump_jsonz(kb_strat.states, fname)
def start(self, show=True): team1 = SoccerTeam("Team 1") team1.add("Test tire", self.strategy) self.simu = Simulation(team1, max_steps=100000) self.simu.listeners += self if show: show_simu(self.simu) else: self.simu.start()
def start(self): if self.visu : show_simu(self.simu) else: self.simu.start() # Trouver parametre
def start(self , show=True , fps=None): if not self.simu: team1 = SoccerTeam("Team␣1") team2 = SoccerTeam("Team␣2") team1.add(self.strategy.name , self.strategy) team2.add(StrategyAttaquant().name , StrategyAttaquant()) self.simu = Simulation(team1 , team2 , max_steps=self.max_steps) self.simu.listeners += self if show: show_simu(self.simu , fps=fps) else: self.simu.start ()
def jouer_arbre(dt): #### # Utilisation de l'arbre ### dic = {"Fonce": FonceStrategy(), "Static": StaticStrategy()} treeStrat1 = DTreeStrategy(dt, dic, my_get_features) treeStrat2 = DTreeStrategy(dt, dic, my_get_features) team3 = SoccerTeam("Arbre Team") team3.add("Joueur 1", treeStrat1) team3.add("Joueur 2", treeStrat2) simu = Simulation(team2, team3) show_simu(simu)
def start(self, show=True): if not self.simu: team1 = SoccerTeam("Team 1") team2 = SoccerTeam("Team 2") team1.add("Defenseur_2v2_opti.name", self.strategy) team2.add("Fonceur_brain.name", Fonceur()) self.simu = Simulation(team1, team2, max_steps=self.max_steps) self.simu.listeners += self if show: show_simu(self.simu) else: self.simu.start()
def start(self, show=True): if not self.simu: team1 = SoccerTeam("Team 1") team2 = SoccerTeam("Team 2") team1.add(self.strategy1.name, self.strategy1) team2.add(self.strategy2.name, self.strategy2) self.simu = Simulation(team1, team2, max_steps=self.max_steps) self.simu.listeners += self if show: show_simu(self.simu) else: self.simu.start()
def start(self, show=True): if not self.simu: team1 = SoccerTeam("Chelsea") team2 = SoccerTeam("Arsenal") team1.add(self.strategy.name, self.strategy) #team2.add(Strategy().name, Strategy()) self.simu = Simulation(team1, team2, max_steps=self.max_steps) self.simu.listeners += self if show: show_simu(self.simu) else: self.simu.start()
def start(self, show=True): if not self.simu: team1 = SoccerTeam("Team Goal") team2 = SoccerTeam("Team Shooter") team1.add(self.strategy.name, self.strategy) team2.add(FSF().name, FSF()) self.simu = Simulation(team1, team2, max_steps=self.max_steps) self.simu.listeners += self if show: show_simu(self.simu) else: self.simu.start()
def start(self, show=True): if not self.simu: team1 = SoccerTeam("Team Passeurs") team2 = SoccerTeam("Team Vide") team1.add(self.strategy.name, self.strategy) team1.add(PasseTestStrategy().name, PasseTestStrategy()) team2.add(Strategy().name, Strategy()) self.simu = Simulation(team1, team2, max_steps=self.max_steps) self.simu.listeners += self if show: show_simu(self.simu) else: self.simu.start()
def start(self, show=True): if not self.simu: team1 = SoccerTeam("Team Fonceur") team2 = SoccerTeam("Team Dribbler") #team1.add(FonceurChallenge1Strategy().name, FonceurChallenge1Strategy()) team1.add(FonceurStrategy().name, FonceurStrategy()) team2.add(self.strategy.name, self.strategy) self.simu = Simulation(team1, team2, max_steps=self.max_steps) self.simu.listeners += self if show: show_simu(self.simu) else: self.simu.start()
def jouer_arbre(dt): #### # Utilisation de l'arbre ### dic = dict([(f.__name__, GenStrat(f)) for f in [ dribble, se_positionner_haut, se_positionner_bas, donothing, ralentir_moyen, shoot_but, up, down, left, right ]]) treeStrat1 = DTreeStrategy(dt, dic, my_get_features) team3 = SoccerTeam("Arbre Team") team3.add("Joueur 1", treeStrat1) team3.add("Joueur 2", ElDefenseur()) simu = Simulation(team2, team3) show_simu(simu)
def jouer_arbre(dt): #### # Utilisation de l'arbre ### dic = { "Ma Strategie d'attaque": MyAttackStrategy(), "Strategie Intelligente": IntelligentStrategy(), "Ma Strategie de defense": MyDefenseStrategy(), "Ma Strategie de dribble": DribblerStrategy() } treeStrat1 = DTreeStrategy(dt, dic, my_get_features) treeStrat2 = DTreeStrategy(dt, dic, my_get_features) team3 = SoccerTeam("Arbre Team") team3.add("Giroud", treeStrat1) team3.add("Pogba", treeStrat2) simu = Simulation(team2, team3) show_simu(simu)
def entrainer(fname): #Creation d'une partie kb_strat = KeyboardStrategy() kb_strat.add("a", FonceurStrategy()) kb_strat.add("z", Milieu()) kb_strat.add("e", Gardien()) team1 = SoccerTeam(name="Contol Team") team2 = SoccerTeam(name="Sparing") team1.add("ControlPlayer", kb_strat) team2.add("Player", FonceurStrategy()) simu = Simulation(team1, team2) #Jouer, afficher et controler la partie show_simu(simu) print("Nombre d'exemples : " + str(len(kb_strat.states))) # Sauvegarde des etats dans un fichier dump_jsonz(kb_strat.states, fname)
def Train(self, show=False): self.epochs = nb_epochs self.epsilon = epsilon self.current_epoch = 0 self.step_per_epoch = step_per_epoch self.max_steps = self.epochs * self.step_per_epoch team1 = getteam.get_team(self.nb_player_per_team, 1) team2 = getteam.get_team(self.nb_player_per_team, 2) self.simu = soc.Simulation(team1, team2, max_steps=self.max_steps) self.simu.listeners += self if show: soc.show_simu(self.simu) else: self.simu.start()
def entrainer(fname): #Creation d'une partie kb_strat = KeyboardStrategy() kb_strat.add("q", GoToMyGoalStrategy()) kb_strat.add("z", PushUpStrategy()) kb_strat.add("p", PassStrategy()) kb_strat.add("m", ReceivePassStrategy()) kb_strat.add("d", CutDownAngleStrategy()) kb_strat.add("s", MarkStrategy()) team1 = SoccerTeam(name="Contol Team") team2 = ia.get_team(2) team1.add("ControlPlayer", kb_strat) team1.add(" ST", AttaquantStrategy(fn_st="st_dico_TME8.pkl")) simu = Simulation(team1, team2) #Jouer, afficher et controler la partie show_simu(simu) print("Nombre d'exemples : " + str(len(kb_strat.states))) # Sauvegarde des etats dans un fichier dump_jsonz(kb_strat.states, fname)
def entrainer(fichier): """ Simule un match dans lequel on doit intervenir pour générer un fichier d'apprentissage. Contrôles : a pour Fonceur, d pour Défenseur. """ #Création des équipes kb_strat = KeyboardStrategy() kb_strat.add("a", Fonceur()) kb_strat.add("d", Defenseur()) team1 = SoccerTeam(name="Moi") team2 = SoccerTeam(name="Idiots") team1.add("ControlPlayer", kb_strat) team2.add("Player", Fonceur()) #Jouer, afficher et controler la partie simu = Simulation(team1, team2) show_simu(simu) print("Nombre d'exemples : " + str(len(kb_strat.states))) # Sauvegarde des états dans un fichier dump_jsonz(kb_strat.states, fichier)
from soccersimulator import ChallengeFonceurButeur, SoccerTeam, show_simu from ia.strategies import FonceurChallenge1Strategy team = SoccerTeam("ChPerFusion") team.add("FonceurCh1Joueur", FonceurChallenge1Strategy()) challenge = ChallengeFonceurButeur(team, max_but=20) show_simu(challenge) print("temps moyen : ", challenge.stats_score, "\nliste des temps", challenge.resultats)
""" Created on Mon Feb 4 16:51:52 2019 @author: 3700049 """ #from Strategy_f import SuperState, StrategySolo, StrategyAttaquant, StrategyDefenseur, StrategyDefenseur_duo, RandomStrategy #from soccersimulator import SoccerTeam # #def get_team(nb_players): +++++ # team = SoccerTeam(name="Unknown") # if nb_players == 1: # team.add("StrikeBack",StrategySolo()) # if nb_players == 2: # team.add("Footix", RandomStr++ategy()) # team.add("Billy", StrategyDefenseur_duo()) # if nb_players == 3: # team.add("Footix", StrategyAttaquant())---- # team.add( a"Footix", StrategyAttaquant()) # team.add("Billy", StrategyDefenseur_duo()) # return team #if __name__ =='__main__': from soccersimulator import Simulation, show_simu from Strategy_f import get_team team1 = get_team(4) team2 = get_team(5) simu = Simulation (team1,team2) show_simu(simu)
def start(self, visu=True): """ demarre la visualisation avec ou sans affichage""" if visu: show_simu(self.simu) else: self.simu.start()
from salsa import Attaquant, Defense from soccersimulator import Player, SoccerTeam, Simulation, show_simu joueura1 = Player("Attaquant A", Attaquant()) joueura2 = Player("Defenseur A", Defense()) team1 = SoccerTeam("Equipe A", [joueura1, joueura2]) # nombre de joueurs de l equipe joueurb1 = Player("Attaquant B", Attaquant()) joueurb2 = Player("Defenseur B", Defense()) team2 = SoccerTeam("Equipe B", [joueurb1, joueurb2]) # Creer un match entre 2 equipes et de duree 10 pas match = Simulation(team1, team2, 1000) # Jouer le match ( sans le visualiser ) match.start() # Jouer le match en le visualisant show_simu(match) # Attention !! une fois le match joue , la fonction start () permet de faire jouer le replay # mais pas de relancer le match !!! # Pour regarder le replay d un match
def __init__(self): super(StrategiepourTROIS, self).__init__("fonceur") def compute_strategy(self, state, idteam, idplayer): ball = state.ball me = state.player_state(1, 0) oth = state.balls[0] shoot = (oth.position - ball.position + 2) * 50 if (me.position.distance(ball.position) < (settings.BALL_RADIUS + settings.PLAYER_RADIUS)) and me.vitesse.norm < 0.5: return SoccerAction(shoot=shoot) acc = ball.position - me.position if acc.norm < 5: acc.norm = 0.5 return SoccerAction(acceleration=acc) myt = SoccerTeam("premierjoueur") myt.add("M", StrategiepourUN()) #myt = SoccerTeam("premierjoueur") #myt.add("M",StrategiepourUN()) #myt = SoccerTeam("deuxiemejoueur") #myt.add("P",StrategiepourDEUX()) #myt = SoccerTeam("troisiemejoueur") #myt.add("R",StrategiepourTROIS()) b = Billard(myt, type_game=0) show_simu(b)
#from "notre dossier" import "nos strategies" import Nasser if __name__ == '__main__': from soccersimulator import Simulation, show_simu from moduleH import get_team #Test avec 1 et 2 joueurs team1 = Nasser.get_team(4) team2 = get_team(4) # Create a match simulation1 = Simulation(team2, team1) # Simulate and display the match show_simu(simulation1) #Deuxieme simulation 2 vs 2 #team2_2 = get_team(2) #Lancement de la simulation #simulation2 = Simulation(team2,team2_2) #show_simu(simulation2)
import soccersimulator as soc from module_teo_nicolas.lib.strategies import * if __name__ == '__main__': team1 = soc.SoccerTeam(name=" Pain au chocolat ") team1.add("Auto", createStrategy(AutoBehavior())) team2 = soc.SoccerTeam(name=" Chocolatine ") team2.add("Fonceur", createStrategy(FonceurBehavior())) match = soc.Simulation(team1, team2, 2000) match.start() soc.show_simu(match)
from soccersimulator import SoccerTeam, Simulation, show_simu from profAI import fonceurStrategy, defenseStrategy, get_team ## Creation d'une equipe pyteam = get_team(2) thon = SoccerTeam(name="ThonTeam") thon.add("PyPlayer", fonceurStrategy()) thon.add("ThonPlayer", defenseStrategy()) #Strategie aleatoire #Creation d'une partie simu = Simulation(pyteam, thon) # simu declaré mais Simulation est un class appelé #Jouer et afficher la partie show_simu(simu) # appelé
from soccersimulator import show_simu, load_jsonz import sys try: input = raw_input except NameError: pass if __name__ == "__main__": if len(sys.argv) != 2: print("Usage : %s file.jz" % sys.argv[0]) sys.exit(0) tournoi = load_jsonz(sys.argv[1]) key = '' while key != 'q': tournoi.print_scores(True) key = input("Match ? : ") try: i, j = [int(x) for x in key.split(" ")] show_simu(tournoi.get_match(i, j)) except: key = 'q'