Problém s náhodnými čísly – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s náhodnými čísly – Java – Fórum – Programujte.comProblém s náhodnými čísly – Java – Fórum – Programujte.com

 

Shark
~ Anonymní uživatel
38 příspěvků
24. 5. 2016   #1
-
0
-

Ahoj. Chtěl jsem si na procvičení javy vytvořit jednoduchou hru. Hráč by vždy napsal kde chce kopat penaltu, program by vygeneroval náhodné číslo, pokud by vygenerované číslo odpovídalo číslu které zadal hráč, penaltu by počítač chytil, stejně pak naopak, akorát by kopal počítač. Narazil jsem ale na probém při testování. Pokaždé když dám já penaltu, dá ji i počítač, pokaždé když penaltu nedám, nedá ji ani počítač. Už si opravdu nevím rady co s tím. Pokud by byl někdo tak hodný a pomohl by mi, byl bych moc vděčný, díky :). PS: program není kompletně hotov, například ještě nevypisuje kdo vyhrál a cyklus skončí i za stavu 5:5, ale nechtěl jsem pokračovat, dokud nevyřeším tento problém.

Nahlásit jako SPAM
IP: 77.92.206.–
Shark
~ Anonymní uživatel
38 příspěvků
24. 5. 2016   #2
-
0
-

   

Scanner sc = new Scanner(System.in, "Windows-1250");
        Team hracuvTeam = new Team(1, 0);
        Team pocitacTeam = new Team(0, 0);
        int kopHrac;
        int savePocitac;
        int saveHrac;
        int kopPocitac;
        int skoreHrac = 0;
        int skorePocitac = 0;
        
        Pisac pisac;
        pisac = new Pisac();
        Kostka kostkaKop;
        kostkaKop = new Kostka();
        
        Kostka kostkaSave;
        kostkaSave = new Kostka();
        
        
        System.out.println(pisac.pozdrav());
        
        while (skoreHrac < 5 || skorePocitac < 5) {
        
        System.out.println(pisac.vyberKop());
        kopHrac = Integer.parseInt(sc.nextLine());
        savePocitac = kostkaSave.hod();
        if (kopHrac == savePocitac){
            System.out.println(pisac.pocitacSave());
        }
        
        else {
            System.out.println(pisac.hracGol());
            hracuvTeam.skorePridej();
            
            
        }
                
                
        
        System.out.println(pisac.vyberSkok());
        saveHrac = Integer.parseInt(sc.nextLine());
        kopPocitac = kostkaKop.hod();
        if (kopHrac == savePocitac){
            System.out.println(pisac.hracSave());
        }
        
        else {
            System.out.println(pisac.pocitacGol());
            pocitacTeam.skorePridej();
            
            
        }
        skoreHrac = hracuvTeam.vratSkore();
        skorePocitac = pocitacTeam.vratSkore();
        
        
        
        System.out.printf("Skore je %d : %d \n",skoreHrac, skorePocitac);
        
        }
Nahlásit jako SPAM
IP: 77.92.206.–
Shark
~ Anonymní uživatel
38 příspěvků
24. 5. 2016   #3
-
0
-

   

public class Kostka {
    private Random random;
    private int pocetSten;
    public Kostka() {
        pocetSten = 6;
        random = new Random();
        
    }
    
    public int hod(){
      return random.nextInt(pocetSten) + 1;  
    }
         
    
    
    
}
Nahlásit jako SPAM
IP: 77.92.206.–
Shark
~ Anonymní uživatel
38 příspěvků
24. 5. 2016   #4
-
0
-

   

public class Team {
    
    public int hrac;
    private int skore;
    
    
    public Team(int hrac, int skore) {
        this.hrac = hrac;
        this.skore = skore;
        
    }
    
    public int skorePridej() {
      return skore++;
      
}
   public int vratSkore() {
       return skore;
   }
    
}
Nahlásit jako SPAM
IP: 77.92.206.–
lukas.balaz0
Super člen
24. 5. 2016   #5
-
0
-

#4 Shark
máš tam 2krát  

if (kopHrac == savePocitac)


namiesto otho druhého musí byť asi

if (saveHrac == kopPocitac)

alebo niečo v tom zmysle, ten kód som veľmi neštudoval ...

Nahlásit jako SPAM
IP: 80.242.41.–
lukas.balaz0
Super člen
24. 5. 2016   #6
-
0
-

Inak keď sa už niečo rozhodneš dávať na fórum, aspoň sa pokús nájsť, v ktorých miestach vzniká problém. Podľa názvu topicu usudzujem, že si si myslel, že problém je v generátore čísel, kde asi (sorry ak sa mýlim) problém nie je. Stačilo do generátru pridať pár debug výpisov a určite by si prišiel na to, že funguje ok. Takto si mohol postupne pridávať debug výpisy a časom by si na chybu určite prišiel a ani by si sa tu nemusel pýtať.

Nahlásit jako SPAM
IP: 80.242.41.–
Shark
~ Anonymní uživatel
38 příspěvků
24. 5. 2016   #7
-
0
-

Díky moc za radu. Omlouvám se, s javou začínám a s debuggerem jsem zatím nepracoval.

Nahlásit jako SPAM
IP: 77.92.206.–
lukas.balaz0
Super člen
24. 5. 2016   #8
-
0
-

#7 Shark
stačil by normálny výpis - System.out.println - fakt ti odporúčam, nauč sa to používať, časom prídu aj väčšie problémy (niekedy sa mi tento prístup dokonca páči viac ako debugger, ale to bude preto, že debugger som doteraz skoro vôbec nepoužíval, a pomocou debug výpisov som za tých pár rokov čo programujem už našiel obrovské množstvo bugov - aj keď teraz sa naopak snažím zaužívať si používanie debuggera, pretože pri veľkých projektoch je predsa len lepší).

Nahlásit jako SPAM
IP: 80.242.41.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 37 hostů

Moderátoři diskuze

 

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