Anonymní profil Filsi – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Filsi – Programujte.comAnonymní profil Filsi – Programujte.com

 

Příspěvky odeslané z IP adresy 83.208.107.–

Filsi
Java › Problém s hrou Logik
25. 3. 2011   #140354

To Filsi : Problém je již vyřešen

Filsi
Java › Problém s hrou Logik
25. 3. 2011   #140344

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;
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý