Jeux deviner le mot, pour les débutants en java.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 711 fois - Téléchargée 14 fois

Contenu du snippet

Ce jeu est adresse pour les débutants.
Un petit jeu avec une librairie statique des mots.
Tous ce qu'il faut faire est de découvre le mot choisit par l'ordinateur.
il existe seulement de 10 possibilité.
Si vous avez le découvre avant les 10 erreur, donc vous gagne.
Facile a utilise.

executer le class: CHT

Source / Exemple :

class Mot{
      private String w=" ";
      final int module;
      int nbE=0;
      private int nbV=0;
      private int Rest;
      final int f=10;
      private String t=" ";
      boolean[] o; 
      Mot(){
         w=word();introduction();
         System.out.print("Le mot est forme de "+ w.length()+" caracteres");
         o=new boolean[w.length()];
         module=w.length();
         for(int j=0;j<w.length();j++)
            o[j]=false;
         Rest=module;}
   
      void Testg(String a){
         int i,j,passe=1,trouve=0;
      
         char u=a.charAt(0);
         for( i=0;i<t.length();i++) {         
            if(t.charAt(i)==u){   
               passe=0;                    
               break;}
         }
         t+=u;
         if(passe==1){            
            System.out.println("lettre entrer est: "+u);   
            for( i=0;i<w.length();i++)    
               if(w.charAt(i) == u ){
                  nbV++;trouve=1; Rest-=1;o[i]=true;
                  System.out.print("      ");
                  for(int l=0;l<o.length;l++)
                     if(o[l]==true)
                     {System.out.print(w.charAt(l));}
                     else System.out.print("-");
                  System.out.println("\n\n  "+(char)16+"\t donc  il rest "+(module-nbV)+" a les trouver"+
                                    "\n_______________________________________________\n" );}
         
            if(trouve==0){ setnbE();
            System.out.println(" !! letre est fausse et il rest pour vous: "+(10-getE())+
                                    " essayes\n__________________________________________________\n");}
         }
         else{
            System.out.println("le lettre ( "+u+" ) est deja saisi"+
                              "\n__________________________________________________________\n");}///
      }
   
   
      void aff(){
         String s=" ";
         for(int i=0;i<module;i++)
            s+="-";
         System.out.println(s);
         for(int i=0;i<50;i++)
            System.out.print((char)205);
         System.out.println();}
      
      public String toString(){
         String s=" les resultats sont:\n\t nombre d'erreur: "+getE()+"\n\t les lettres saisient sont: "+getT(); 
         if(getR()==0)
            s+="\n\n\t***le mot etait: "+getW()+"\n\t"+ (char)16+" La resultat: tu es gagnant "+(char)17+"\n";
         else
            s+="\n\n"+(char)7+"\t\t***le mot etait: "+getW()+"\n "+(char)2+" !!!!  La resultat: tu ne gagnes pas "+(char)2;
         return s;}
      String getT(){
         return t;}
   
      String getW(){
         return w;}
   
      int getE(){
         return nbE;}
      int getR(){
         return Rest;}
      int getF(){
         return f;}
   
      void setnbE(){
         nbE=nbE+1;}
   
