Mastermind sous dos

Soyez le premier à donner votre avis sur cette source.

Vue 7 620 fois - Téléchargée 376 fois

Description

le but est de trouver une combinaison de 5 chiffres pris entre 0 et 7

Source / Exemple :


class masters
{
	final int[] couleur={0,1,2,3,4,5,6,7};
	private int combinaison[];
	private int[] choix,temp;
	private int bienPlaces;
	private int malPlaces;
	private int trials;

	public masters()
	{
		int m;
		trials = 10;
		bienPlaces = 0;
		malPlaces = 0;
		combinaison = new int[5];
		choix = new int[5];
		temp = new int[5];
		for (int i=0;i<5;i++)
		{
			m=((int)Math.floor(Math.random()*1001))%4;
			choix[i]=m;
			temp[i]=m;
		}
	}

	private void check()
	{
		int i,j;
		bienPlaces = 0;
		malPlaces = 0;
		/*boucle qui vérifie les nbres bien placés*/
		for (i=0;i<5;i++)
		{
			if (choix[i]==combinaison[i])
			{
				bienPlaces += 1;
				temp[i] = 8;
				combinaison[i] = 9;
			}
		}
		/*boucle qui vérifie les nombres mal placés*/
		for (i=0;i<5;i++)
		 for (j=0;j<5;j++)
		  if ((i != j)&&(choix[j]==combinaison[i]))
		  {
			  temp[j] = 8;
			  combinaison[i] = 9;
			  malPlaces += 1;
		  }
		System.out.println("il y a "+bienPlaces+" chifres bien places");
		System.out.println("il y a "+malPlaces+" chifres mal places");
	}

	private boolean isWon()
	{
		return (bienPlaces == 5);
	}

	private void choisir()
	{
		String s;
		do{
			System.out.println("Entrez une combinaison");
			s = Clavier.lireString();
		}while ((s.length() != 5)||(s.indexOf("8")>=0)||(s.indexOf("9")>=0));
		for (int i=0;i<5;i++)
		   combinaison[i]=Integer.parseInt(s.substring(i,i+1));
	 	for (int i=0;i<5;i++)
	    {
			temp[i]=choix[i];
		}

	}

	void play()
	{
		System.out.println("Trouvez une combinaison de 5 chiffres\nchoisis entre 0 et 7");
		while ((! isWon())&&(trials>0))
		{
			choisir();
			check();
			if (! isWon()) trials -=1;
		}
		if (isWon()) System.out.println("vous avez trouve la combinaison exacte");
		else
		{
			System.out.println("Desole, la combinaison exacte est:");
			System.out.println(""+choix[0]+choix[1]+choix[2]+choix[3]+choix[4]);
		}
	}

	public static void main(String args[])
	{
		masters mind = new masters();
		mind.play();
	}

}

Conclusion :


Pour jouer juste compiler et suivre les indications.
Cependant j'aimerai que vous m'aidiez à rendre ma méthode check() plus sure car j'ai peur qu'elle ne soit pas vraiment optimale.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
julien29806 Messages postés 1 Date d'inscription dimanche 30 mars 2003 Statut Membre Dernière intervention 31 mars 2003
31 mars 2003 à 13:14
Ton code est pas mal mais j'arrive pas a voir ton fichier Clavier.class!
Donc je ne peux pas lancer le programme.
@+
t0xi Messages postés 4 Date d'inscription mardi 1 octobre 2002 Statut Membre Dernière intervention 6 février 2003
11 déc. 2002 à 12:21
Message pour JGoldenEye:
Ce fichier est disponible dans la categorie systeme des source ;-)
JGoldenEye Messages postés 15 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 20 décembre 2002
11 déc. 2002 à 00:58
Ton code n'a pas l'air mal, mais tu devrais joindre ton fichier Clavier.java pour permettre son utilisation directe 'Clavier.lireString();' (ligne 66)

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.