Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

simulacija jednostavne igre (dva igraca bacaju kocku)

[es] :: Java :: simulacija jednostavne igre (dva igraca bacaju kocku)

[ Pregleda: 2664 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mladen2
BiH

Član broj: 185238
Poruke: 9
*.zv.pttrs.net.



Profil

icon simulacija jednostavne igre (dva igraca bacaju kocku)19.06.2008. u 16:05 - pre 192 meseci
poz. pokusavam da naucim javu kroz primjere i imam situaciju gde dva igraca bacaju kockicu i u svakom krugu im se upisuje random broj koji su dobili. Broj poena se vuce iz niza 10, 20, 30, ..100. I sve to je ok ali ne znam kako da postavim u while petlji da ponavlja dokle god broj poena koji su osvojili ne bude veci za recimo 1000 od poena koji je dobio drugi igrac.

bilo kakav hint bi pomogao.
Code:


import java.util.Random;


public class LogosIgrac {
    private String naziv; 
    private int poeni; 
   
    public LogosIgrac(){}
    
    public LogosIgrac(String naziv, int poeni)
    {
        this.naziv = naziv; 
        this.poeni = poeni; 
    }
    
    public LogosIgrac(LogosIgrac c)
    {
        this.naziv = c.naziv; 
        this.poeni = c.poeni; 
    }

    public String getNaziv() {
        return naziv;
    }

    public void setNaziv(String naziv) {
        this.naziv = naziv;
    }

    public int getPoeni() {
        return poeni;
    }

    public void setPoeni(int poeni) {
        this.poeni = poeni;
    }
    
    @Override
    
    public String toString() {
        return ("igrac "+naziv +" ima osvojenih "+poeni +" poena");
    }
     
    class PickRand
    {
        public  int get (int[] array) 
        {
             Random generator = new Random();
             int rnd = generator.nextInt(array.length);
             return array[rnd];
        }
    }

     public void baciKocku()
         {        
        PickRand PickRand = new PickRand();
        int[] randomPoeni = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; 
        int pogodak = PickRand.get(randomPoeni);
        poeni += pogodak; 
   

        System.out.println("U ovom krugu igrac je osvojio " +pogodak +" poena");
      }  
}

i main
Code:

import javax.swing.JOptionPane;


public class Main {
    
    public Main()
    {
        LogosIgrac[] mojIgrac = new LogosIgrac[2]; 
        
        for (int c = 0; c < mojIgrac.length; c++)
        {
        String naziv = JOptionPane.showInputDialog("Unesi naziv igraca"); 
        //String naziv = ("Unesi naziv igraca: ");
            mojIgrac[c] = new LogosIgrac(naziv, 0); 
        }
        
        while(mojIgrac[0].getPoeni() <160 && mojIgrac[1].getPoeni()<160)
        {
            for (LogosIgrac c : mojIgrac)
            {
                 System.out.println(c); 
                 c.baciKocku();
                
             }
        }
        String pobednik = mojIgrac[1].getPoeni() > mojIgrac[0].getPoeni()
                ?"Pobjednik je igrac" +mojIgrac[1]: "Pobjednik je " +mojIgrac[0]; 
        System.out.println(pobednik);
    }
    
    public static  void main(String[] args){
        new Main(); 
    }

}
 
Odgovor na temu

mladen2
BiH

Član broj: 185238
Poruke: 9
*.zv.pttrs.net.



Profil

icon Re: simulacija jednostavne igre (dva igraca bacaju kocku)19.06.2008. u 18:33 - pre 192 meseci
posto vidim da se niko ne javlja, da pokusam pojednostaviti, prethodni kod gore radi ali treba da dodam u while uslov da se petlja zavrsi tek kad jedan od igraca ima broj poena u zbiru veci za neku vrijednost (recimo 1000) od drugog igraca.
Code:

     while(mojIgrac[0].getPoeni() <160 && mojIgrac[1].getPoeni()<160)
        
        {
            for (LogosIgrac c : mojIgrac)
            {
                 System.out.println(c); 
                 c.baciKocku();
                
             }
        }
        String pobednik = mojIgrac[1].getPoeni() > mojIgrac[0].getPoeni()
                ?"Pobjednik je igrac" +mojIgrac[1]: "Pobjednik je " +mojIgrac[0]; 
        System.out.println(pobednik);
    }

u prvom postu je prikazana citava main metoda.
 
Odgovor na temu

mladen2
BiH

Član broj: 185238
Poruke: 9
*.zv.pttrs.net.



Profil

icon Re: simulacija jednostavne igre (dva igraca bacaju kocku)19.06.2008. u 19:03 - pre 192 meseci
Code:
while(mojIgrac[0].getPoeni() - mojIgrac[1].getPoeni() != 100) 

nasao sam rijesenje.

 
Odgovor na temu

mladen2
BiH

Član broj: 185238
Poruke: 9
*.zv.pttrs.net.



Profil

icon Re: simulacija jednostavne igre (dva igraca bacaju kocku)19.06.2008. u 19:21 - pre 192 meseci
postoji li elegantniji nacin(vjerovatno da postoji) za dobijanje random elementa iz zadatog niza. Ovo radi posao ali ako neko ima ideju kako ovo skratiti.

Code:

 class PickRand
    {
        public  int get (int[] array) 
        {
             Random generator = new Random();
             int rnd = generator.nextInt(array.length);
             return array[rnd];
        }
    }

     public void baciKocku()
         {        
               PickRand PickRand = new PickRand();
               int[] randomPoeni = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; 
               int pogodak = PickRand.get(randomPoeni);
               poeni += pogodak; 
   
              System.out.println("U ovom krugu igrac je osvojio " +pogodak +" poena");
         }  
 
Odgovor na temu

S_3_ka

Član broj: 48863
Poruke: 22
*.static.sbb.rs.



Profil

icon Re: simulacija jednostavne igre (dva igraca bacaju kocku)20.06.2008. u 14:14 - pre 192 meseci
Možda ovako nešto:

Code:
int poeni = (int)((Math.random() * 10) + 1) * 10;
 
Odgovor na temu

[es] :: Java :: simulacija jednostavne igre (dva igraca bacaju kocku)

[ Pregleda: 2664 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.