Bonjour à tous les People's Zero , heureux de revenir comme un p'tit codeuroïde parmi les Maestro de JAVA POO.
Bref, y a deux jours que je tente d'améliorer ce petit code. C'est un jeu et comme tous les jeux quand l'utilisateur termine on doit lui de demander s'il voulait rejouer.
Bah c'est ça mon problème. J'ai tenté d'englober tout le programme avec une boule (do [...] while) pour que l'utilisateur rejoue mais ça n'a pas passé . Donc s'il y a quelqu'un qui pourrait m'aider, son aide sera le bienvenu . Merci d'avance
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class JEU_CAPITAL {
public static void main(String[] args) {
final int NOMBREQUES = 7;
int index, score = 0;
String pays, user_resp, capital;
ArrayList<Integer> indexAlready = new ArrayList<>();
String [][] donne = {
{"Sénégal", "Dakar"},
{"France", "Paris"},
{"Monaco", "Monaco"},
{"Nigeria", "Lagos"},
{"Gabon", "Libreville"},
{"Italie", "Rome"},
{"Liberia", "Monrovia"},
{"Perou" , "Lima"},
};
Scanner clavier = new Scanner(System.in);
for(int i=0; i< NOMBREQUES; i++ ){
do{
Random random = new Random();
index = random.nextInt(donne.length);
} while(indexAlready.contains(index));
indexAlready.add(index);
pays = donne[index][0];
capital = donne[index][1];
System.out.printf("Quelle est la capitale de ce pays : %s ?\n", pays);
user_resp = clavier.nextLine();
if(capital.equalsIgnoreCase(user_resp)){
System.out.println("Bonne réponse !! \n");
score++;
System.out.printf("Votre score est : %d/%d : \n", score, NOMBREQUES);
score++;
}
else{
System.out.printf("Mauvaise réponse. Il fallait répondre : %s \n", capital);
}
}
System.out.printf("Terminer\n\nVotre score est : %d/%d \n\n", score, NOMBREQUES);
}
}
- Edité par AbdoulFall1 17 octobre 2016 à 15:33:27
Pour faire un tant que qui marche généralement il suffit de faire un code du genre...
bool continue = true ;
while ( continue ) {
//Ton code
//Tu édite ta variable suivant la réponse
}
Petite remarque, fais gaffe au mélande de nextLine et de nextInt, si tu dois utiliser les deux renseigne toi bien (notemment sur la méthode next) ou n'utilise que nextLine() couplé à un cast explicite. Cela te permettra d'éviter les erreurs bête et de mieux gérer tes erreurs lorsque l'utilisateur ne rentre pas un entier ! Ton problème de boucle do while qui ne marchait pas peut possiblement venir de la si tu utilise un système comme celui que je t'ai donné !
Fait juste attention avec les readLine() dans certain cas ils on tendance a retourner des valeur vide dans les boucle while ...
Capitale de Pays
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.