Signaler

Bonjour erreur de compile qui doit sûrement être basique... [Résolu]

Posez votre question myrmounet 6Messages postés vendredi 22 août 2014Date d'inscription 20 janvier 2017 Dernière intervention - Dernière réponse le 20 janv. 2017 à 17:01 par myrmounet
Bonjour,
Ici myrmounet la petite fourmi du net !
je suis en train d'essayer de fabriquer mon deuxième programme en java, et je fais face à un raz de marée sur la public static void main...
impossible de savoir ce qu'il arrive avec ce morceau de code !
pourriez vous m'aider, ô grande communauté?
merci d'avance !!!!
voilà le code que je viens de taper.



import java.util.Scanner;
public class jeudemots {
 char[] LettreInit =MotaDeviner[].toCharArray();
 int b;
 static char rep= '0';
 static int i;
 boolean Bravo= false;
public String Mot;{
 String str;
 char[] LettreResult=Mot.toCharArray();
 String MotaDeviner = str;
 int nbrDeLettres= MotaDeviner.length();
 char[] LettreInit=MotaDeviner.toCharArray();
 for (i=0;i<=nbrDeLettres;i++){
  if (LettreResult[i]==LettreInit[i])
  {LettreResult[i]=LettreInit[i];  
 }else {
  if (LettreResult[i]!='_'){
   LettreResult[i]='_';
 }}}}
public String Affichage(){

System.out.println("bonjour,\n\n\n\n\n\n\n\n\n\n");
 System.out.println("le mot plus les lettres bien devinées :");
 System.out.println("alors, voici : ");
 return Mot;
 }
public static void main (String args[]){

System.out.println("Bienvenue dans le jeu de folie qui se joue à deux!");
 System.out.println("Il s'agit de deviner un mot ! Tapez le(EN UN SEUL MOT)");
 Scanner sc = new Scanner(System.in);
 String str = sc.nextLine(); 
 while (rep!='o')
 {
  String Mot;
  String Affichage;
  System.out.println("Voulez vous arrêter? o = oui, n=non");
  String str2 = sc.nextLine(); 
  char rep = str2.charAt(0);
  }
}}
Afficher la suite 
Utile
+0
moins plus
Bonjour,

Commences déjà par mettre tout ton code dans des méthodes.
Les 20 premières lignes sont posées en vrac dans la classe ce qui ne peut pas marcher.

