Mastermind sous dos

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

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.