      int getV(){
         return nbV;}
      void introduction(){ 
         System.out.println( "CHARBEL ELIAS TANNOUS\n\n"+
         (char)177+" cherchez le mot?");}
   
   
   
   
      String word(){
         String s=" ";
         switch (1+(int)(Math.random()*64)){
            case 1:s="auxiliairement";
               break;
            case 2:s="avachie";
               break;
            case 3: s="avaler";
               break;
            case 4: s="avec";
               break;
            case 5: s="aventures";
               break;
            case 6: s="coing";
               break;
            case 7: s="colidacilles";
               break;
            case 8: s="collant";
               break;
            case 9: s="collectionneurs";
               break;
            case 10: s="crache";
               break;
            case 11: s="curieuse";
               break;
            case 12: s="cytologique";
               break;
            case 13: s="daim";
               break;
            case 14: s="dame";
               break;
            case 15: s="danger";
               break;
            case 16: s="disparite";
               break;
            case 17: s="dragon";
               break;
            case 18: s="duratif";
               break;
            case 19: s="dynastique";
               break;
            case 20: s="efface";
               break;
            case 21: s="electronique";
               break;
            case 22: s="ordinateur";
               break;
            case 23: s="enfoncement";
               break;
            case 24: s="enseigement";
               break;
            case 25: s="experience";
               break;
            case 26: s="festival";
               break;
            case 27: s="fondation";
               break;
            case 28: s="gagneuse";
               break;
            case 29: s="gommer";
               break;
            case 30: s="grisant";
               break;
            case 31: s="hectometre";
               break;
            case 32: s="huile";
               break;
            case 33: s="illisible";
               break;
            case 34: s="infacte";
               break;
            case 35: s="jubilaire";
               break;
            case 36: s="lait";
               break;
            case 37: s="lapiniere";
               break;
            case 38: s="mantilles";
               break;
            case 39: s="mousquets";
               break;
            case 40: s="nautile";
               break;
            case 41: s="neige";
               break;
            case 42: s="orthoptie";
               break;
            case 43: s="ozones";
               break;
            case 44: s="panse";
               break;
            case 45: s="paresseux";
               break;
            case 46: s="philologie";
               break;
            case 47: s="radioactif";
               break;
            case 48: s="reflection";
               break;
            case 49: s="rigorisme";
               break;
            case 50: s="sauvages";
               break;
            case 51: s="serveur";
               break;
            case 52: s="souffle";
               break;
            case 53: s="spectaculaire";
               break;
            case 54: s="tablette";
               break;
            case 55: s="television";
               break;
            case 56: s="ultimatum";
               break;
            case 57: s="utiles";
               break;
            case 58: s="vache";
               break;
            case 59: s="voleur";
               break;
            case 60: s="wagons";
               break;
            case 61: s="web";
               break;
            case 62: s="yourte";
               break;
            case 63: s="zinc";
               break;
            case 64: s="zigzag";
               break;
            case 65: s="tigre";
               break;}
         return s;}
   }
// -----------------------------

   import javax.swing.*;
   class Jeux{

      static String lir(){
         String a;
         a=JOptionPane.showInputDialog("Entrer une china de caractere");
         return a;}
   
      static int lirmod(){
         int a=0,c=0;String b=" ";
         while(c==0){
            b=JOptionPane.showInputDialog("entrer module de mot");
            try{a=Integer.parseInt(b);c=1;}
               catch(NumberFormatException e){
                  System.out.println("*******ERROR pour le nombre de caractere******");}}
         return a;}
   }
// -----------------------
   class CHT{
      public static void main(String args[]){
         Mot a=new Mot();
         String e;
         a.aff();
      
         while((a.getE()<a.getF())&& (a.getR()!=0) ){
            e=Jeux.lir();
            a.Testg(e);	}
      
         System.out.println(a);
    new Charbel();  
      }
    }

// ----------------------------
public class Charbel{
	
	final int n=8;  // nombre d'iteration....
	final int t=40; // max bar ..............
	Thread ct=new Thread(); // Sleeping .....
	
	public Charbel(){
  		this("Faites par:","Charbel Tannous"); }

	public Charbel(String a,String s){
		
		System.out.println("\n\n");	
		for(int ch=0;ch<=n;ch++){
	
		for(int i=0;i<=t;i++){
			System.out.print(" ");
			System.out.print(a+" "+(char)219);
			for(int j=0;j<i;j++)
			System.out.print((char)219);
			System.out.print(" "+s+" ");
			for(int k=0;k<t-i;k++)
			System.out.print((char)219);
		    try{ct.sleep(400);}
			catch(Exception e){	}
			System.out.print((char)219);
			System.out.print("\r");}
			
			for(int i=0;i<t;i++){
			System.out.print(" ");
			System.out.print(a+" "+(char)219);
			try{ct.sleep(400);}
			catch(Exception e){	}
			for(int j=t;j>i;j--)
			System.out.print((char)219);
			System.out.print(" "+s+" ");
			for(int k=i;k>0;k--)
			System.out.print((char)219);
		    System.out.print("\r");}			
		}
	   }	   
     }