Inspires toi éventuellement de ton code précédent (ou de n'importe quel autre code) pour respecter la structure du programme.
http://www.commentcamarche.net/forum/affich-30695075
myrmounet 6Messages postés vendredi 22 août 2014Date d'inscription 20 janvier 2017 Dernière intervention - 11 janv. 2017 à 08:49
<gras>merci je retourne coder<!gras>
Répondre
Donnez votre avis
Utile
+0
moins plus
Bon, je m'y suis remis(à coder le jeu du pendu...)
et là, voici où j'en suis (il y a plein d'erreurs, même de raisonnement informatique, mais je ne sais plus vers où coder, je suis perdu, j'ai essayé plusieurs pistes en même temps et je vous donne mon code actuel comme ça, en vrac):

:-D
import java.util.Scanner;

public class jeudemots {
    static String MotaDeviner = "bonjour";
    static String MotTrouvé = "aurevoir";
    static int nbrDeLettres = MotaDeviner.length();
    static char rep = 'a';
    static int b;
    static String str;
    static int i;
    static char[] Motchar, Résultat;
    static char LettreTrouvée;
    static char LettreInit;
    static char LettreVide;

    public static void Devinette() {
        System.out.println(" joueur 2, quelle lettre?");
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        char LettreTrouvée = str.charAt(0);
        sc.close();
        if (MotaDeviner.indexOf(LettreInit) != -1) {
            System.out.println("Une lettre de trouvée, même joueur joue encore !");
            for (i = 0; i <= nbrDeLettres; i++) {
                if (Motchar[i] == LettreTrouvée) {
                    LettreTrouvée = Résultat[MotaDeviner.indexOf(LettreTrouvée)];
                } else {
                    if (MotTrouvé.charAt(i) != '_') {
                        LettreVide = '_';
                    }
                }
            }
        } else {
            System.out.println("VOUS NAVEZ RIEN TROUVE on va la refaire...");
        }
    }

    public static void DébutduJeu() {
        System.out.println("Bienvenue dans le jeu de folie qui se joue à deux!");
        System.out.println("Il s'agit de deviner un mot ! Tapez le joueur 1(EN UN SEUL MOT ET DIX LETTRES MAXIMUM(par souci d'efficacité dans ce code)");
        Scanner sc = new Scanner(System.in);
        MotaDeviner = sc.nextLine();
        char[] Motchar = MotaDeviner.toCharArray();
        sc.close();

    }

    public static void main(String args[]) {
        DébutduJeu();
        for (i = 0; i <= 10; i++) {
            Devinette();
        }
        if (Résultat[] == Motchar[]) {
            System.out.println("BRAVO BIEN DEVINE");
            System.out.println("Fin du programme d'Olivier myrmounet la petite fourmi.");
        }
    }
}

voilà bande d'internautes(ou voir KX? lol, il a l'air un postman chevronné d'ici...)
Pourriez vous m'aider? S'il vous plait, je vous en prie.
Mais ne me donnez pas le code en vrac, juste une ou plusieurs pistes, pour que j'y arrive, je sais quand même que mon code ne compile pas, mais j'y ai essayé diverses pistes... bon je sais pas, ce code m'a quand même pris 4-5h d'apprentissage en surfant, donc je sais même pas quelle méthode utiliser pour mes objets String... je vous laisse, me guider.
voilà merci d'avoir pris la patience de me lire, en attendant,je vais aller regarder les informations à la tv.
bisous mdr
KX 13867Messages postés samedi 31 mai 2008Date d'inscription ModérateurStatut 20 janvier 2017 Dernière intervention - 14 janv. 2017 à 10:19
Bonjour,

Déjà, il n'y a aucune raison de mettre toutes tes variables au début du programme. Elles devraient toutes (sauf exception) être déclarées dans les méthodes qui les utilisent. Cela va t'obliger par contre à renvoyer un résultat dans tes méthodes, afin de pouvoir les réutiliser dans ton main.

Remarque : les conventions de nommage des variables et méthodes sont, première lettre en minuscule, majuscule au début des mots suivants, uniquement les lettres A-Z sans accent.

Exemple :

public static void main(String args[]) {
    String motADeviner = debutDuJeu();
    for (int i = 0; i <= 10; i++) {
        String motTrouve = devinette();
        if (motADeviner.equals(motTrouve)) {
            System.out.println("BRAVO BIEN DEVINE");
            break;
        }
    }
    System.out.println("Fin du programme d'Olivier myrmounet la petite fourmi.");
}
Répondre
myrmounet 6Messages postés vendredi 22 août 2014Date d'inscription 20 janvier 2017 Dernière intervention - 15 janv. 2017 à 23:56
merci KX
Répondre
Donnez votre avis
Utile
+0
moins plus
bon ! Encore deux questions pour programmer mon pendu en java SE..
j'ai mis la plupart de mes variables dans les méthodes adéquates, mais seulement pour certaines variables, je les ai mises static au début pour que leur portabilité dans le programme soit accessible dans plusieurs méthodes. Est-ce approprié?
et sinon, dans ma boucle qui vérifie(une boucle while) si le motTrouve est égal au motaDeviner, pour comparer les mots, en String, j'utilise un tableau de caractères, avec .toCharArray();, mais j'utilise une boucle for avec i ++ sur tous les caractères dudit tableau, et je ne comprends pas pourquoi cela ne marche pas, il m'affiche 4fois non c'est faux même quand la lettre est pas correcte.
Voilà, je suis un gros noob en java mais bon, il n'y a pas d'âge pour apprendre parait-il...
donc si quelqu'un, ou KX, pouvait m'aider??
merci d'avance !
myrmounet
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !