Simulateur pour projet QGL

par Tom
le 20/01/2022

Ne fonctionne pas avec Java ≥ 17 ! Utiliser 16 ou inférieur

(de toute façon, pour QGL vous êtes censés utiliser Java 11)

  1. Télécharger depuis ce lien soyouz.tooling.jar et games.zip
  2. Ajouter le .jar en référence dans IntelliJ :

  1. Dans le Application.java du projet tooling, modifier la méthode main pour obtenir ceci :
public static void main(String[] args) 
{
    fr.unice.polytech.si3.qgl.soyouz.tooling.Application.runSimulator(fr.unice.polytech.si3.qgl.teamid.Cockpit.class); // <-----------
}

(Remplacez teamid par votre nom d'équipe)

  1. Extraire le zip de sorte à avoir le dossier games à la racine du projet

  1. Mettre quelque chose dans votre Cockpit, par exemple voici une fonction qui valide la Week 1 :
public String nextRound(String round) {
    System.out.println("Next round input: " + round);
    return " [{"
            + "    \"sailorId\": 0,"
            + "    \"type\": \"OAR\""
            + "  },"
            + "  {"
            + "    \"sailorId\": 1,"
            + "    \"type\": \"OAR\""
            + "  }]";
}

(ce code demande simplement aux deux marins de ramer tout droit)

  1. Lancer le main via IntelliJ. Vous devriez pouvoir lancer la simulation (sur le fichier Week1.json) et le bateau devrait avancer.

Utilisation du simulateur

En lançant le simulateur, la fenêtre ressemble à ça :

La flèche noire est votre bateau. Le cercle noir correspond à votre "champ de vision", qui devient important plus tard dans le projet quand il y aura des obstacles, car ne vous seront fournis à chaque tour que les obstacles dans votre champ de vision. En rouge et numérotés, les objectifs.

En haut à gauche, le pont du bateau. Les cercles colorés numérotés représentent les marins.

Dans l'ordre :

  • Next = faire une étape de simulation
  • Play = lancer la simulation jusqu'à ce que le bateau atteigne l'objectif final
  • Reset = redémarrer la simuation
  • Reset & shuffle = redémarrer la situation en plaçant les marins au hasard dans le bateau
  • Clear path = inutile
  • Benchmark = inutile pour vous
  • Center view = centre la vue (2D) sur la scène
  • Vue 3D = vue 3D, inutile
  • Show graph = inutile
  • Show nodes = inutile
  • Debug collisions = inutile
  • Slow/Medium/Fast = vitesse de simulation
  • games\*.json = choix de la carte

Pensez à regarder la sortie console à la recherche d'erreurs !

Captures d'écran