public StrategicRegression regress(StrategicSimulationObserver observer) {
    StrategicMultiAgentSystem simulation = observer.getStrategicSimulation();
    MutableStrategicMultiAgentSystem reducedSimulation =
        new DefaultStrategicMultiAgentSystem(simulation.getName(), simulation.getDescription());

    for (Player p : simulation.players()) {
      reducedSimulation.addPlayer(p);

      Set<Action> actions = new HashSet<Action>();
      for (Action a : simulation.getActions(p)) {
        actions.add(actionConverter.get(p).get(a));
      }

      reducedSimulation.putActions(p, actions);
    }

    BasicStatsStrategicSimulationObserver reducedObserver =
        new BasicStatsStrategicSimulationObserverImpl(reducedSimulation);

    for (Outcome outcome : Games.traversal(simulation)) {
      Outcome convertedOutcome = convertOutcome(outcome);
      for (Payoff p : observer.getObservations(outcome)) {
        reducedObserver.observe(convertedOutcome, p);
      }
    }

    return new EquivalentStrategyStrategicRegression(
        new SimpleStrategicRegressionFactory().regress(reducedObserver).getStrategicGame(),
        actionConverter);
  }
예제 #2
0
 public static void leave(Player player) {
   if (player == null) return;
   if (!get().getPlayers().containsKey(player)) return;
   player.teleport(Games.getSpec());
   player.getInventory().setContents(HPlayer.get(player.getName()).getInventory("splegg"));
   player
       .getInventory()
       .setArmorContents(HPlayer.get(player.getName()).getInventory("splegg_armour"));
   message(ChatColor.YELLOW + player.getName() + ChatColor.WHITE + " left the game");
 }
  private Outcome convertOutcome(Outcome outcome) {
    Player[] players = outcome.players().toArray(new Player[0]);
    Action[] actions = new Action[players.length];

    for (int i = 0; i < players.length; i++) {
      actions[i] = actionConverter.get(players[i]).get(outcome.getAction(players[i]));
    }

    return Games.createOutcome(players, actions);
  }
예제 #4
0
 public static void die(Player player) {
   get().getPlayers().remove(player.getName());
   Utilities.skipRespawn(player);
   player.teleport(Games.getSpec());
   message(ChatColor.YELLOW + player.getName() + ChatColor.WHITE + " died");
   if (get().getPlayers().size() < 2) {
     for (String players : get().getPlayers().keySet()) {
       Player target = Bukkit.getPlayer(players);
       if (target == null) return;
       target.teleport(Games.getSpec());
       Bukkit.broadcastMessage(
           ChatColor.BLUE
               + "Game - "
               + ChatColor.YELLOW
               + players
               + ChatColor.WHITE
               + " won "
               + ChatColor.LIGHT_PURPLE
               + "Splegg");
       Money.addMoney(target, 2000);
     }
   }
 }
예제 #5
0
 public static void end(StopReason reason) {
   if (reason == StopReason.INSUFFICIENT_PLAYERS) {
     for (String players : get().getPlayers().keySet()) {
       Player player = Bukkit.getPlayer(players);
       if (player != null) {
         player.teleport(Games.getSpec());
         player.getInventory().clear();
         player.getInventory().setContents(HPlayer.get(player.getName()).getInventory("splegg"));
         player
             .getInventory()
             .setArmorContents(HPlayer.get(player.getName()).getInventory("splegg_armour"));
         M.v(
             "Game",
             ChatColor.YELLOW + "Splegg " + ChatColor.WHITE + "cancelled, less than 2 players");
       }
     }
     get().getPlayers().clear();
   }
   if (reason == StopReason.GAME_FINISH) {}
 }
  public void commandAction(Command c, Displayable d) {

    if (c == nazad) {
      games.showWin(backScr);
    } else if (c == OK) {

      int i = this.getSelectedIndex();

      if (i == 1) {
        chassiS = 0.81; // рврв
        System.out.println("" + chassiS);
        playerScr.player.chassiS = chassiS;
      } else if (i == 0) {
        chassiS = 0.8;
        System.out.println("" + chassiS);
        playerScr.player.chassiS = chassiS;
      } else if (i == 2) {
        chassiS = 0.79;
        System.out.println("" + chassiS);
        playerScr.player.chassiS = chassiS;
      }
    }
  }
예제 #7
0
 public static Game get() {
   return Games.get("splegg");
 }
예제 #8
0
파일: Games19.java 프로젝트: ktw14/vitoex
 public static void playGame(GamesFactory factory) {
   Games g = factory.getGames();
   g.play();
 }
