ahoj,snazim se vytvorit hru Mastermind,kde hrac hada barvu a pozici hribecku,mam udelany procedury na porovnani barev a pozic a pote vypsani co je a neni spravne(zadava se to vsechno v podobe cisel 1-4), potreboval bych poradit jak to dat do cyklu,aby se to opakovalo dokud pole barva1 a pozice1 nebudou shodna s puvodnimi poli barva a pozice, poradi nekdo? (par pokusu sem dal ve zdrojaku do poznamek,ale nefunguji) popr. kdyby mel nekdo chut mi to tam pripsat .. predem vsem moc diky
zdrojak je :
import java.util.*;
public class sem_new {
static {Locale.setDefault(Locale.US);}
public static void main(String[] args ) {
Scanner scan=new Scanner(System.in);
int promenna1=4;
Random rd=new Random();
int [] pozice=new int[4];
int [] barva=new int[4];
for(int i=0;i<4;i++) pozice[i]=rd.nextInt(4)+1;
for(int j=0;j<4;j++) barva[j]=rd.nextInt(4)+1;
for(int i=0;i<4;i++) System.out.println (pozice[i]); // vypis pozic
for(int j=0;j<4;j++) System.out.println (barva[j]); // vypis barev
//do {
int[] barva1 = hadani_barvy(promenna1);
odpoved_barvy(barva,barva1);
int[] pozice1 = hadani_pozice(promenna1);
odpoved_pozice(pozice,pozice1);
//}
//while ( for (int i=0;i<4;i++) ( (pozice[i]) == (pozice1[i]) ) && ( (barva[i]) == (barva1[i]) ) );
//while { ( pozice[] == pozice1[] ) && ( barva[] == barva1[] )};
//while (pozice==hadani_pozice(promenna1) && barva==hadani_barvy(promenna1));
System.out.print("vyhrali jste!");
}
static int[] hadani_barvy(int a) {
Scanner sc = new Scanner(System.in);
int[] m = new int[a];
for (int i=0; i<(4); i++){
System.out.print ("zadejte barvu "+(i+1)+". prvku \n");
m[i] = sc.nextInt();}
return m; //osetrit,kdyz dam cislo >4 nebo <0
}
static int odpoved_barvy (int [] barva,int [] barva1){
int x=0;
for (int i=0;i<4;i++) {if (barva[i]==barva1[i]) System.out.println("barva "+(i+1)+". je spravne");
else System.out.println("barva "+(i+1)+". neni spravne");}
return x;
}
static int[] hadani_pozice(int a) {
Scanner sc = new Scanner(System.in);
int[] m = new int[a];
for (int i=0; i<(4); i++){
System.out.print ("zadejte pozici "+(i+1)+". prvku \n");
m[i] = sc.nextInt();}
return m; //osetrit,kdyz dam cislo >4 nebo <0
}
static int odpoved_pozice (int [] pozice,int [] pozice1){
int x=0;
int pom = 0;
for (int i=0;i<4;i++) {if (pozice[i]==pozice1[i]) {System.out.println("pozice "+(i+1)+". je spravne"); pom = pom+1;}
else System.out.println("pozice "+(i+1)+". neni spravne");}
return x;
}
}