Dobrý večer,
Mám problém s hrou Logik.Hra Logik generuje 5 náhodných čísel, které se hráč pokouší uhodnout, počítač 5 zadaných čísel porovnává se svými vygenerovanými a uživateli na konzoli vypíše, která čísla jsou na správné pozici, čísla která jsou správná ale nejsou na správné pozici a čísla, která se vůbec neshodují (rozsah čísel je 1-8).Generovaná čísla se pro testování samozřejmě vypisují na konzoli.
Když je číslo na správné pozici tak se to vyhodnotí správně, ovšem když tam nějaké číslo vůbec není tak počítač vyhodnotí, že existuje a naopak.Nevěděl by někdo kde může být v kodu chyba?
package logik;
import java.util.*;
public class Logik {
static int[] zadaneBarvy = new int[5];
static int[] zapsaneBarvy = new int[5];
static int opakovat = 0;
static Random rand = new Random();
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
for (int x = 1; x > 0; x++) {
System.out.println("Přejete si začít hru? (Ano/Ne)");
for (int p = 0; p < zadaneBarvy.length; p++) {
zadaneBarvy[p] = rand.nextInt(8) + 1;
//zadaneBarvy[p] = 2;
System.out.print(zadaneBarvy[p]);
}
String zacit = scan.next();
for (int i = 1; i > 0; i++) {
final String[] VYPSANE_BARVY = new String[5];
if (zacit.equalsIgnoreCase("Ano")) {
int[] pojistka = new int[5];
System.out.print("Zadejte prosím " + zadaneBarvy.length + "-ti místné číslo s číslicemi od 1 do 8: ");
int cislice = scan.nextInt();
if (cislice > 88888) {
System.out.println("Chyba!");
} else {
zadaneCisla z = new zadaneCisla();
z.cislo1 = cislice / 10000;
z.cislo2 = cislice / 1000 - z.cislo1 * 10;
z.cislo3 = cislice / 100 - z.cislo1 * 100 - z.cislo2 * 10;
z.cislo4 = cislice / 10 - z.cislo1 * 1000 - z.cislo2 * 100 - z.cislo3 * 10;
z.cislo5 = cislice - z.cislo1 * 10000 - z.cislo2 * 1000 - z.cislo3 * 100 - z.cislo4 * 10;
zapsaneBarvy[0] = z.cislo1;
zapsaneBarvy[1] = z.cislo2;
zapsaneBarvy[2] = z.cislo3;
zapsaneBarvy[3] = z.cislo4;
zapsaneBarvy[4] = z.cislo5;
for (int o = 0; o < zadaneBarvy.length; o++) {
if (zapsaneBarvy[o] == zadaneBarvy[o]) {
VYPSANE_BARVY[o] = "je na správné pozici";
pojistka[o] = 1;
}
}
for (int y = 0; y < zadaneBarvy.length; y++) {
for (int o = 0; o < zadaneBarvy.length; o++) {
if (zapsaneBarvy[y] == zadaneBarvy[o] && pojistka[o] != 1) {
pojistka[o] = 1;
VYPSANE_BARVY[o] = "existuje";
}
}
}
}
for (int o = 0; o < zadaneBarvy.length; o++) {
if (pojistka[o] == 0) {
VYPSANE_BARVY[o] = "není";
}
System.out.println(zapsaneBarvy[o] + " - " + VYPSANE_BARVY[o]);
}
for (int p = 0; p < 5; p++) {
if (VYPSANE_BARVY[p].equals("je na správné pozici")) {
opakovat++;
}
}
if (opakovat == 5) {
i = -2;
System.out.println("Vyhrál jste, gratulujeme!!");
}
opakovat = 0;
} else {
System.out.println("Nashledanou");
i = -2;
x = -2;
}
}
}
}
}
-------------------------
package logik;
public class zadaneCisla {
int cislo1;
int cislo2;
int cislo3;
int cislo4;
int cislo5;
}