Ajout de classes pour l'affichage du résultat des simulation
This commit is contained in:
parent
0edf40fbf5
commit
4488c72f28
65
src/AutoSimulationView.java
Normal file
65
src/AutoSimulationView.java
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The view for the auto simulation
|
||||||
|
* Display directly the success rate and the average number of moves of the simulations
|
||||||
|
* @version 1.0
|
||||||
|
* @author Amir Daouadi
|
||||||
|
* @author Lyanis Souidi
|
||||||
|
*/
|
||||||
|
public class AutoSimulationView extends JPanel {
|
||||||
|
/**
|
||||||
|
* The simulations to display
|
||||||
|
*/
|
||||||
|
private Simulation[] simulations;
|
||||||
|
/**
|
||||||
|
* The success rate of the simulations
|
||||||
|
*/
|
||||||
|
private float success = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The average number of moves of the simulations
|
||||||
|
*/
|
||||||
|
private float moves = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
* @param simulations The simulations to display
|
||||||
|
*/
|
||||||
|
public AutoSimulationView(Simulation[] simulations) {
|
||||||
|
super();
|
||||||
|
this.simulations = simulations;
|
||||||
|
this.setOpaque(false);
|
||||||
|
this.setPreferredSize(new Dimension(700, 500));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate the success rate and the average number of moves
|
||||||
|
*/
|
||||||
|
private void calculate() {
|
||||||
|
for (Simulation simulation : simulations) {
|
||||||
|
this.success += simulation.isSuccess() ? 1 : 0;
|
||||||
|
this.moves += simulation.getMoves();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.success = (this.success / simulations.length) * 100;
|
||||||
|
|
||||||
|
this.moves = this.moves / simulations.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paintComponent(Graphics g) {
|
||||||
|
super.paintComponent(g);
|
||||||
|
calculate();
|
||||||
|
g.setColor(Color.BLACK);
|
||||||
|
g.setFont(new Font("Arial", Font.PLAIN, 20));
|
||||||
|
FontMetrics metrics = g.getFontMetrics(g.getFont());
|
||||||
|
|
||||||
|
String successStr = "Taux de réussite : " + this.success + "%";
|
||||||
|
g.drawString(successStr, (getWidth() - metrics.stringWidth(successStr)) / 2, ((getHeight() - metrics.getHeight()) / 2 + metrics.getAscent()) - 50);
|
||||||
|
|
||||||
|
String movesStr = "Nombre de mouvements moyen : " + this.moves;
|
||||||
|
g.drawString(movesStr, (getWidth() - metrics.stringWidth(movesStr)) / 2, ((getHeight() - metrics.getHeight()) / 2 + metrics.getAscent()) + 50);
|
||||||
|
}
|
||||||
|
}
|
48
src/Simulation.java
Normal file
48
src/Simulation.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* This class is used to store the number of moves and if the simulation was successful or not
|
||||||
|
* @version 1.0
|
||||||
|
* @author Amir Daouadi
|
||||||
|
* @author Lyanis Souidi
|
||||||
|
*/
|
||||||
|
public class Simulation {
|
||||||
|
/**
|
||||||
|
* The number of moves of the simulation
|
||||||
|
*/
|
||||||
|
private int moves = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the simulation has been successful or not
|
||||||
|
*/
|
||||||
|
private boolean success = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of moves of the simulation
|
||||||
|
* @return The number of moves
|
||||||
|
*/
|
||||||
|
public int getMoves() {
|
||||||
|
return this.moves;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get if the simulation has been successful or not
|
||||||
|
* @return If the simulation has been successful or not
|
||||||
|
*/
|
||||||
|
public boolean isSuccess() {
|
||||||
|
return this.success;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a move to the simulation
|
||||||
|
*/
|
||||||
|
public void addMove() {
|
||||||
|
this.moves++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if the simulation has been successful or not
|
||||||
|
* @param success If the simulation has been successful or not
|
||||||
|
*/
|
||||||
|
public void setSuccess(boolean success) {
|
||||||
|
this.success = success;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user