Teaching - 2i013

Enseignants


2i013 - Groupe 5 : Course de voiture

Vérifier l'admissibilité d'une commande:

 double com = c.getTurn();
 c.setTurn(Math.min(Math.abs(com), v.getMaxTurnSansDerapage())*Math.signum(com));

Attributs pour la génération de circuit par algorithme:

 private Random r = new Random(0); // pour la génération des nombres aléatoires
 private int sizeX=600, sizeY=600; // dimension du circuit
 private int bordure=10; // bordure d'herbe
 private Vecteur dirDepart = new Vecteur(0,1);
 private Vecteur dirArrivee = new Vecteur(0,1);
 private Vecteur depart = new Vecteur(bordure+10, bordure+10);
 private Vecteur[] arrivees = new Vecteur[]{new Vecteur(sizeX-bordure-1,sizeY-bordure),
   new Vecteur(sizeX-bordure-2,sizeY-bordure), new Vecteur(sizeX-bordure-3,sizeY-bordure)};

Méthode d'initialisation du terrain:

 private void init(Terrain[][] track ){
	for(int i=0; i<sizeX; i++)
		for(int j=0; j<sizeY; j++){
			if(i<bordure || i>sizeX-bordure)
				track[i][j] = Terrain.Herbe;
			else if(j<bordure || j>sizeY-bordure)
				track[i][j] = Terrain.Herbe;
			else
				track[i][j] = Terrain.Route;
		}

	track[(int) depart.getX()][(int) depart.getY()] = Terrain.StartPoint;
	for(Vecteur v:arrivees)
		track[(int) v.getX()][(int) v.getY()] = Terrain.EndLine;
 }

Morceaux de code éventuellement utilisables (feux de forêt):

 int range = 2;
 for(int i=-range; i<=range; i++)
   for(int j=-range; j<=range; j++)


 Vecteur v = new Vecteur(f.getX()+i,f.getY()+j);
 if(i==0 && j == 0)
   continue; // ne pas traiter ce voisin
 if(v.getX() < 10 || v.getY() < 10 || 
   v.getX() > track.length -10 || v.getY() > track[0].length -10)
   continue; // ne pas traiter ce voisin

Morceaux de code utilisables (Fourmis)

  public class Fourmi {

  private Terrain source, cible;
  private double rotation;
  private Vecteur position, direction;

  // un fourmi transforme le terrain source en terrain cible
  public Fourmi(Terrain source, Terrain cible, double rotation,
			Vecteur position, Vecteur direction) {
    this.source = source;
    this.cible = cible;
    this.rotation = rotation;
    this.position = position;
    this.direction = direction;
  }