Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de fichier à remplir

1 réponse
Avatar
BKCelia
Bonsoir,

Moi et un camarade travaillons sur un jeu, utilisant des fichiers pour les scores effectués par les joueurs. A la fin d'une partie, le joueur rentre son nom dans une fenêtre qui s'ouvre, et le nom est récupéré pour rentrer dans le fichier, pareil pour son score.

ci-dessous, nos différentes class :

package Systeme;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import Jeu.Scene;
import Objets.Comet;

public class GameOver extends JFrame{

JTextArea texte;
JButton Button;
JLabel label;
static String NouveauJoueur;
public static int P = 0;



public GameOver() {
setLayout(new FlowLayout());

texte = new JTextArea(5, 25);
add(texte);

Button = new JButton("e;Enter"e;);
add(Button);
label = new JLabel("e;Enter your name"e;);
add(label);

event e = new event();
Button.addActionListener(e);
}

public class event implements ActionListener {
public void actionPerformed(ActionEvent e) {
NouveauJoueur = texte.getText();
P = 1;
label.setText("e;Hello "e; + NouveauJoueur + "e;, nice to meet you. Such a nice score !"e;);
}
}


public static void main(String args[]) {

GameOver fenetre3 = new GameOver();
fenetre3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre3.setSize(300, 200);
fenetre3.setLocationRelativeTo(null);
fenetre3.setResizable(false);
fenetre3.setAlwaysOnTop(true);

if (Scene.mort == 0){
fenetre3.setVisible(true);
}

}
}

///////////////Autre class, celle s'occupant du fichier////////////////

int NJ = 0;
int NS = 0;
Compteur = 1;

if(GameOver.P == 1 ) {
if(Scene.NouveauScore >Integer.valueOf(Scoretrie [9][0])) {
Scoretrie [9][0] = Integer.toString(Scene.NouveauScore);
Scoretrie [9][1] = GameOver.NouveauJoueur;
try{
PrintWriter ASortie = new PrintWriter("e;Score.txt"e;);
for(k = 0; k<20; k++) {
int reste = Compteur % 2;
if(reste != 0){
ASortie.println(Scoretrie [NS][0]);
NS = NS + 1;
Compteur = Compteur + 1;
}
else {
ASortie.println(Scoretrie [NJ][1]);
NJ = NJ + 1;
Compteur = Compteur + 1;
}
}
ASortie.close();
}
catch (IOException e){
println("e;Erreur Traitement fichier:"e;+ e );
}
}
else {
try{
PrintWriter BSortie = new PrintWriter("e;Score.txt"e;);
for(k = 0; k<20; k++) {
int reste = Compteur % 2;
if(reste != 0){
BSortie.println(Scoretrie [NS][0]);
NS = NS + 1;
Compteur = Compteur + 1;
}
else {
BSortie.println(Scoretrie [NJ][1]);
NJ = NJ + 1;
Compteur = Compteur + 1;
}
}
BSortie.close();
}
catch (IOException e){
println("e;Erreur Traitement fichier:"e;+ e );
}
}
}
}
}
///////////Autre class, pour la création de la fenêtre///////////////
if(this.comet.isVivant() == false && O == 0) {
removeAll();

GameOver fenetre3 = new GameOver();
fenetre3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre3.setSize(300, 200);
fenetre3.setLocationRelativeTo(null);
fenetre3.setResizable(false);
fenetre3.setAlwaysOnTop(true);
fenetre3.setVisible(true);
O = 1;


}
if(this.comet.isVivant() == false ) {
g2.drawImage(this.imgFin, 0, 0, null);
NouveauScore = score;
}




Malheureusement, le nom et le nouveau score ne s'enregistre pas dans le fichier, et on ne comprends pas pourquoi, alors que si l'on fait marcher la partie qui s'occupe du score tout seul et qu'on entre dedans le nouveau nom et le nouveau score, tout marche correctement.

1 réponse

Avatar
David Larochette
Le 15/05/2020 à 00:06, BKCelia a écrit :
Bonsoir,
Moi et un camarade travaillons sur un jeu, utilisant des fichiers pour les
scores effectués par les joueurs. A la fin d'une partie, le joueur rentre son
nom dans une fenêtre qui s'ouvre, et le nom est récupéré pour rentrer dans le
fichier, pareil pour son score.
ci-dessous, nos différentes class :

[SNIP: code]
public class event implements ActionListener {
public void actionPerformed(ActionEvent e) {
NouveauJoueur = texte.getText();
P = 1;
label.setText("e;Hello "e; + NouveauJoueur + "e;, nice to meet you. Such a
nice score !"e;);
}
}

[SNIP: code]
Malheureusement, le nom et le nouveau score ne s'enregistre pas dans le fichier,
et on ne comprends pas pourquoi, alors que si l'on fait marcher la partie qui
s'occupe du score tout seul et qu'on entre dedans le nouveau nom et le nouveau
score, tout marche correctement.

Je ne vois pas d'appel à la fonction qui écrit le fichier des scores
lorsqu'on clique sur le bouton, ou sur un quelconque autre événement.