A voir également

Ajouter un commentaire

Commentaires

Messages postés
50
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
1 juillet 2011

La nouvelle version, V2.... (un de deux solution....)
//---------------------------------- V2 -------------------

import java.io.*;
import javax.swing.JOptionPane;
import java.util.Properties;

class Prop {

private String basePathProp=".\\lib.txt";
File fichier;
FileWriter ff;
private Properties properties = null;

public Prop(){
init();
try{
loadProperties(basePathProp);
}catch(Exception e){
JOptionPane.showMessageDialog(null,"erreur in loading the TXT file \n"+e.getMessage());}
}

private void init(){
fichier=new File(basePathProp);
if(!fichier.exists() || !fichier.canRead()){
try {
ff=new FileWriter(fichier);

ff.write("# 10 est le nombre des mots qui seront en services.\n");
ff.write("nbmot=10\n");

ff.write("\n #key(format numerique)=value\n");
ff.write("1=auxiliairement\n");
ff.write("2=avachie\n");
ff.write("3=avaler\n");
ff.write("4=avec\n");
ff.write("5=aventures\n");
ff.write("6=coing\n");
ff.write("7=colidacilles\n");
ff.write("8=collant\n");
ff.write("9=collectionneurs\n");
ff.write("10=crache\n");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null,"erreur initialisation....\n"+ex.getMessage());
} finally {
try {
ff.close();
} catch (IOException ex) {
JOptionPane.showMessageDialog(null,"Erreur in Closing ... \n"+ex.getMessage());
}
}
}
}

private void loadProperties(String propertiesFileName) throws FileNotFoundException {
properties = new Properties();
FileInputStream fileInputStream = new FileInputStream(propertiesFileName);
try {
properties.load(fileInputStream);
} catch (IOException e) {
e.printStackTrace();}
finally{
try {
fileInputStream.close();
} catch (Exception e) { }
}
}

public String get(String s){
return properties.getProperty(s);}

public static void main(String[] arg){
Prop p=new Prop();
System.out.println("test1="+p.get("1"));
}
}

// ----------------------------------------------

class Mot{
private String w=" ";
final int module;
int nbE=0;
private int nbV=0;
private int Rest;
final int f=10;
private String t=" ";
boolean[] o;
Prop p;

Mot(){
p = new Prop();
w=word();
introduction();

System.out.print("Le mot est forme de "+ w.length()+" caracteres");
o=new boolean[w.length()];
module=w.length();
for(int j=0;j<w.length();j++)
o[j]=false;
Rest=module;}

void Testg(String a){
int i,j,passe=1,trouve=0;

char u=a.charAt(0);
for( i=0;i<t.length();i++) {
if(t.charAt(i)==u){
passe=0;
break;}
}
t+=u;
if(passe==1){
System.out.println("lettre entrer est: "+u);
for( i=0;i<w.length();i++)
if(w.charAt(i) == u ){
nbV++;trouve=1; Rest-=1;o[i]=true;
System.out.print(" ");
for(int l=0;l<o.length;l++)
if(o[l]==true)
{System.out.print(w.charAt(l));}
else System.out.print("-");
System.out.println("\n\n "+(char)16+"\t donc il rest "+(module-nbV)+" a les trouver"+
"\n_______________________________________________\n" );}

if(trouve==0){ setnbE();
System.out.println(" !! letre est fausse et il rest pour vous: "+(10-getE())+
" essayes\n__________________________________________________\n");}
}
else{
System.out.println("le lettre ( "+u+" ) est deja saisi"+
"\n__________________________________________________________\n");}///
}


void aff(){
String s=" ";
for(int i=0;i<module;i++)
s+="-";
System.out.println(s);
for(int i=0;i<50;i++)
System.out.print((char)205);
System.out.println();}

public String toString(){
String s=" les resultats sont:\n\t nombre d'erreur: "+getE()+"\n\t les lettres saisient sont: "+getT();
if(getR()==0)
s+="\n\n\t***le mot etait: "+getW()+"\n\t"+ (char)16+" La resultat: tu es gagnant "+(char)17+"\n";
else
s+="\n\n"+(char)7+"\t\t***le mot etait: "+getW()+"\n "+(char)2+" !!!! La resultat: tu ne gagnes pas "+(char)2;
return s;}
String getT(){
return t;}

String getW(){
return w;}

int getE(){
return nbE;}
int getR(){
return Rest;}
int getF(){
return f;}

void setnbE(){
nbE=nbE+1;}

int getV(){
return nbV;}
void introduction(){
System.out.println( "CHARBEL ELIAS TANNOUS\n\n"+
(char)177+" cherchez le mot?");}

String word(){
String s="";

try{
int nb=Integer.parseInt(p.get("nbmot"));
s= p.get(""+(1+(int)(Math.random()*nb)));
} catch(Exception e){
System.out.println("erreur:"+e.getMessage());
return p.get("1"); }
return s;}
}
//-------------------------------

