Boucle While
liliRose
-
Doctor C Messages postés 630 Date d'inscription Statut Membre Dernière intervention -
Doctor C Messages postés 630 Date d'inscription Statut Membre Dernière intervention -
Bonjour mes ami(e)s, je suis débutante en java et on m a demandé de faire l'exercice suivant et j'ai énormément de mal à le faire :(
Dans le jeu du 13, 2 joueurs retirent à tour de role 1,2 ou 3 allumette d'un tas de 13 allumettes. Le joueur qui retire la dernière allumette à gagné.
Ecrire la classe qui implément ce jeu conformément à l'exemple suivant :
Au tour du joueur 0. Il reste 13 allumette(s). Combien en retirez vous? 3
Au tour du joueur 1. Il reste 10 allumette(s). Combien en retirez vous? 2
Au tour du joueur 0. Il reste 8 allumette(s). Combien en retirez vous? 3
Au tour du joueur 1. Il reste 5 allumette(s). Combien en retirez vous? 1
Au tour du joueur 0. Il reste 4 allumette(s). Combien en retirez vous? 3
Au tour du joueur 1. Il reste 1 allumette(s). Combien en retirez vous? 1
le joueur 0 a perdu
Pour cela j'ai commencé à faire ceci :
import java.util.Scanner;
class Ex5{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int allumetteTotal=13;
int allumetteRestante, allumetteRetiree;
String j0, j1;
allumetteRestante=allumetteTotal-allumetteRetiré
while(allumetteRestante !=1){
System.out.println("Au tour du joueur j0");
j0=sc.nextLine();
System.out.println("Au tour du joueur j1");
j1=sc.nextLine();
System.out.println("Il reste "+allumetteRestante+" allumette(s)");
System.out.println("Combien en retirez vous? ");
sc.nextInt().allumetteRetiree();
}
Je vous demanderais de l'indulgence si je me suis trompé, je suis encore nouvelle et j'espère que vous pourriez prendre un peu de votre temps pour m'expliquer de la plus simple des manières. :)
Merci :)
Dans le jeu du 13, 2 joueurs retirent à tour de role 1,2 ou 3 allumette d'un tas de 13 allumettes. Le joueur qui retire la dernière allumette à gagné.
Ecrire la classe qui implément ce jeu conformément à l'exemple suivant :
Au tour du joueur 0. Il reste 13 allumette(s). Combien en retirez vous? 3
Au tour du joueur 1. Il reste 10 allumette(s). Combien en retirez vous? 2
Au tour du joueur 0. Il reste 8 allumette(s). Combien en retirez vous? 3
Au tour du joueur 1. Il reste 5 allumette(s). Combien en retirez vous? 1
Au tour du joueur 0. Il reste 4 allumette(s). Combien en retirez vous? 3
Au tour du joueur 1. Il reste 1 allumette(s). Combien en retirez vous? 1
le joueur 0 a perdu
Pour cela j'ai commencé à faire ceci :
import java.util.Scanner;
class Ex5{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int allumetteTotal=13;
int allumetteRestante, allumetteRetiree;
String j0, j1;
allumetteRestante=allumetteTotal-allumetteRetiré
while(allumetteRestante !=1){
System.out.println("Au tour du joueur j0");
j0=sc.nextLine();
System.out.println("Au tour du joueur j1");
j1=sc.nextLine();
System.out.println("Il reste "+allumetteRestante+" allumette(s)");
System.out.println("Combien en retirez vous? ");
sc.nextInt().allumetteRetiree();
}
Je vous demanderais de l'indulgence si je me suis trompé, je suis encore nouvelle et j'espère que vous pourriez prendre un peu de votre temps pour m'expliquer de la plus simple des manières. :)
Merci :)
A voir également:
- Boucle While
- Application error: a client-side exception has occurred while loading www.leboncoin.fr (see the browser console for more information). - Forum Réseaux sociaux
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Vlc lecture en boucle ✓ - Forum Lecteurs et supports vidéo
- Redémarrage en boucle Xiamo mi note 10 - Forum Xiaomi
4 réponses
Le code que j'ai écrit n'est pas valide, c'est du pseudo-code, il ne compilera pas. Tu dois l'adapter en java.
Pour expliquer davantage, voici une version un peu mieux écrite des conditions de joueur en cours (J'avais une condition que j'avais oublié de supprimer, ça devrait être plus clair maintenant):
Au début du programme, la variable
À chaque tour de boucle, la variable "joueur_en_cours" change pour l'autre joueur, ce qui simule le changement de joueur.
Pour expliquer davantage, voici une version un peu mieux écrite des conditions de joueur en cours (J'avais une condition que j'avais oublié de supprimer, ça devrait être plus clair maintenant):
// Avant la boucle joueur_en_cours = "Joueur 0"
// Dans la boucle Si ( joueur_en_cours == "Joueur 0") joueur_en_cours = "Joueur 1" Sinon joueur_en_cours = "Joueur 0"
Au début du programme, la variable
joueur_en_coursest initialisée à "Joueur 0" ce qui veut dire que c'est au tour du joueur 0 de jouer. Lors du premier passage dans la boucle, le joueur 0 joue et à la fin de la boucle, la variable
joueur_en_coursest changée pour "Joueur 1" ce qui signifie que c'est à son tour de jouer (le prochain passage dans la boucle).
À chaque tour de boucle, la variable "joueur_en_cours" change pour l'autre joueur, ce qui simule le changement de joueur.
Voici du pseudo code qui illustre une manière de procéder:
Pour résumer, on retire un nombre x d'allumettes à chaque tour dans la boucle tout en gardant une trace de qui est en train de jouer. Ça devrait au moins te donner quelques idées.
Bonne chance!
nombre d'allumettes restantes = 13
Joueur en cours = 0
while ( nombre d'allumettes restantes > 0 )
{
//Afficher la ligne à la console
Afficher "Au tour du joueur" + Joueur en cours + ". Il reste " + nombre d'allumettes restantes + "allumette(s). Combien en retirez-vous?"
//Obtenir le nombre d'allumettes retirées
Nombre d'allumettes retirées = Lire le nombre entré()
//Calculer le nombre d'allumettes restantes
Nombre d'allumettes restantes = Nombre d'allumettes restantes - Nombre d'allumettes retirées
//Déterminer quel joueur sera le prochain à jouer
Si ( Joueur en cours == Aucun)
Joueur en cours = Joueur 0
Sinon si ( Joueur en cours == Joueur 0)
Joueur en cours = Joueur 1
Sinon
Joueur en cours = Joueur 0
}
Afficher "Le joueur" + Joueur en cours + " a perdu."
Pour résumer, on retire un nombre x d'allumettes à chaque tour dans la boucle tout en gardant une trace de qui est en train de jouer. Ça devrait au moins te donner quelques idées.
Bonne chance!