1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| public class Game {
public static void main(String[] arguments) {
Controleur c = null;
Fenetre f = null;
CompterBatiment cb = null;
InitialiserLeJeu init = null;
EcrireRapport ecr = null;
final Game game = new Game(c, f, cb, init, ecr);
/*
* Avec un timer Swing, le thread de Swing (EDT = Event Dispatch Thread)
* appellera régulièrement (toutes les 1000 millisecondes ici) l'action
* de passage du tour.
*/
new javax.swing.Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (!game.runTurn()) {
((javax.swing.Timer) event.getSource()).stop();
}
}
}).start();
/*
* On peut aussi imaginer que ça se fasse plutôt par l'appui manuel sur
* un bouton.
*/
f.getNextTurnButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (!game.runTurn()) {
((JButton) event.getSource()).setEnabled(false);
}
}
});
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.setVisible(true);
}
private boolean runTurn() {
// while (c.getGame().getState() == GameStateEnum.RUNNING) {
// Trouver mon Player
for (int i = 0; i < c.getGame().getPlayers().size(); i++) {
if (c.getGame().getPlayers().get(i).getName().equals(c.getPseudo())) {
c.setMoi(c.getGame().getPlayers().get(i));
}
}
// Si on est mort, on bloque l'enregistrement de l'argent disponible
// dans l'ArrayList concernée
if (c.getMoi().getState() == PlayerStateEnum.DEAD) {
dead = true;
}
// On stocke les valeurs de cash, d'énergie need et available
if (dead == false) {
c.getArray_argent().add(c.getMoi().getCash());
c.getArray_energie_need().add(c.getMoi().getPowerNeed());
c.getArray_energie_available().add(c.getMoi().getPowerAvailable());
}
// Run de la partie qui retourne la partie ensuite et donc l'état du jeu
// (en cours, fini..)
c.setGame(r.runIA(c, f, cb, this, ecr));
// }
// On continue ?
return c.getGame().getState() == GameStateEnum.RUNNING;
}
} |
Partager