예제 #9
0
    public void run() {
      BufferedReader MessageIn = null;
      PrintWriter MessageOut = null;

      System.out.println(
          "Client accepté à l'adresse : " + myClientSocket.getInetAddress().getHostName());

      try {
        MessageIn = new BufferedReader(new InputStreamReader(myClientSocket.getInputStream()));
        MessageOut = new PrintWriter(new OutputStreamWriter(myClientSocket.getOutputStream()));

        while (m_bRunThread) {
          String Messageclient = MessageIn.readLine();
          System.out.println(
              "Client "
                  + myClientSocket.getInetAddress().getHostName()
                  + " envoie :"
                  + Messageclient);
          String[] Message = Messageclient.split("XIX");

          /*
           * Préviens que le serveur est fermé.
           * Problème actuel
           * Le message n'est pas reçu par le client.
           */
          if (!ServerOn) {
            System.out.println("Le serveur est fermé");
            MessageOut.println("Le serveur est fermé");
            MessageOut.flush();
            m_bRunThread = false;
          }

          if (Messageclient.equalsIgnoreCase("quit")) // Déconnecter le client
          {
            m_bRunThread = false;
            System.out.println(
                "Déconnecte le client : " + myClientSocket.getInetAddress().getHostName());
          }

          /*
           * Ferme le serveur
           * Problème actuel
           * Necessite de le faire 2 fois
           * (Se connecter, envoyer "end" qui déconnecte et se reconnecter pour renvoyer "end"
           */
          else if (Messageclient.equalsIgnoreCase("end")) {
            m_bRunThread = false;
            System.out.println(
                "Déconnecte le client : " + myClientSocket.getInetAddress().getHostName());
            ServerOn = false;
          }

          /*
           * Vérification de l'existence d'un joueur dans la BDD
           * Fournir un message du format
           * ConnectXIXNomjoueurXIXMdpJoueur
           */
          else if (Message[0].equalsIgnoreCase("Connect")) // Authentification
          {
            if (Message[1] != null && Message[2] != null) {
              if (Test1.Authentification(Message[1], Message[2])) {
                System.out.println("Authentification réussite");
                MessageOut.println("Vous êtes Izual, Bienvenue");
                MessageOut.flush();
              } else {
                System.out.println("Authentification échouée");
                MessageOut.println(
                    "Pas de compte existant à ce Login ou erreur dans le mot de passe");
                MessageOut.flush();
              }
            } else {
              System.out.println("Message Connect incomplet");
            }

          }
          /*
           * Connexion à une autre BDD
           * Fournir un message du format
           * BddXIXNomdelaBdd
           */
          else if (Message[0].equalsIgnoreCase("Bdd")) {
            if (Test1.ConnexionBdd(Message[1])) {
              System.out.println("Connexion à une autre BDD");
              MessageOut.println("Vous vous êtes bien connecté à une Bdd");
              MessageOut.flush();
            } else {
              System.out.println("Connexion Bdd échouée");
              MessageOut.println("Bdd inexistante");
              MessageOut.flush();
            }
          }
          /*
           * En phase de test
           * Créé une partie avec pour nom "Test8"
           * Fournir un message du format
           * StartGameXIXNomjoueur1XIXNomjoueur2
           */
          else if (Message[0].equalsIgnoreCase("StartGame")) {
            if (Test1.VerifPlayer(Message[1]) && Test1.VerifPlayer(Message[2])) {
              Player p1 = new Player(Message[1]);
              Player p2 = new Player(Message[2]);
              Game g1 = new Game(p1, "Test8");
              Test1.Matchmaking(p1.getName(), g1.getGameName());
              g1.addPlayer(p2);
              Test1.StartMatch(p2.getName(), g1.getGameName());
              Games.add(g1);
              System.out.println("Partie crée");
            }
          }
          /*
           * En phase de test
           * Donne le nombre de partie en cours
           * Ne renvoie pas les parties de la BDD
           * Fournir un message du format
           * TestGames
           */
          else if (Message[0].equalsIgnoreCase("TestGames")) {
            System.out.println(Games.get(0).getGameName());
            System.out.println(Games.get(0).getHost());
            if (Games.isEmpty()) System.out.println("Aucune Game n'existe");
            else System.out.println("Il y a " + Games.size() + " parties en ce moment");

          } else {
            MessageOut.println("La commande : " + Messageclient + " n'est pas reconnue");
            MessageOut.flush();
          }
        }
      } catch (Exception e) {
        e.printStackTrace();
      } finally {
        // Ferme proprement
        try {
          MessageIn.close();
          MessageOut.close();
          myClientSocket.close();
          System.out.println("Stop");
        } catch (IOException ioe) {
          ioe.printStackTrace();
        }
      }
    }