hatimos je besoin ton aide

الموضوع في 'لغات البرمجة' بواسطة uiop, بتاريخ ‏4 ماي 2007.

حالة الموضوع:
مغلق
  1. uiop

    uiop عضو نشيط

    إنضم إلينا في:
    ‏12 ديسمبر 2005
    المشاركات:
    166
    الإعجابات المتلقاة:
    22
      04-05-2007 00:36
    brabbi 3andi proet de deux modules elli houa programmation en java jbuilder 6 pour creer un jeu pendu voila mon code source que jai programmeé il compile,mais je voulais que tu maide a ajouter une methode qui me permet a chaque fois lorsque je devine 3 bonne lettre alors le jeux change au lieu d y deviner lettre par lettre on donne tout le mot,presque elle devient le jeux motus.est merci bien de votre attention


    import java.util.Random;

    import javax.swing.JOptionPane;

    /*Auteur : SAMEH PowerGame
    Code Permanent : PG27012007
    Creation Jeu : 27/01/2007
    Version : 1.1*/

    public class PenduMain
    {
    //Tableau contenant tous les mots a trouver.
    static String motCache[] = {"Poudre","Pomme","Bouclier","Crayon","Cheval","Soulier","Train","Prison","Herbe",
    "Trombone","Soupe","Lampe","Distance","Tasse","Tasse","Route","Fromage","Ballon","Casier","Angelo","Tuile"};

    static char[] motAtrouver;//tableau contenant notre mot a trouver
    static char[] lettreFausse;//tableau pour les lettres fausses

    //utilisation de ces variables pour la boite de dialogue
    private static Object[] continuerPartie = { "oui", "non" };
    private static Object choixContinuerPartie = null;

    static Random hasard = new Random();//utilisation de cette instance pour creer un nombre aleatoir
    static Chrono chrono = new Chrono();//utilisation de cette instance pour demarer notre chrono

    static String motADeviner = "";// ma variable pour mes test
    static String tempsEcoule = "";// variable pour contenir mon temps
    static String validation = "";// variable pour deiverses validations

    static int i = 0;//variable pour toutes mes boucles
    static int score = 0;//variable pour le score
    static int scoresave = 0;//variable pour le score
    static int erreur = 0;//variable contenant mes erreurs
    static int nbLettresBonnes = 0;//variable contenant le nombre de bonnes lettres trouve par le joueur
    static final int ERREURVALABLE = 7;//variable pour le nombre d'erreur offert au joueur qui nous permettra d'initialiser notre tableau fausse

    //utilisation de ces variables boolean pour les validations dans notre jeu
    static boolean choixLettreUtilisateur;
    static boolean bonneLettre ;
    static boolean lettreDansMot;
    static boolean lettreDansTableauxErrone;



    public static String tempsChronometre()
    {
    // affiche le temps mis par l'utilisateur pour trouver le mot
    chrono.stop();
    return chrono.resultat();
    }

    //methode principale pour le demarrage de notre jeu
    public static void main(String[] args)
    {
    char lettreSaisie = 0;
    boolean motTrouve;
    do{
    lettreFausse = new char [ERREURVALABLE];//initialisation de la longueur de notre tableau pour les lettres fausses
    bienvenue();//affichage du text de bienvenue 1 methode invoque
    startGame();//2éme methodes appelle pour choisir le mode de jeu
    do{
    nbLettresBonnes = 0;
    bonneLettre = false;
    do{
    if ((lettreDansMot != false) || (lettreDansTableauxErrone != false))
    {
    lettreDejaSaisie();//methode invoque si l'utilisateur a entrer une lettre qu'il a deja saisie
    }
    do{
    try{
    // verification si la personne rentre bien une lettre dans la boite de dialogue
    validation = "faux";
    lettreSaisie = Screen.readString("Quelle lettre desirez vous entrer? ").toUpperCase().charAt(0);
    }catch(Exception e)
    {
    Screen.print("ERREUR : vous n'avez pas saisie de lettre", 2);//appele de la classe Screen pour l'affichage de l'erreur
    validation = "vrai";
    }
    }while(validation.equals("vrai"));
    choixLettreUtilisateur = true;
    lettreDansMot = false;
    lettreDansTableauxErrone = false;
    verificationLettreTableauErronne(lettreSaisie);//3éme methodes appelle pour la verification de notre lettre dans le tableau de lettre fausse
    verificationLettre(lettreSaisie);//4éme methodes pour le reste des validations de notre lettre saisie
    }while((lettreDansMot !=false) || (lettreDansTableauxErrone !=false));
    System.out.println("");
    motTrouve = incrementationBonneLettre(lettreSaisie);//5éme methode appelle pour l'incrementation du nombre de bonne lettre et pour mettre fin au jeu en cas
    if (motTrouve!=true && erreur!=ERREURVALABLE)//validation verifiant si le jeu est finit a l'aide de ces deux variable
    {

    System.out.println("Vous avez trouve en tout "+nbLettresBonnes+" lettres."); //Si le mot n'est pas trouvé alors on affiche le nombre de lettre trouvé en tout
    System.out.println("la lettre que vous avez saisie etait : "+lettreSaisie);
    System.out.print("Maintenant le mot devient: ");
    for (i=0;i<motAtrouver.length;i++){
    System.out.print(motAtrouver); //On affiche le mot après que l'utilisateur est trouver une des lettres
    }
    System.out.println("");
    System.out.println("");
    }

    }while((motTrouve==false) && (erreur!=ERREURVALABLE));
    finPartieNbrErreur();//methode appelle pour afficher un message de fin sous certaine condition
    choixContinuerPartie = JOptionPane.showInputDialog(null, "faire une nouvelle Partie",
    "selection",JOptionPane.INFORMATION_MESSAGE, null,continuerPartie, continuerPartie[0]);
    if(choixContinuerPartie.equals("oui"))
    {
    clean();//methode appele uniquement si le joueur veut refaire une nouvelle partie

    }
    }

    while(choixContinuerPartie.equals("oui"));

    System.out.println("Fin de jeu");
    System.out.println("Merci d'avoir joue au jeu Le Pendu!");
    score = 0;
    scoresave=0;
    }// fin de notre main



    //methode affichant un message de bienvenue
    public static void bienvenue()
    {
    System.out.println("* Bienvenue dans le jeu du pendu! *");
    System.out.println("*decouvrer le mot cache en moin de 7 coups*");
    System.out.println("* attention votre temps compte *");
    System.out.println("* Power Game *");
    System.out.println("* version 1.1 *");
    System.out.println("");
    }// fin de bienvenue


    //methode pour demarrer le jeu, chosir le mode, et le mot pour le test
    private static void startGame()
    {
    String validation = null;
    String mot = null;
    String message = "vous n'avez pas entrer de mot !";
    //choix de votre type de jeu
    Object[] optionTest = { "1.Oneplayer", "2.Twoplayer"};
    Object choixTest = JOptionPane.showInputDialog(null, "Quelle methode desirez vous tester?",
    "choix",JOptionPane.INFORMATION_MESSAGE, null,optionTest, optionTest[0]);
    if(choixTest.equals("2.Twoplayer"))
    {
    do{
    validation = "faux";
    mot = Screen.readString("Quel mot desirez vous entrer ? ");//initialsion du mot par l'utilisateur par l'intermediaire d'une boite de dialogue
    if(mot.equals(""))
    {
    //methode pour l'affichage d'un message d'erreur
    Screen.print(message,2);
    validation = "vrai";
    }
    }while(validation.equals("vrai"));
    motAchercher(mot);
    }else
    motAchercher();
    }// fin de startGame


    // methode permettant de compter le nombre de bonne lettre
    private static boolean incrementationBonneLettre(char lettreSaisie)
    {
    boolean motTrouve = false;
    for (i = 0;i < motAtrouver.length;i++)
    {
    // si la lettre existe alors incrementation de notre compteur
    if (motAtrouver == motADeviner.charAt(i))
    {
    nbLettresBonnes=nbLettresBonnes+1;
    }
    }



    //Si le nombre de bonnes lettres correspond a la longueur du mot que l'on recherche cela implique que l'utilisateur a trouve le mot implique que la partie est finie
    if (nbLettresBonnes == motADeviner.length()){
    motTrouve = true;
    tempsEcoule = tempsChronometre();
    System.out.println("Vous avez trouvez le mot feliciations!");
    System.out.println("derniere lettre saisie : " + lettreSaisie);
    System.out.println("nombre erreur : " + erreur);

    score =0;
    if (erreur== 0 || erreur == 1) {score = 4;}
    else if(erreur== 2 || erreur == 3) {score = 3;}
    else if(erreur== 4 || erreur == 5) {score = 2;}
    else if(erreur== 6 ) {score = 1;}
    //else {score = score;}
    scoresave = scoresave + score;

    System.out.println("votre score est : " + scoresave);
    System.out.println("votre temps : " + tempsEcoule);
    System.out.println("Le mot etait : " + motADeviner);
    System.out.println("");

    }
    return motTrouve;
    }


    public static void motAchercher()
    {
    // methode qui affichera notre mot (Exemple :------ pour Ballon)
    motADeviner = motCache[hasard.nextInt(motCache.length)].toUpperCase();//nous donnes notre mot (en majuscule) a trouver en fonction d'un nombre aleatoire
    motAtrouver=new char [motADeviner.length()];//initialsation de la longueur de notre tableau a l'aide de la variable String motADeviner definit auparavant
    System.out.println("l'ordinateur a choisit son mot:");
    System.out.println("il comporte "+motADeviner.length()+" lettres a trouver");
    System.out.println("");
    for (i=0;i<motAtrouver.length;i++){//cette boucle nous permet de construire notre mot
    motAtrouver='-'; //creation de notre tableau avec le caratere -
    System.out.print(motAtrouver); //Affichage du tableau cree.
    }
    chrono.start();// demarage de notre chronometre
    } //fin de motAchercher


    public static void motAchercher(String mot)// surcharge de la methode motArechercher() meme utilisation que celle decrite auparavant
    {
    motAtrouver=new char [mot.length()];//creation de notre tableau de char de la taille du mot recu par notre methode
    motADeviner = mot.toUpperCase();//methode pour mettre le mot en majuscule
    System.out.println("Voici le mot a trouver: ");
    System.out.println("il comporte "+mot.length()+" lettres a trouver");
    System.out.println("");
    for (i=0;i<motAtrouver.length;i++){
    motAtrouver='-';
    System.out.print(motAtrouver);
    }
    chrono.start();
    }// fin de motAchercher (surcharge)


    public static void lettreDejaSaisie()//methode en cas de lettre deja saisie
    {
    //nous affiche un message d'erreur
    Screen.print("ERREUR:Cette lettre a deja ete essaye", 2);
    System.out.println("");
    System.out.println("RAPPEL: le mot a chercher est: ");
    //puis reaffichage du mot
    for (i=0;i<motAtrouver.length;i++)
    {
    System.out.print(motAtrouver);
    }
    System.out.println("");
    }// fin de erreurLettre


    public static void verificationLettreTableauErronne(char lettre)//methode pour verifier si la lettre est dans le tableau des lettres erronees
    {
    //cette methode nous sert a ne pas ajouter une nouvelle erreur au joueur en cas de saisie d'une lettre deja tester comme fausse
    //parcours le tableau lettres érronés
    for (i = 0;i < ERREURVALABLE;i++){
    if (lettreFausse == lettre)
    {
    lettreDansTableauxErrone = true;//cette variable nous prouve que l'utilisateur n'auras pas de nouvelle erreur a son compteur
    }
    }

    }

    //methode effectuant toute les verification de la lettre sur le mot a trouver
    public static void verificationLettre(char lettre)
    {
    //trois tests sont effecte sur la lettre saisie par le joueur dans cette boucle
    for (i = 0;i < motAtrouver.length;i++)
    {
    //verification si notre lettre n'existe pas deja dans notre mot
    if (lettre == motAtrouver)
    {
    lettreDansMot = true;
    }
    //verification si la lettre se trouve dans le mot ou si la lettre etait deja dans le tableau des lettres fausses
    //implique que l'utilisateur n'a pas fais d'erreur dans son choix de lettre
    if ((lettre == motADeviner.charAt(i)) || (lettreDansTableauxErrone == true))
    {
    choixLettreUtilisateur = false;
    }
    //si la lettre correspond a l'un des mot alors on l'ajoute a la place du tiret.
    if (lettre == motADeviner.charAt(i))
    {
    motAtrouver = lettre;
    bonneLettre = true;//Cela est donc une bonne lettre
    }
    }
    //ici ajout de la lettre dans notre tableau des lettre errone si le choix est faux
    if (choixLettreUtilisateur == true)
    {
    lettreFausse[erreur]=lettre;
    //Si choixLettreUtilisateur est faux alors on ajoute la lettre dans le tableau des lettres fausses.
    erreur = erreur + 1;//incrementation du nombre d'erreur
    JOptionPane.showMessageDialog(null, "Aucune lettre ne correspond a votre saisie il vous reste : "
    +(ERREURVALABLE-erreur)+" Chances! (Appuyez sur entree pour continuer)");
    System.out.println("");
    dessinPendu();
    }
    }

    //methode permettant de creer notre pendu
    private static void dessinPendu()
    {


    if(erreur == 1)
    {
    System.out.println("ATTENTION: le jeu a commence votre pendaison");
    System.out.println("|---------------");
    System.out.println("| |");
    System.out.println("| 0 ");
    }
    if(erreur == 2)
    {
    System.out.println("|---------------");
    System.out.println("| |");
    System.out.println("| _0 ");
    }
    else if(erreur == 3)
    {
    System.out.println("|---------------");
    System.out.println("| |");
    System.out.println("| _0_ ");
    }
    else if(erreur == 4)
    {
    System.out.println("|---------------");
    System.out.println("| |");
    System.out.println("| _0_ ");
    System.out.println("| *");
    }
    else if(erreur == 5)
    {
    System.out.println("ATTENTION : le jeu vous a presque pendu !!!");
    System.out.println("|---------------");
    System.out.println("| |");
    System.out.println("| _0_ ");
    System.out.println("| * ");
    System.out.println("| | ");
    }
    else if(erreur == 6)
    {
    System.out.println("Vous avez ete pendu");
    System.out.println("|---------------");
    System.out.println("| |");
    System.out.println("| _0_");
    System.out.println("| * ");
    System.out.println("| | |");
    }
    else if(erreur == 7)
    {
    System.out.println("Vous avez ete pendu");
    System.out.println("|---------------");
    System.out.println("| |");
    System.out.println("| |");
    System.out.println("| |");
    System.out.println("| _0_");
    System.out.println("| * ");
    System.out.println("| | |");
    }
    System.out.println("|");
    System.out.println("|");
    System.out.println("|");
    System.out.println("|");
    System.out.println("----------------");
    }


    public static void finPartieNbrErreur()
    {

    if (erreur == ERREURVALABLE)//affichage de ce messgae uniquement si l'utilisateur a perdu le jeu a cause de son nombre d'erreur
    {

    tempsEcoule = tempsChronometre();
    System.out.println("Fin de partie vous avez perdu!");
    System.out.println("votre temps : "+tempsEcoule);
    System.out.println("Le mot etait: "+motADeviner);
    System.out.println("");

    scoresave = scoresave;
    score = 0;
    }
    }

    //methode invoque en cas de nouvelle partie
    public static void clean()
    {
    // nettoyage des variables pour une nouvelle partie
    erreur = 0;
    scoresave = scoresave;
    score = 0;
    i = 0;
    nbLettresBonnes = 0;
    motAtrouver = new char [0];
    lettreFausse = new char [0];
    choixLettreUtilisateur = true;
    bonneLettre = false;
    lettreDansMot = false;
    lettreDansTableauxErrone = false;
    }


    }


    deux ime classe


    /*Auteur : SAMEH PowerGame
    Code Permanent : PG27012007
    Creation Jeu : 27/01/2007
    Version : 1.1*/

    public class Chrono implements Runnable
    {
    private Thread chronometre;
    private int dixiemeseconde = 0;
    boolean arret;//utilisation de cette variable pour l'arret du thread


    public void start ()
    {
    //demarrage de notre thread
    chronometre = new Thread (this);
    chronometre.start ();
    }


    public void run()
    {
    try
    {
    arret = false;
    chronometre = Thread.currentThread();
    //continuer tand que le thread n'a pas ete arrete
    while (!arret)
    {
    dixiemeseconde++;
    Thread.sleep (100);

    }
    }
    catch (InterruptedException e) {
    System.out.println(e.getMessage());
    }
    catch(NullPointerException e1)
    {
    System.out.println(e1.getMessage());
    }
    }

    //methode pour "l'arret" de notre thread
    public void stop ()
    {
    arret = true;
    if(chronometre != null)
    {
    chronometre.isInterrupted();
    }
    }

    //methode retournant notre temps sous forme de chaine de caracteres
    public String resultat()
    {
    return dixiemeseconde / 36000
    + ":" + (dixiemeseconde / 6000) % 6 + (dixiemeseconde / 600) % 10
    + ":" + (dixiemeseconde / 100) % 6 + (dixiemeseconde / 10) % 10
    + ":" + dixiemeseconde % 10;

    }


    }



    3eme classe

    import javax.swing.JOptionPane;

    /*Auteur : SAMEH PowerGame
    Code Permanent : PG27012007
    Creation Jeu : 27/01/2007
    Version : 1.1*/

    public class Screen {

    public static void print(String s)
    {
    //affiche une boite de dialogue avec une message definit pas l'utilisateur au moment de son appel
    JOptionPane.showMessageDialog (
    null, s, "Result", JOptionPane.INFORMATION_MESSAGE);
    }

    public static void print(String s, int icon)
    {
    /*surcharge de la methode prenant un parametre suplementaire pour
    l'afficahge d'un icone dans la boite de dialogue */
    JOptionPane.showMessageDialog (
    null, s, "Error", icon);
    }

    public static String readString(String message)
    {
    //methode pour lire notre mot
    String temp = "";
    temp = JOptionPane.showInputDialog(
    null, message,"Input",JOptionPane.QUESTION_MESSAGE );
    if(temp.equals(""))
    {
    temp = "";
    }
    return temp;
    }


    }
     
  2. borchanii

    borchanii نجم المنتدى

    إنضم إلينا في:
    ‏17 أفريل 2006
    المشاركات:
    7.528
    الإعجابات المتلقاة:
    7.137
      04-05-2007 10:56
    أخي حاول أن تستعمل commentaire لكي يفهمك الذي سيتابع عملك
     
  3. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
      04-05-2007 15:50
    mon ami borchanii ta raison mais mon ami uiop desoler pour le retard je regardera ca se soire et je te repond enchalah (il faut que je comprend ton projet) si tu peux me repondre et tu m'explique un peux ton prb et ton projet et la methode que tu as fait ca sera + mieux

    votre ami hatimos ou aloulou et la pour vous les amis
     
  4. uiop

    uiop عضو نشيط

    إنضم إلينا في:
    ‏12 ديسمبر 2005
    المشاركات:
    166
    الإعجابات المتلقاة:
    22
      04-05-2007 22:30
    salut une autre fois,alors ce jeu consiste a presentée un mot qui sera prise apartire d'un tableau qui va contenire plusieure mots,danc devant nous en a un mot masqueé en essaye de deviner ce mot la en premier etat lettre par lettre,jusqua y arriver a deviner 3 lettre,dans ce cas en va pa y donner lettre par lettre dans ce cas en va essyer de donner tout le mots jusqua y arriver a le deviner bien sure ne pa oublier qui il y a un limite a ne pa depasser c le nombre d essai(7).c tout si vous narriver pas a comprendre je suis la mai aman jenvi que vous mederez aman svp.
     
  5. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
      04-05-2007 22:38
    ok mon amis ta fait un tres bien projet mais ilmanque un peux de zina de toute facons je te fait ca et je te repond
     
  6. uiop

    uiop عضو نشيط

    إنضم إلينا في:
    ‏12 ديسمبر 2005
    المشاركات:
    166
    الإعجابات المتلقاة:
    22
      04-05-2007 23:03
    j vous remercie de mon coeur,tu ma dit ennou ne9sou chwaya zina cad interface ou koi, si c le cas jai une interface mri9la 7athra mai aussi 3andi mochkla elli jarrive pa a faire le colage avec mon programe.Si vous pouver maider je serai tres tres tres contente.vraiment ya3tique 1000000000000 sa7a pour avoire le vouloure de maider.
     
  7. uiop

    uiop عضو نشيط

    إنضم إلينا في:
    ‏12 ديسمبر 2005
    المشاركات:
    166
    الإعجابات المتلقاة:
    22
      04-05-2007 23:42
    mon ami aloulou voici l intrface auquelle jaimerai le coller a mon prg.et merci davance @+
     

    الملفات المرفقة:

    • interface.zip
      interface.zip
      حجم الملف:
      806,5 ك. ب
      المشاهدات:
      26
  8. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
  9. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
      05-05-2007 00:33
    je c pas ca mon ami c a tois de faire ca desoler
     
  10. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
      05-05-2007 01:06
    di mot supposant que je veux affecter a une variable qui s'apel x la chaine de caractaire ecrite par l'etulisateur dans le screen ckoi la methode pour ca

    ecri la



    pour toi tu as fait ca

    lettreSaisie = Screen.readString("Quelle lettre desirez vous entrer? ").toUpperCase().charAt(0);

    mais dans ce cas tu as recuperer la 1ere lettre mais pour mon cas je veux recuperer toute la chaine alors di moi je remplace ca par koi

    (je connait pas la methode)
     
    أعجب بهذه المشاركة The Reaper
حالة الموضوع:
مغلق

مشاركة هذه الصفحة

جاري تحميل الصفحة...