Charles.w Posté(e) le 22 novembre 2008 Partager Posté(e) le 22 novembre 2008 Les do while ne sont pas obligatoires...tu peux passer par des while...faut juste faire gaffe au valeurs de tes variables avant d'entrer dans la boucle Là j'ai modifié le code pour n'utiliser que des while...et il faut que je mette quelque chose qui me permette de rentrer dans la boucle une première fois...ici, il faut juste que le nombre d'allumettes du joueur ou de l'ordinateur soit plus grand que le nombre d'allumettes du plateau de jeu. import java.util.Scanner; public class NewClass { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int nombreAllumettesTotal = 17; int nombreAllumettesJoueur = 0; int nombreAllumettesOrdinateur = 0; int tourJoueurInt = 0; boolean tourJoueur; //Détermine qui commencera le premier :-) tourJoueurInt = (int) (Math.random() * 2) + 1; // On fait le tirage au sort pour savoir qui commence if (tourJoueurInt == 1) { tourJoueur = true; System.out.println("Vous commence la partie"); } else { tourJoueur = false; System.out.println("C'est l'ordinateur qui commence la partie"); } // On commence la boucle du jeu while (nombreAllumettesTotal > 0) { System.out.println("Il reste " + nombreAllumettesTotal + " allumettes."); //Si c'est au joueur if (tourJoueur == true) { System.out.println("A vous de jouer"); nombreAllumettesJoueur = nombreAllumettesTotal + 1; //Sert à déterminer si le nombre d'allumettes saisi est correct //vis à vis du nombre d'allumettes restant sur le plateau while (nombreAllumettesJoueur > nombreAllumettesTotal) { //On lui demande de saisir un nombre d'allumettes compris entre 1 et 3 while ((nombreAllumettesJoueur < 1) || (nombreAllumettesJoueur > 3)) { System.out.println("Combien d'allumettes enlever ? (entre 1 et 3)"); nombreAllumettesJoueur = sc.nextInt(); } //A ce point, on sait que l'utilisateur a saisi un nombre entre 1 et 3 //mais il peut être supérieur au nombre d'allumettes restant sur le plateau } //A ce point, on est certain que le nombre d'allumettes saisi est //compris entre 1 et 3, et que ce nombre est inférieur au nombre //d'allumettes restant sur le plateau //On modifie le nomnbre d'alumettes nombreAllumettesTotal = nombreAllumettesTotal - nombreAllumettesJoueur; System.out.println("Vous avez enlevé : " + nombreAllumettesJoueur); } else { System.out.println("L'ordinateur joue."); nombreAllumettesOrdinateur = nombreAllumettesTotal + 1; //Sert à déterminer si le nombre d'allumettes saisi est correct //vis à vis du nombre d'allumettes restant sur le plateau while (nombreAllumettesOrdinateur > nombreAllumettesTotal) { //L'ordinateur choisi le nombre d'allumettes qu'il enlève du plateau nombreAllumettesOrdinateur = (int) (Math.random() * 3) + 1; } //A ce point, on est certain que le nombre d'allumettes calculé est //compris entre 1 et 3, et que ce nombre est inférieur au nombre //d'allumettes restant sur le plateau //On modifie le nombre d'allumettes nombreAllumettesTotal = nombreAllumettesTotal - nombreAllumettesOrdinateur; System.out.println("L'ordinateur a enlevé " + nombreAllumettesOrdinateur + " allumettes."); } //A ce point, soit l'ordinateur vient de jouer, soit le joueur vient de jouer //On indique le prochain joueur tourJoueur = !tourJoueur; } //A ce point, on est certain qu'on a un gagnant... //si true...c'est le joueur qui a joué en dernier if (tourJoueur == false) { System.out.println("L'ordinateur à gagné"); } //sinon, c'est l'ordinateur qui a joué en dernier else { System.out.println("Vous avez gagné"); } } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
eYo Posté(e) le 22 novembre 2008 Auteur Partager Posté(e) le 22 novembre 2008 Oui j'aime bien aussi, mais en cours ils nous on dit qu'en général on les utilisaient très peu.. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Charles.w Posté(e) le 22 novembre 2008 Partager Posté(e) le 22 novembre 2008 En cours les profs racontent pas mal de conneries...à la fac et dans nombre d'école d'ingé généraliste qui se donnent une vague coloration informatique, les profs sont souvent incompétents...et ne veulent pas mettre leurs cours à jour...bien entendu il n'aiment pas qu'on le leur rappelle...en DUT j'ai failli ne pas être admis en deuxième année à cause de ça alors que j'étais dans les premiers de la promo idem sur un plus gros projet sur lequel j'ai bossé en stage...il n'arretent pas de changer d'archi et de technologies...du coup leur truc est inutilisable...et quand tu propose une solution pour rendre le truc utilisable, on te réponds que tu n'est qu'un petit con inexpérimenté...qu'il a fallu des milliers d'heures pour en arriver là et tout le toutim...là ou je suis maintenant, toutes les idées sont les bienvenues...après comme il n'y a que des têtes bien faites et que la gamme de produit sur laquelle on bosse commence à être mature...bah du coup...là, j'accepte de me faire traiter de petit con inexpérimenté...même si je bosse quasiment 15 - 16h par jour pour refaire mon retard... Lien vers le commentaire Partager sur d’autres sites More sharing options...
eYo Posté(e) le 22 novembre 2008 Auteur Partager Posté(e) le 22 novembre 2008 Effectivement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Charles.w Posté(e) le 22 novembre 2008 Partager Posté(e) le 22 novembre 2008 J'suis sponsorisé par RedBull aussi Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 24 novembre 2008 Partager Posté(e) le 24 novembre 2008 Oui j'aime bien aussi, mais en cours ils nous on dit qu'en général on les utilisaient très peu.. Quoi donc ? Les while ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
eYo Posté(e) le 24 novembre 2008 Auteur Partager Posté(e) le 24 novembre 2008 Non les do...while Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 24 novembre 2008 Partager Posté(e) le 24 novembre 2008 Effectivement c'est très peu utilisé et très moche et pas spécialement utile. Lien vers le commentaire Partager sur d’autres sites More sharing options...
eYo Posté(e) le 24 novembre 2008 Auteur Partager Posté(e) le 24 novembre 2008 Moi j'aime bien Surement parce que je débute Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 24 novembre 2008 Partager Posté(e) le 24 novembre 2008 Après c'est aussi une question de goûts personnels. Mais comme le while est + utilisé, on le lit + facilement. Mais la différence reste quand même que le do while exécute au moins une instruction alors que le while n'en fera aucune si la condition n'est pas réalisée. Et c'est généralement cette fonctionnalité qu'on recherche. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Charles.w Posté(e) le 24 novembre 2008 Partager Posté(e) le 24 novembre 2008 Exactement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.