import javax.swing.*;
class Jeux{

static String lir(){
String a;
a=JOptionPane.showInputDialog("Entrer une china de caractere");
return a;}

static int lirmod(){
int a=0,c=0;String b=" ";
while(c==0){
b=JOptionPane.showInputDialog("entrer module de mot");
try{a=Integer.parseInt(b);c=1;}
catch(NumberFormatException e){
System.out.println("*******ERROR pour le nombre de caractere******");}}
return a;}
}
//------------------------
class CHT{
public static void main(String args[]){
Mot a=new Mot();
String e;
a.aff();

while((a.getE()<a.getF())&& (a.getR()!=0) ){
e=Jeux.lir();
a.Testg(e); }

System.out.println(a);
new Charbel();
}
}

//-----------------------------------
Ce jeu est adressé au débutant et pas à l’expert,
Il est pour ceux qui ont fini la première année universitaire de l’informatique,
Et pas la deuxième, ou ….
L’autre solution est comme a dit loloof64 avec les Stream et buffer….

Les information dans le fichier: lib.txt
Vous pouvez ajoute, après la premier exécution...
Explorez-le.
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

Bonjour,

en effet j'avais mal compris l'idée de l'auteur .

Je pense aussi qu'une meilleure méthode (si toutefois il maitrise les flux de données textes) aurait été de mettre tous les mots dans un .txt, et de creer un classe (ayant son propre main, de préférence) qui crée une classe à partir des mots de ce texte; les mots etant contenus dans un tableau, éventuellement déclaré statique .

( C'est possible, j'ai réussi à le faire ) .
Messages postés
5
Date d'inscription
samedi 7 octobre 2006
Statut
Membre
Dernière intervention
16 mars 2009

Par "Un petit jeu avec une librairie statique des mots.", je pense que l'auteur veut dire que la liste des mots est statique, i.e. non dynamique donc non évolutive => pour modifier la liste, il faut modifier le code. Les mots sont mal choisis, mais on sent quelque faiblesse dans le phrasé :).
Petits commentaires, en sachant que je ne l'ai pas lu a fond :
- Les noms de variables nbE, nbV, Rest, f, t, o : pas trés explicite
- Les noms de méthodes ne sont pas top non plus : aff, lir, lirmod
- Une lecture des mots dans un fichier avec un mot par ligne ne coute pas cher (BufferedReader) et apporte un vrai plus.
- une petit fonction "à la mastermind", avec le nombre de lettre bien placées / mal placées aurait été un plus.
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

Je pense que la défintion de librairie statique n'a rien à voir avec le mot clé java static .
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

Je suis désolé de m'être mal exprimé : je pense que ta librairie n'est pas une librairie statique .
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

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

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 et codes sources.

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