mirror of
https://github.com/guezoloic/racing-game.git
synced 2026-03-28 18:03:50 +00:00
feat(Car.java): ajout commentaire et basic fn
This commit is contained in:
76
src/Car.java
Normal file
76
src/Car.java
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
/**
|
||||||
|
* <code>Car</code> représente une voiture qui avance sur un circuit en boucles.
|
||||||
|
* Chaque appel à {@link #makeMove()} avance la voiture d'une position.
|
||||||
|
* Quand la position atteint la fin de la boucle, un nouveau tour est compté.
|
||||||
|
*/
|
||||||
|
public class Car {
|
||||||
|
|
||||||
|
/** Position actuelle dans la boucle (entre 0 et loop inclus) */
|
||||||
|
private int pos = 0;
|
||||||
|
|
||||||
|
/** Nombre de tours complétés */
|
||||||
|
private int round = 0;
|
||||||
|
|
||||||
|
/** Nombre total de cases dans une boucle (doit être > 0) */
|
||||||
|
private final int loop;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construit une nouvelle voiture.
|
||||||
|
*
|
||||||
|
* @param loop nombre de positions par boucle (doit être > 0)
|
||||||
|
* @throws IllegalArgumentException si {@code loop <= 0}
|
||||||
|
*/
|
||||||
|
public Car(int loop)
|
||||||
|
{
|
||||||
|
if (loop <= 0)
|
||||||
|
throw new IllegalArgumentException("loop must be > 0!");
|
||||||
|
this.loop = loop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fait avancer la voiture d'une position.
|
||||||
|
* <p>Si la position atteint la fin de la boucle, un nouveau tour est compté.</p>
|
||||||
|
*
|
||||||
|
* @return cette même instance (pour chaînage fluide)
|
||||||
|
*/
|
||||||
|
public Car makeMove()
|
||||||
|
{
|
||||||
|
pos++;
|
||||||
|
if (pos == loop)
|
||||||
|
round++;
|
||||||
|
pos %= (loop + 1); // Repart de 0 après avoir dépassé loop
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return la position actuelle dans la boucle
|
||||||
|
*/
|
||||||
|
public int getPosition()
|
||||||
|
{
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return le score, calculé comme (nombre de tours + progression du tour) × 100
|
||||||
|
*/
|
||||||
|
public int getScore()
|
||||||
|
{
|
||||||
|
return (int) ((round + (float) pos / loop) * 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return le nombre de tours complétés
|
||||||
|
*/
|
||||||
|
public int getRound()
|
||||||
|
{
|
||||||
|
return round;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return la taille de la boucle (nombre de positions)
|
||||||
|
*/
|
||||||
|
public int getLoop()
|
||||||
|
{
|
||||||
|
return loop;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,5 +5,8 @@ public class Main {
|
|||||||
{'#', ' ', 'S'},
|
{'#', ' ', 'S'},
|
||||||
{'9', '#', 'F'},
|
{'9', '#', 'F'},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
System.out.println(m.getPathSize());
|
||||||
|
Car car = new Car(m.getPathSize());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user