mirror of
https://github.com/guezoloic/L3-racing-game.git
synced 2026-03-28 19:13:41 +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'},
|
||||
{'9', '#', 'F'},
|
||||
});
|
||||
|
||||
System.out.println(m.getPathSize());
|
||||
Car car = new Car(m.getPathSize());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user