Probleme avec mon Prog pendu
thegravkiff
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
thegravkiff -
thegravkiff -
voila, demain je passe mon épreuve d'ISN (informatique et science du numérique), et je dois y présenter a 15H50 un projet. j'ai fais un petit programme mais qui ne fonctionne pas !
alors si vous avez de l'aide a me proposer je suis carrement preneur.
**************************************************************
public class Pendu {
//TODO Auto-generated method stub
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("Bienvenue dans le jeu du pendu!");
int y = 0;
while (y == 0){
System.out.println("*Entrez 1 pour jouer à un joueur.(Mode de jeu encore inaccessible)");
System.out.println("*Entrez 2 pour jouer à deux joueurs.");
System.out.println( "*Entrez 3 pour acceder aux crédits.");
System.out.println("*Entrez 4 pour accedez aux instructions de jeu.");
int x = Isn.readInt();
if (x == 1) {
y = 1;
// partie à 1 Joueur.
}
if (x == 2) {
// Partie à 2 Joueurs.
System.out.println("Joueur 2, tapez un mot.");
String MotAtrouver = Isn.readString();
}
if (x == 3) {
System.out.println("Jeu du pendu. dévellopé par Maffre Aloïs.2012-2013");
}
if (x == 4) {
System.out.println("Ce jeu se joue a l'aide du clavier. Le but étant de trouver le mot caché, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez.");}
if (x >4){
System.out.println("touche incorrecte");}
}
//partie commune J1 et J2.
System.out.println("Joueur 1, entrez une lettre.");
//Partie commune aux deux modes de jeu
int nb_erreurs;
boolean mot_fini = false ;
boolean lettre_saisie = false ;
nb_erreurs = 0 ;
int i;
//Partie Joueur 1
y = 1; {
String[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"} ; // on établit les mots à deviner
Random rand=new Random(); //Déclaration de l'objet rand, qui servira a utiliser des nombres aléatoires.
int nbAleatoire=rand.nextInt(tabMots.length); //Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher. motàdeviner=tabMots[nbAleatoire]; //On insère dans la variable motAdeviner le mots qui a été tiré au hasard
String mot_a_deviner=tabMots[nbAleatoire];
char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher
mot_cache = new char [mot_a_deviner.length()];
for (i=0;i<mot_cache.length;i++){
mot_cache= "-" ; //Pour le reste entre on insère des tirets
System.out.print(mot_cache[i]); //Affichage des caractère
}
while (mot_fini == false) {
System.out.println();
int lettre = System.in.read(); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int)
for (i=0; i< mot_a_deviner.length();i++) {
if (lettre == mot_a_deviner.charAt(i)); {
lettre_saisie = true;
mot_cache[i] = (char) lettre; // on remplace le tiret correspondant par la lettre trouvée
}
}
if ( lettre_saisie == false ) {
nb_erreurs = nb_erreurs + 1 ;
System.out.println("Vous avez fait"+ nb_erreurs +"erreurs");
System.out.println(mot_cache[i]);
if (nb_erreurs >= 10) {
System.out.println( "Vous avez perdu! Le mot à trouver était:" + mot_a_deviner); // Le joueur a perdu, on lui donne le mot qu'il devait deviner
break;
}
}
lettre_saisie=false;
//On vérifie si le mot est entièrement trouvé
mot_fini=true;
for( int i1 = 0; i1< mot_a_deviner.length() ; i1++){
if (mot_cache[i1] == '-') {
mot_fini = false;
}
}
if (mot_fini == true){
System.out.println("Vous avez gagné");
}
System.out.print(mot_cache);
}
}
}
//Partie commune aux deux modes de jeu
int nb_erreurs;
boolean mot_fini = false ;
boolean lettre_saisie = false ;
nb_erreurs = 0 ;
int i;
//Partie Joueur 1
y = 1; {
String[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"} ; // on établit les mots à deviner
Random rand=new Random(); //Déclaration de l'objet rand, qui servira a utiliser des nombre aléatoire.
int nbAleatoire=rand.nextInt(tabMots.length); //Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher. motàdeviner=tabMots[nbAleatoire]; //On insère dans la variable motAdeviner le mots qui a été tiré au hasard
String mot_a_deviner=tabMots[nbAleatoire];
char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher
mot_cache=new char [mot_a_deviner.length()];
for (i=0;i<mot_cache.length;i++){
mot_cache='-'; //Pour le reste entre on insère des tirets
System.out.print(mot_cache[i]); //Affichage des caractère
}
while (mot_fini == false) {
System.out.println();
int lettre = System.in.read(); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int)
for (i=0; i< mot_a_deviner.length();i++) {
if (lettre == mot_a_deviner.charAt(i)); {
lettre_saisie = true;
mot_cache[i] = (char) lettre; // on remplace le tiret correspondant par la lettre trouvée
}
}
if ( lettre_saisie == false ) {
nb_erreurs = nb_erreurs + 1 ;
System.out.println("Vous avez fait"+ nb_erreurs +"erreurs");
System.out.println(mot_cache[i]);
if (nb_erreurs >= 10) {
System.out.println( "Vous avez perdu! Le mot à trouver était:" + mot_a_deviner); // Le joueur a perdu, on lui donne le mot qu'il devait deviner
break;
}
}
lettre_saisie=false;
//On vérifie si le mot est entièrement trouvé
mot_fini=true;
for( int i1 = 0; i1< mot_a_deviner.length() ; i1++){
if (mot_cache[i1] == '-') {
mot_fini = false;
}
}
if (mot_fini == true){
System.out.println("Vous avez gagné");
}
System.out.print(mot_cache);
}
}
}
}
}
*********************************************************************
merci de vos futures réponses
alors si vous avez de l'aide a me proposer je suis carrement preneur.
**************************************************************
public class Pendu {
//TODO Auto-generated method stub
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("Bienvenue dans le jeu du pendu!");
int y = 0;
while (y == 0){
System.out.println("*Entrez 1 pour jouer à un joueur.(Mode de jeu encore inaccessible)");
System.out.println("*Entrez 2 pour jouer à deux joueurs.");
System.out.println( "*Entrez 3 pour acceder aux crédits.");
System.out.println("*Entrez 4 pour accedez aux instructions de jeu.");
int x = Isn.readInt();
if (x == 1) {
y = 1;
// partie à 1 Joueur.
}
if (x == 2) {
// Partie à 2 Joueurs.
System.out.println("Joueur 2, tapez un mot.");
String MotAtrouver = Isn.readString();
}
if (x == 3) {
System.out.println("Jeu du pendu. dévellopé par Maffre Aloïs.2012-2013");
}
if (x == 4) {
System.out.println("Ce jeu se joue a l'aide du clavier. Le but étant de trouver le mot caché, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez.");}
if (x >4){
System.out.println("touche incorrecte");}
}
//partie commune J1 et J2.
System.out.println("Joueur 1, entrez une lettre.");
//Partie commune aux deux modes de jeu
int nb_erreurs;
boolean mot_fini = false ;
boolean lettre_saisie = false ;
nb_erreurs = 0 ;
int i;
//Partie Joueur 1
y = 1; {
String[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"} ; // on établit les mots à deviner
Random rand=new Random(); //Déclaration de l'objet rand, qui servira a utiliser des nombres aléatoires.
int nbAleatoire=rand.nextInt(tabMots.length); //Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher. motàdeviner=tabMots[nbAleatoire]; //On insère dans la variable motAdeviner le mots qui a été tiré au hasard
String mot_a_deviner=tabMots[nbAleatoire];
char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher
mot_cache = new char [mot_a_deviner.length()];
for (i=0;i<mot_cache.length;i++){
mot_cache= "-" ; //Pour le reste entre on insère des tirets
System.out.print(mot_cache[i]); //Affichage des caractère
}
while (mot_fini == false) {
System.out.println();
int lettre = System.in.read(); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int)
for (i=0; i< mot_a_deviner.length();i++) {
if (lettre == mot_a_deviner.charAt(i)); {
lettre_saisie = true;
mot_cache[i] = (char) lettre; // on remplace le tiret correspondant par la lettre trouvée
}
}
if ( lettre_saisie == false ) {
nb_erreurs = nb_erreurs + 1 ;
System.out.println("Vous avez fait"+ nb_erreurs +"erreurs");
System.out.println(mot_cache[i]);
if (nb_erreurs >= 10) {
System.out.println( "Vous avez perdu! Le mot à trouver était:" + mot_a_deviner); // Le joueur a perdu, on lui donne le mot qu'il devait deviner
break;
}
}
lettre_saisie=false;
//On vérifie si le mot est entièrement trouvé
mot_fini=true;
for( int i1 = 0; i1< mot_a_deviner.length() ; i1++){
if (mot_cache[i1] == '-') {
mot_fini = false;
}
}
if (mot_fini == true){
System.out.println("Vous avez gagné");
}
System.out.print(mot_cache);
}
}
}
//Partie commune aux deux modes de jeu
int nb_erreurs;
boolean mot_fini = false ;
boolean lettre_saisie = false ;
nb_erreurs = 0 ;
int i;
//Partie Joueur 1
y = 1; {
String[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"} ; // on établit les mots à deviner
Random rand=new Random(); //Déclaration de l'objet rand, qui servira a utiliser des nombre aléatoire.
int nbAleatoire=rand.nextInt(tabMots.length); //Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher. motàdeviner=tabMots[nbAleatoire]; //On insère dans la variable motAdeviner le mots qui a été tiré au hasard
String mot_a_deviner=tabMots[nbAleatoire];
char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher
mot_cache=new char [mot_a_deviner.length()];
for (i=0;i<mot_cache.length;i++){
mot_cache='-'; //Pour le reste entre on insère des tirets
System.out.print(mot_cache[i]); //Affichage des caractère
}
while (mot_fini == false) {
System.out.println();
int lettre = System.in.read(); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int)
for (i=0; i< mot_a_deviner.length();i++) {
if (lettre == mot_a_deviner.charAt(i)); {
lettre_saisie = true;
mot_cache[i] = (char) lettre; // on remplace le tiret correspondant par la lettre trouvée
}
}
if ( lettre_saisie == false ) {
nb_erreurs = nb_erreurs + 1 ;
System.out.println("Vous avez fait"+ nb_erreurs +"erreurs");
System.out.println(mot_cache[i]);
if (nb_erreurs >= 10) {
System.out.println( "Vous avez perdu! Le mot à trouver était:" + mot_a_deviner); // Le joueur a perdu, on lui donne le mot qu'il devait deviner
break;
}
}
lettre_saisie=false;
//On vérifie si le mot est entièrement trouvé
mot_fini=true;
for( int i1 = 0; i1< mot_a_deviner.length() ; i1++){
if (mot_cache[i1] == '-') {
mot_fini = false;
}
}
if (mot_fini == true){
System.out.println("Vous avez gagné");
}
System.out.print(mot_cache);
}
}
}
}
}
*********************************************************************
merci de vos futures réponses
A voir également:
- Probleme avec mon Prog pendu
- Jeu du pendu - Télécharger - Vie quotidienne
- Robot prog - Télécharger - Édition & Programmation
- Clear prog - Télécharger - Sécurité
- Prog dvb - Télécharger - Télévision
- Le jeu du pendu - Télécharger - Jeux vidéo
15 réponses
Bonjour
C'est que j'appelle du JABOL, pas très objet comme structure pour du java.
La méthode qui fait tout? Difficile à suivre.
Quels sont le ou les messages d'erreur?
C'est que j'appelle du JABOL, pas très objet comme structure pour du java.
La méthode qui fait tout? Difficile à suivre.
Quels sont le ou les messages d'erreur?
Le code que tu a copié collé viens-t-il du même fichier ou de la même classe ? Si c'est le cas tu a de gros problème d'accolade car tu a des accolades qui s'ouvrent pour rien :
et tu a du code qui ne se trouve dans aucune fonction :
// Partie Joueur 1 y = 1; {
et tu a du code qui ne se trouve dans aucune fonction :
//Partie commune aux deux modes de jeu int nb_erreurs; boolean mot_fini = false ;
beaucoup de message d'erreur. ex : "random" non comprise, idem pour "mot_cache", ca comprend pas que c'est une variable etc..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mot_cache= "-" ; //Pour le reste entre on insère des tirets
fonctionne pas non plus .... (désolé multi post).
Si vous pouviez me lister et/ou me corriger le code directement se serait super (bon je conçois : pas que ca a faire aussi). je galere pas mal toute la journée avec mon faible niveau.
fonctionne pas non plus .... (désolé multi post).
Si vous pouviez me lister et/ou me corriger le code directement se serait super (bon je conçois : pas que ca a faire aussi). je galere pas mal toute la journée avec mon faible niveau.
Salut,
Bon je viens de voir ton message, je vais essayer de t'aider si tu a toujours besoin d'aide, mais la si tu doit le donnait demain tu est dans la merde.
Il y a beaucoup de chose à modifier.
Donc si tu a toujours besoin d'aide je vais t'aider, fait moi signe tous de même pour savoir si je ne le fait pas pour rien.
++
Bon je viens de voir ton message, je vais essayer de t'aider si tu a toujours besoin d'aide, mais la si tu doit le donnait demain tu est dans la merde.
Il y a beaucoup de chose à modifier.
Donc si tu a toujours besoin d'aide je vais t'aider, fait moi signe tous de même pour savoir si je ne le fait pas pour rien.
++
Bon ben pas de réponse:
J'ai tous de même fait ça:
Mais ça ne marche pas comme il faut car franchement il faudrait tous le refaire, tu a du vouloir allez trop vite.
J'ai tous de même fait ça:
import java.util.Scanner; // Ici j'import les classes que je doit utiliser. public class Pendu { public static void main(String[] args) { // J'initialise les variables des maintenants en pensant a ne pas les commencer avec une majuscule. Scanner scan = new Scanner(System.in); String motATrouver = new String(); int y = 0; int nb_erreurs = 0; boolean mot_fini = false; boolean lettre_saisie = false; int i; // Je créer une boucle qui verifie si la condition est remplis. while (y == 0) { System.out.println("Bienvenue dans le jeu du pendu!"); System.out.println("*Entrez 1 pour jouer à un joueur.(Mode de jeu encore inaccessible)"); System.out.println("*Entrez 2 pour jouer à deux joueurs."); System.out.println("*Entrez 3 pour acceder aux crédits."); System.out.println("*Entrez 4 pour accedez aux instructions de jeu."); int x = scan.nextInt(); if (x == 1) { // Partie a 1 Joueur. System.out.println("Partie 1 Joueur - (Mode de jeu encore inaccessible)"); y = 1; } // Ici je modifie la variable y pour ne pas repeter la boucle vue que j'ai choisis mon mode de jeu. else if (x == 2) { // Partie a 2 Joueurs. System.out.println("Joueur 2, tapez un mot."); String MotAtrouver = scan.nextLine(); y = 1; } // Ici aussi je modifie la variable y pour ne pas repeter la boucle vue que j'ai choisis mon mode de jeu. else if (x == 3) { System.out.println("Jeu du pendu. Dévellopé par Maffre Aloïs.2012-2013"); } else if (x == 4) { System.out.println("Ce jeu se joue a l'aide du clavier. Le but etant de trouver le mot cacher, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez."); } else { System.out.println("Touche incorrecte."); } } System.out.println("Joueur 1, entrez une lettre."); //Partie Joueur 1 if(y == 1) { String[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"}; // on établit les mots à deviner int rand = (int)(Math.random() * tabMots.length);//Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher. motATrouver = tabMots[rand]; //On insère dans la variable motAdeviner le mots qui a été tiré au hasard String mot_a_deviner = tabMots[rand]; char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher mot_cache = new char [mot_a_deviner.length()]; for (i = 0; i < mot_cache.length; i++) { System.out.print(mot_cache[i]); } //Affichage des caractère while (mot_fini == false) { System.out.println(); int lettre = scan.nextLine().charAt(0); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int) for (i=0; i< mot_a_deviner.length();i++) { if (lettre == mot_a_deviner.charAt(i)); { lettre_saisie = true; mot_cache[i] = (char) lettre; } // on remplace le tiret correspondant par la lettre trouvée } if ( lettre_saisie == false ) { nb_erreurs = nb_erreurs + 1; System.out.println("Vous avez fait"+ nb_erreurs +"erreurs"); System.out.println(mot_cache[i]); if (nb_erreurs >= 10) { System.out.println( "Vous avez perdu! Le mot à trouver était:" + mot_a_deviner); // Le joueur a perdu, on lui donne le mot qu'il devait deviner break; } } lettre_saisie=false; //On vérifie si le mot est entièrement trouvé mot_fini=true; for( int i1 = 0; i1< mot_a_deviner.length() ; i1++) { if (mot_cache[i1] == '-') { mot_fini = false; } } if (mot_fini == true) { System.out.println("Vous avez gagné"); } System.out.print(mot_cache); } } } }
Mais ça ne marche pas comme il faut car franchement il faudrait tous le refaire, tu a du vouloir allez trop vite.
Bon je te donne ça, c'est simplement pour repartir du bon pied:
import java.util.Scanner; public class Pendu { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Bienvenue dans le jeu du pendu!"); System.out.println("*Entrez 1 pour jouer à un joueur.(Mode de jeu encore inaccessible)"); System.out.println("*Entrez 2 pour jouer à deux joueurs."); System.out.println("*Entrez 3 pour acceder aux crédits."); System.out.println("*Entrez 4 pour accedez aux instructions de jeu."); String restart = "oui"; while(restart.equals("oui") || restart.equals("o") || restart.equals("OUI") || restart.equals("O") || restart.equals("Oui")) { System.out.println("Veuillez saisir votre choix :"); String start = scan.nextLine(); if(start.equals("1")) { System.out.println("Mode 1 Joueur :"); } else if(start.equals("2")) { System.out.println("Mode 2 Joueur :"); } else if(start.equals("3")) { System.out.println("Jeu du pendu. Dévellopé par Maffre Aloïs.2012-2013."); } else if(start.equals("4")) { System.out.println("Ce jeu se joue a l'aide du clavier. Le but etant de trouver le mot cacher, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez."); } else { System.out.println("Votre entrer n'est pas valide, veuillez recommencer."); } System.out.println("Voulez vous recommencer ?"); restart = scan.nextLine(); } } }
Il faut découper ton problème (et ton code) en plusieurs partie pour mieux comprendre qui fait quoi et qui sert à quoi. Pourrait tu mettre ton code entre les balise
pour que l'on puisse avoir l'indentation et corriger les erreures. merci.
[b]interface[/b] qui ne pose pas de probleme:
********************************************************
System.out.println("Bienvenue dans le jeu du pendu!");
int y = 0;
while (y == 0){
System.out.println("*Entrez 1 pour jouer à un joueur.(Mode de jeu encore inaccessible)");
System.out.println("*Entrez 2 pour jouer à deux joueurs.");
System.out.println( "*Entrez 3 pour acceder aux crédits.");
System.out.println("*Entrez 4 pour accedez aux instructions de jeu.");
int x = Isn.readInt();
if (x == 1) {
y = 1;
// partie à 1 Joueur.
}
if (x == 2) {
// Partie à 2 Joueurs.
y = 1;
System.out.println("Joueur 2, tapez un mot.");
String MotAtrouver = Isn.readString();
}
if (x == 3) {
System.out.println("Jeu du pendu. dévellopé par Maffre Aloïs.2012-2013");
}
if (x == 4) {
System.out.println("Ce jeu se joue a l'aide du clavier. Le but étant de trouver le mot caché, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez.");}
if (x >4){
System.out.println("touche incorrecte");}
********************************************
Si on tape 1, on accede a la partie propre au mode 1 joueur, cette partie réaliser y prend la valeur 1 et on sort de la boucle pour acceder a la partie commune au mode 1 et 2 joueurs.
Si on tape 2, on accede a la partie propre au mode 2joueurs, cette partie réalisé y prend la valeur 1 et on sort de la boucle pour acceder a la partie commune au mode de jeu 1 et 2 joueurs.
si on tape 3 ou 4, on accede aux credits ou instructions, et on repropose le menu de jeu. si on tape une valeur supérieur a 4, la touche est incorrecte et le menu est reproposé.
[b] mode 1 joueur[/b]:
non réalisé
[b] mode 2 joueurs[/b]:
*********************************************
System.out.println("Joueur 2, tapez un mot.");
String MotAtrouver = Isn.readString(); // on demande au joueur 2 de tapper un mot qui sera situé dans la variable MotAtrouvé.
*************************************************
ici MotAtrouver n'est pas reconnu comme étant une variable.
[b] création du tableau contenant les mots[/b]:
****************************************************
tring[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"} ; // on établit les mots à deviner
Random rand=new Random(); //Déclaration de l'objet rand, qui servira a utiliser des nombre aléatoire.
int nbAleatoire=rand.nextInt(tabMots.length); //Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher. motàdeviner=tabMots[nbAleatoire]; //On insère dans la variable motAdeviner le mots qui a été tiré au hasard
String mot_a_deviner=tabMots[nbAleatoire];
char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher
mot_cache=new char [mot_a_deviner.length()];
for (i=0;i<mot_cache.length;i++){
mot_cache='-'; //Pour le reste entre on insère des tirets
System.out.print(mot_cache[i]); //Affichage des caractère
}
*****************************************************
Ici on entre une lettre, on verifie si elle est dans le mot, on remplace le tiret par la lettre trouvée. si la lettre n'est pas bonne, on ajoute 1 a la variable nb_erreurs. puis on verifie si le nombre d'erreur est bien inferieur a 10:
while (mot_fini == false) {
System.out.println();
int lettre = System.in.read(); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int)
for (i=0; i< mot_a_deviner.length();i++) {
if (lettre == mot_a_deviner.charAt(i)); {
lettre_saisie = true;
mot_cache[i] = (char) lettre; // on remplace le tiret correspondant par la lettre trouvée
}
}
if ( lettre_saisie == false ) {
nb_erreurs = nb_erreurs + 1 ;
System.out.println("Vous avez fait"+ nb_erreurs +"erreurs");
System.out.println(mot_cache[i]);
if (nb_erreurs >= 10) {
System.out.println( "Vous avez perdu! Le mot à trouver était:" + mot_a_deviner); // Le joueur a perdu, on lui donne le mot qu'il devait deviner
break;
}
}
lettre_saisie=false;
mais je pense mettre completement emelé dans mon programe surtout. merci Pulsar je pense faire un mixte entre ton début de programme et le mien. et surtout bucher jusqu'a 15h50 !
merci a tous, si vous avez d'autre idée je reste connecté !
********************************************************
System.out.println("Bienvenue dans le jeu du pendu!");
int y = 0;
while (y == 0){
System.out.println("*Entrez 1 pour jouer à un joueur.(Mode de jeu encore inaccessible)");
System.out.println("*Entrez 2 pour jouer à deux joueurs.");
System.out.println( "*Entrez 3 pour acceder aux crédits.");
System.out.println("*Entrez 4 pour accedez aux instructions de jeu.");
int x = Isn.readInt();
if (x == 1) {
y = 1;
// partie à 1 Joueur.
}
if (x == 2) {
// Partie à 2 Joueurs.
y = 1;
System.out.println("Joueur 2, tapez un mot.");
String MotAtrouver = Isn.readString();
}
if (x == 3) {
System.out.println("Jeu du pendu. dévellopé par Maffre Aloïs.2012-2013");
}
if (x == 4) {
System.out.println("Ce jeu se joue a l'aide du clavier. Le but étant de trouver le mot caché, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez.");}
if (x >4){
System.out.println("touche incorrecte");}
********************************************
Si on tape 1, on accede a la partie propre au mode 1 joueur, cette partie réaliser y prend la valeur 1 et on sort de la boucle pour acceder a la partie commune au mode 1 et 2 joueurs.
Si on tape 2, on accede a la partie propre au mode 2joueurs, cette partie réalisé y prend la valeur 1 et on sort de la boucle pour acceder a la partie commune au mode de jeu 1 et 2 joueurs.
si on tape 3 ou 4, on accede aux credits ou instructions, et on repropose le menu de jeu. si on tape une valeur supérieur a 4, la touche est incorrecte et le menu est reproposé.
[b] mode 1 joueur[/b]:
non réalisé
[b] mode 2 joueurs[/b]:
*********************************************
System.out.println("Joueur 2, tapez un mot.");
String MotAtrouver = Isn.readString(); // on demande au joueur 2 de tapper un mot qui sera situé dans la variable MotAtrouvé.
*************************************************
ici MotAtrouver n'est pas reconnu comme étant une variable.
[b] création du tableau contenant les mots[/b]:
****************************************************
tring[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"} ; // on établit les mots à deviner
Random rand=new Random(); //Déclaration de l'objet rand, qui servira a utiliser des nombre aléatoire.
int nbAleatoire=rand.nextInt(tabMots.length); //Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher. motàdeviner=tabMots[nbAleatoire]; //On insère dans la variable motAdeviner le mots qui a été tiré au hasard
String mot_a_deviner=tabMots[nbAleatoire];
char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher
mot_cache=new char [mot_a_deviner.length()];
for (i=0;i<mot_cache.length;i++){
mot_cache='-'; //Pour le reste entre on insère des tirets
System.out.print(mot_cache[i]); //Affichage des caractère
}
*****************************************************
Ici on entre une lettre, on verifie si elle est dans le mot, on remplace le tiret par la lettre trouvée. si la lettre n'est pas bonne, on ajoute 1 a la variable nb_erreurs. puis on verifie si le nombre d'erreur est bien inferieur a 10:
while (mot_fini == false) {
System.out.println();
int lettre = System.in.read(); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int)
for (i=0; i< mot_a_deviner.length();i++) {
if (lettre == mot_a_deviner.charAt(i)); {
lettre_saisie = true;
mot_cache[i] = (char) lettre; // on remplace le tiret correspondant par la lettre trouvée
}
}
if ( lettre_saisie == false ) {
nb_erreurs = nb_erreurs + 1 ;
System.out.println("Vous avez fait"+ nb_erreurs +"erreurs");
System.out.println(mot_cache[i]);
if (nb_erreurs >= 10) {
System.out.println( "Vous avez perdu! Le mot à trouver était:" + mot_a_deviner); // Le joueur a perdu, on lui donne le mot qu'il devait deviner
break;
}
}
lettre_saisie=false;
mais je pense mettre completement emelé dans mon programe surtout. merci Pulsar je pense faire un mixte entre ton début de programme et le mien. et surtout bucher jusqu'a 15h50 !
merci a tous, si vous avez d'autre idée je reste connecté !
Re-salut,
Tiens cadeau:
Tiens cadeau:
import java.util.Scanner; public class Pendu2 { public static void main(String[] args) { @SuppressWarnings("resource") Scanner scan = new Scanner(System.in); // Cette classe permet les entrees claviers String restart = "oui"; // Ici on initialise restart pour rentrer dans la boucle while plus bas. String[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"}; boolean essai = false; // Ici on initialise le boolean essai pour rentrer egalement dans la boucle while plus bas while(restart.equals("oui") || restart.equals("o") || restart.equals("OUI") || restart.equals("O") || restart.equals("Oui")) { System.out.println("Bienvenue dans le jeu du pendu!"); System.out.println("*Entrez 1 pour jouer a un joueur.(Mode de jeu encore inaccessible)"); System.out.println("*Entrez 2 pour jouer a deux joueurs."); System.out.println("*Entrez 3 pour acceder aux credits."); System.out.println("*Entrez 4 pour accedez aux instructions de jeu."); System.out.println("Veuillez saisir votre choix :"); String start = scan.nextLine(); // Donc on utilise le scanner scan pour rentrer une chaine de caractere. // Ici je donne une valeur en chiffre a la variable motAlea grace au calcul aleatoire de la classe math.random() et la longeur du tableau tabMots int motAlea = (int) (Math.random()*tabMots.length); // Donc ici j'utilise ce chiffre aleatoire pour recuperer un mot du tableau et calucler ca longeur int longeur = tabMots[motAlea].length(); if(start.equals("1")) { // La je rentre dans le choix 1 System.out.println("Mode 1 Joueur :"); System.out.println(tabMots[motAlea]); // Ici je donne le mot a chercher, evidement il faut pas laisser cette ligne pour le joueur sinon il connaitra le mot a deviner System.out.println("Votre mot surprise contient " + longeur + " lettres."); essai = false; // Ici je remet essai à false car si le joueur trouve le mot plus bas cette variable devient true, mais si le joueur veux rejouer il faut remettre cette variable a false pour pouvoir rerentrer dans la boucle ci-dessous while(essai == false) { System.out.println("Veuillez saisir votre mot :"); String mot = scan.nextLine(); // Donc je recupere sont entrer clavier. if(mot.length() == longeur) { // si il rentrer le bon nombre de caractere on rentre ici System.out.println("Votre longueur est bonne"); if(mot.equals(tabMots[motAlea])) { // Ici on verifie si le mot renter du joueur et celui que l'on recherche System.out.println("Vous avez trouver le mot surprise \"" + mot + "\"." ); essai = true; // Et donc puisque il a trouver le mot on met essai a true pour sortir de la boucle de recherche du mot surprise } else { char carac = 'z'; System.out.println(carac); // Ici il faut tester chaque lettre entrer avec chaque lettre du mot surprise pour avertir le joueur de quel lettre il a trouver et leur emplacement. // Il ne reste que cette section a realiser. System.out.println("Vous n avez pas trouver le mot surprise"); } } else { // Ici si le mot rentrer na pas le bon nombre de caractere System.out.println("Vous n avez pas rentrer le bon nombre de caractere."); } } } else if(start.equals("2")) { // Si le joueur a choisis le choix 2 System.out.println("Mode 2 Joueur :"); System.out.println("Cette section n est toujours pas accessible."); } else if(start.equals("3")) { // Si le joueur a choisis le choix 3 System.out.println("Jeu du pendu. Devellope par Maffre Alois.2012-2013."); } else if(start.equals("4")) { // Si le joueur a choisis le choix 4 System.out.println("Ce jeu se joue a l aide du clavier. Le but etant de trouver le mot cacher, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez."); } else { // Si le joueur a choisis un choix qui n existe pas System.out.println("Votre entrer n'est pas valide, veuillez recommencer."); } // Ici on demande au joueur si il veut recommencer. System.out.println("Voulez vous recommencer ? *Oui/Non*"); restart = scan.nextLine(); } System.out.println("Au revoir et la prochaine."); // Si le joueur na pas voulus recommencer. } }
J'ai essayer de marquer un maximum de commentaire pour que tu comprenne.
Et pense qu'il manque une section a réaliser, celle qui permet, quand le joueur a rentrer un mot avec le bon nombre de caractère, de vérifier chaque lettre de sont mot avec celle du mot surprise pour savoir combien il en à trouver et les quels.
Enjoy
Et pense qu'il manque une section a réaliser, celle qui permet, quand le joueur a rentrer un mot avec le bon nombre de caractère, de vérifier chaque lettre de sont mot avec celle du mot surprise pour savoir combien il en à trouver et les quels.
Enjoy
pulsar >j'ai repris le programme tu m'as proposer en mettant quelques modifs. merci beaucoup. cependant j'ai encore un message d'erreur :
code :
import java.util.Scanner;
// Ici j'import les classes que je doit utiliser.
public class pendu_jeu {
public static void main(String[] args) {
// J'initialisation des variables.
Scanner scan = new Scanner(System.in);
String motATrouver = new String();
int y = 0;
int nb_erreurs = 0;
boolean mot_fini = false;
boolean lettre_saisie = false;
int i;
// création d'une boucle qui verifie si la condition est remplie.
while (y == 0) {
System.out.println("Bienvenue dans le jeu du pendu!");
System.out.println("*Entrez 1 pour jouer à un joueur.");
System.out.println("*Entrez 2 pour jouer à deux joueurs.");
System.out.println("*Entrez 3 pour acceder aux crédits.");
System.out.println("*Entrez 4 pour accedez aux instructions de jeu.");
int x = scan.nextInt();
if (x == 1) { // Partie a 1 Joueur.
System.out.println("Partie 1 Joueur");
String[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"}; // on établit les mots à deviner
int rand = (int)(Math.random() * tabMots.length-1);//Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher.
motATrouver = tabMots[rand];//On insère dans la variable motAdeviner le mots qui a été tiré au hasard
y = 1; } // Ici je modifie la variable y pour ne pas repeter la boucle vue que j'ai choisis mon mode de jeu.
else if (x == 2) { // Partie a 2 Joueurs.
System.out.println("Joueur 2, tapez un mot.");
motATrouver = scan.nextLine();
y = 1; } // Ici aussi je modifie la variable y pour ne pas repeter la boucle vue que j'ai choisis mon mode de jeu.
else if (x == 3) {
System.out.println("Jeu du pendu. Dévellopé par Maffre Aloïs.2012-2013"); }
else if (x == 4) {
System.out.println("Ce jeu se joue a l'aide du clavier. Le but etant de trouver le mot cacher, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez."); }
else {
System.out.println("Touche incorrecte."); } }
System.out.println("Joueur 1, entrez une lettre."); //Partie Joueur 1
if(y == 1) {
char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher
mot_cache = new char [motATrouver.length()];
for (i = 0; i < mot_cache.length; i++) {
System.out.print(mot_cache[i]); } //Affichage des caractère
while (mot_fini == false) {
System.out.println();
char lettre = scan.nextLine().charAt(0); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int)
for (i=0; i< motATrouver.length();i++) {
if (lettre == motATrouver.charAt(i)); {
lettre_saisie = true;
mot_cache[i] = (char) lettre; } // on remplace le tiret correspondant par la lettre trouvée
}
if ( lettre_saisie == false ) {
nb_erreurs = nb_erreurs + 1;
System.out.println("Vous avez fait"+ nb_erreurs +"erreurs");
System.out.println(mot_cache[i]);
if (nb_erreurs >= 10) {
System.out.println( "Vous avez perdu! Le mot à trouver était:" + motATrouver); // Le joueur a perdu, on lui donne le mot qu'il devait deviner
break;
}
}
lettre_saisie=false;
//On vérifie si le mot est entièrement trouvé
mot_fini=true;
for( int i1 = 0; i1< motATrouver.length() ; i1++) {
if (mot_cache[i1] == '-') {
mot_fini = false; } }
if (mot_fini == true) {
System.out.println("Vous avez gagné"); }
System.out.print(mot_cache); } }
}
}
message d'erreur :
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at pendu_jeu.main(pendu_jeu.java:57)
l'erreur lorsqu'il faut rentrer une lettre.
code :
import java.util.Scanner;
// Ici j'import les classes que je doit utiliser.
public class pendu_jeu {
public static void main(String[] args) {
// J'initialisation des variables.
Scanner scan = new Scanner(System.in);
String motATrouver = new String();
int y = 0;
int nb_erreurs = 0;
boolean mot_fini = false;
boolean lettre_saisie = false;
int i;
// création d'une boucle qui verifie si la condition est remplie.
while (y == 0) {
System.out.println("Bienvenue dans le jeu du pendu!");
System.out.println("*Entrez 1 pour jouer à un joueur.");
System.out.println("*Entrez 2 pour jouer à deux joueurs.");
System.out.println("*Entrez 3 pour acceder aux crédits.");
System.out.println("*Entrez 4 pour accedez aux instructions de jeu.");
int x = scan.nextInt();
if (x == 1) { // Partie a 1 Joueur.
System.out.println("Partie 1 Joueur");
String[] tabMots = {"feuille","printemps","enfant","chat","impliquer","blond","pedant","trivial","nuer","montagne","eaux","summum"}; // on établit les mots à deviner
int rand = (int)(Math.random() * tabMots.length-1);//Cette variable contient un nombre compris entre 0 et la valeur de la taille du tableau des mots a chercher.
motATrouver = tabMots[rand];//On insère dans la variable motAdeviner le mots qui a été tiré au hasard
y = 1; } // Ici je modifie la variable y pour ne pas repeter la boucle vue que j'ai choisis mon mode de jeu.
else if (x == 2) { // Partie a 2 Joueurs.
System.out.println("Joueur 2, tapez un mot.");
motATrouver = scan.nextLine();
y = 1; } // Ici aussi je modifie la variable y pour ne pas repeter la boucle vue que j'ai choisis mon mode de jeu.
else if (x == 3) {
System.out.println("Jeu du pendu. Dévellopé par Maffre Aloïs.2012-2013"); }
else if (x == 4) {
System.out.println("Ce jeu se joue a l'aide du clavier. Le but etant de trouver le mot cacher, en proposant des lettres. Mais attention, au bout de la 10eme erreur, vous perdez."); }
else {
System.out.println("Touche incorrecte."); } }
System.out.println("Joueur 1, entrez une lettre."); //Partie Joueur 1
if(y == 1) {
char mot_cache[]; //On créer un tableau de caractère de même taille que la longueur du mot a chercher
mot_cache = new char [motATrouver.length()];
for (i = 0; i < mot_cache.length; i++) {
System.out.print(mot_cache[i]); } //Affichage des caractère
while (mot_fini == false) {
System.out.println();
char lettre = scan.nextLine().charAt(0); // on lit une lettre entrée par le joueur (vérifié si il faut bien mettre int)
for (i=0; i< motATrouver.length();i++) {
if (lettre == motATrouver.charAt(i)); {
lettre_saisie = true;
mot_cache[i] = (char) lettre; } // on remplace le tiret correspondant par la lettre trouvée
}
if ( lettre_saisie == false ) {
nb_erreurs = nb_erreurs + 1;
System.out.println("Vous avez fait"+ nb_erreurs +"erreurs");
System.out.println(mot_cache[i]);
if (nb_erreurs >= 10) {
System.out.println( "Vous avez perdu! Le mot à trouver était:" + motATrouver); // Le joueur a perdu, on lui donne le mot qu'il devait deviner
break;
}
}
lettre_saisie=false;
//On vérifie si le mot est entièrement trouvé
mot_fini=true;
for( int i1 = 0; i1< motATrouver.length() ; i1++) {
if (mot_cache[i1] == '-') {
mot_fini = false; } }
if (mot_fini == true) {
System.out.println("Vous avez gagné"); }
System.out.print(mot_cache); } }
}
}
message d'erreur :
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at pendu_jeu.main(pendu_jeu.java:57)
l'erreur lorsqu'il faut rentrer une lettre.
Oui car j'ai fait quelque corrections seulement sur la première moitie de ton code et t'es laisser le reste vue que je n'avais pas eu de réponse hier, mais un conseil si tu comprend le dernier code que je t'es envoyer (il est très simple, essaye de partir sur celui la, il n'y a plus cas faire le section pour comparer chaque lettre du mot entrer par le joueur avec le mot surprise et faire une boucle pour que si le joueur se trompe 10 fois la partie termine.
ben tu sais quoi ? l'établissement m'a oublié sur leurs fiches (véridique, merci l'éducation nationale !) du coup je passe mardi !
je vais le bosser tout le week end dessus.
en faisant une boucle compteur while ( i>= 10 )en dessous de while (mot_fini == false). tu penses que ca peut marcher ?
char lettre = scan.nextLine().charAt(0); // on lit une lettre entrée par le joueur
ne fonctionne pas par contre. j'ai essayé de changer la valeur 0 (je pensais que le probleme venait de la mais apparement non.
Merci a tous au passage :)
je vais le bosser tout le week end dessus.
en faisant une boucle compteur while ( i>= 10 )en dessous de while (mot_fini == false). tu penses que ca peut marcher ?
char lettre = scan.nextLine().charAt(0); // on lit une lettre entrée par le joueur
ne fonctionne pas par contre. j'ai essayé de changer la valeur 0 (je pensais que le probleme venait de la mais apparement non.
Merci a tous au passage :)
Ta bien de la chance surtout pour un devoir de fin d'année, il faut tous donnée c'est la dernière ligne droite de l'année lol.
Si tu a pris mon dernier code et que comprend tous c'est parfait, mais il faut que tu rajoute la section ou il faut vérifier chaque lettre du mot taper avec le mot surprise et une boucle qui compte 10 fois, par contre il faudrait que tu modifie aussi le code car moi j'ai écrit un code qui ressemble un peut plus au motus qu'au pendu, au lieu de faire taper un mot complet il faut avertir le joueur qu'il doit tapper seulement une lettre et verifier la lettre taper si elle est présente dans le mot surprise.
Si tu a pris mon dernier code et que comprend tous c'est parfait, mais il faut que tu rajoute la section ou il faut vérifier chaque lettre du mot taper avec le mot surprise et une boucle qui compte 10 fois, par contre il faudrait que tu modifie aussi le code car moi j'ai écrit un code qui ressemble un peut plus au motus qu'au pendu, au lieu de faire taper un mot complet il faut avertir le joueur qu'il doit tapper seulement une lettre et verifier la lettre taper si elle est présente dans le mot surprise.
si on pouvait toute fois m'aider pour la ligne
char lettre = scan.nextLine().charAt(0); // on lit une lettre entrée par le joueur
ca ne fonctionne pas
char lettre = scan.nextLine().charAt(0); // on lit une lettre entrée par le joueur
ca ne fonctionne pas
Ben la tu doit faire une boucle qui sera exécuter x fois le nombre de caractère dans le mot cache et à chaque tour de boucle donc tu doit faire vérifier si le caractère qui est dans la variable lettre est égale au caractère du mot. Genre si lettre est égale a char0 de motcache alors afficher le caractere puis encore un tour pour char1 char2 char3... jusqu'à atteindre la fin du motcacher pour avoir verifie chaque lettre.