Pomoc!!! (Java)

poruka: 4
|
čitano: 927
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
12 godina
neaktivan
offline
Pomoc!!! (Java)

Trebam napraviti simulaciju borbe svemirskih brodova koji su smjesteni na slucajnim pozicijama u matrici [90][90]...Imam 12 brodova i svaki brod je jedna nit...u zadatku se trazi da se ispise pobjednik nakon sto je 6 brodova jedne strane unisteno...moj kod ispisuje pobijednika, ali imam problem da unisteni brodovi kasnije i dalje ucestvuju u borbi...moja run metoda:

 

public void run()
{
  System.out.println("Brod "+this.brojBroda+" sa posadom "+this.posada1+" pocinje da se krece!");
  while(kraj==false)
  {
    if(this.getUnisten())
    {
      System.out.println("Brod "+brojBroda+" sa posadom "+posada1+" je unisten!");
     
      //Provjeri da li su svi brodovi jedne strane unisteni...
      this.provjeriPobjednika();
      break;
    }
    else
    {
     this.provjeraUdaljenosti();
     this.provjeraSudara();
      if(this.getUnisten()==false)
      {
        if(this.kv==true){
          /*try{
            sleep(1);
          }
          catch(Exception e)
          {
            e.printStackTrace();
          }*/
         this.kretanjeBrodaKV();
          svemir[this.getX()][this.getY()]=this;}
       else {
         /*try{
           sleep(1);
         }
         catch(Exception e)
         {
           e.printStackTrace();
         }*/
          this.kretanjeBrodaRB();
          svemir[this.getX()][this.getY()]=this;
        }
      }
      else {
        if (kraj) break;
        System.out.println("Brod "+brojBroda+" sa posadom "+posada1+" je unisten!");
        this.provjeriPobjednika();
        break;
      }
    }
 
}
}

Metode provjeriPobjednika(), provjeraUdaljenosti() i provjeraSudara() su mi sinhronizovane...problem je i kod ispisivanja da je doslo do sudara npr. jer mi se ta recenica ispisuje veliki broj puta ukoliko dodje do sudara iako bi trebalo samo jednom...

ima li ko voljan da mi pomogne??? unaprijed hvala {#}

 
0 0 hvala 0
13 godina
neaktivan
offline
Pomoc!!! (Java)

Stavi cijeli source kod pa ti mozda netko i pomogne.

Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pomoc!!! (Java)

Kod je prevelik pa ne mogu staviti sve...desava mi se problem u metodi provjeraUdaljenosti()...

 

public synchronized void provjeraUdaljenosti()
{
   for(int i=0;i<90;i++)
     
       if(this.getUnisten()!=true && svemir[this.getX()][i]!=null && ((Brod)svemir[this.getX()][i]).getUnisten()!=true && this.getStrana()!=((Brod)svemir[this.getX()][i]).getStrana() && svemir[this.getX()][i]!=this && ((this.getY()-i==2) || (this.getY()-i==-2)))
        {
          ((Brod)svemir[this.getX()][i]).gadjajBrod(this);
          System.out.println("Brod "+((Brod)svemir[this.getX()][i]).brojBroda+" "+((Brod)svemir[this.getX()][i]).posada1+" gadja brod: "+this.posada1+" "+this.brojBroda);
         
        }
     
}

 

gdje pocne da mi se ispisuje ovo sto je zadato da se ispisuje velik broj puta iako bi se trebalo ispisati samo jednom ako je uslov ispunjen...inace to mi se desava samo nekad...u vecini slucajeva ispise se samo jednom i sve radi dobro...

13 godina
neaktivan
offline
Pomoc!!! (Java)

Spremi cijeli projekt u zip i uploadaj ili stavi na neki repozitorij tipa pastebin.com.

Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice