Question java
Max0123456
Messages postés
112
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour, comment supprimer un mot du fichier csv lorsqu'il est utilisé pour ne pas avoir deux fois la même question avec le même mot et arrêter lorsque tous les mots ont été utilisés ?
4 réponses
-
Bonjour,
Quand tu poses une question, essaye de te mettre à la place de celui qui va te répondre : relis toi, ta question on ne peut pas y répondre car on ne comprend rien, cela manque d'explications, d'exemple et de code.
Plus ta question sera précise, plus la réponse que l'on te donnera sera pertinente, mais en l'état on ne peut même pas esquisser un début d'aide. -
import extensions.CSVFile;
CSVFile motPrix = loadCSV("motPrix");
class Mot { String mot; int prix; }
void jouer (Mot info) { int JustePrix = info.prix; int Prix; println("Quel est le prix d'" + info.mot); do{ compteur = compteur + 1; Prix = readInt(); if (Prix<JustePrix){ println("C'est +"); } else if (Prix>JustePrix) { println("C'est -"); } } while(Prix!=JustePrix);
Mot motAlea(){ Mot mp = new Mot(); int ligne = (int)(random() * rowCount(motPrix)); mp.mot = getCell(motPrix, ligne, 0); String prix = getCell(motPrix, ligne, 1); mp.prix = stringToInt(prix); return mp; }
le nom du csv : motPrix
Il y a deux colonnes, une avec les mots et l'autre avec les prix -
Je ne sais pas comment tu appelles la méthode motAlea(), peut-être au travers d'une boucle while(true) qui ne finit jamais ? C'est à ce niveau là qu'il faudrait intervenir.
Au lieu de faire :Mot motAlea(){ int ligne = (int)(random() * rowCount(motPrix)); // ... return mp; } while (true) { Mot mot = motAlea(); // ... }
Tu peux faire :Mot getMot(int ligne) { // ... return mp; } for (int ligne : randomLignes()) { Mot mot = getMot(ligne); // ... }
Avec :List<Integer> randomLignes(){ List<Integer> lignes = new ArrayList<>(); for (int ligne = 0, count = rowCount(motPrix); ligne < count; ligne++) lignes.add(ligne); Collections.shuffle(lignes); return lignes; } -
boolean rejouer(boolean sort) { println("Voulez-vous rejouer (O : Oui, N : Non) ?"); char reponseJ = readChar(); if(reponseJ == 'N') { sort = true; } if(reponseJ == 'O' || reponseJ == '0') { sort = false; } return sort; }
boolean sortie = false; while(sortie == false) { Mot motAlea = motAlea(); jouer(motAlea); sortie = rejouer(sortie); }