gra w kosci, jak odłożyć kość

0

Witam serdecznie
Mam do napisania program Gre w kości na podobnych zasadach do http://gramy.interia.pl/gierki.online-kosci.gd,n-21.html i mam problem z tym, jak zrobić żeby 1(lub kilka) kości można było odłożyć i przy 2 podejściu rzucać tylko pozostałymi kościami, dostałem również uwagę że Program nie jest napisany w stylu OOP i nie wime jak rozwiazać ten problem

class zodj
{
   /**
      * metoda main wypisuje zasady gry oraz wywoluje funkcje stwurz_gracza
      */
   public static void main(String[] args)
   {
      System.out.println(" zasady gry:  mozna grac samemu lub w 2 osoby, gra trwa 12 tur," +
	  " w kazdej z tur gracz moze wykonac 3 rzuty: jesli nie jest zadowolony z poprzedniego"); 
	  System.out.println(" rzutu mozesz go powtorzyc ale poprzednie wyniki nie zostana uznane," +
	  " 3 rzut w danej turze jest ostateczny.  Wygrywa gracz ktory zdobedzie najwiecej punktow po 12 turach. \n	 ");
	  System.out.println("                  Zycze milej zabawy!!! \n");
	  
      rzut rz1 = new rzut();
      zawodnik z1 = new zawodnik();  
      z1.stwurz_gracza();
	  			
   }
}

class rzut
{  
   int punkty;
   int wybor = 0;
   int szus, piat, czwu, troj, dwuj, jedn;
   int[] tab = new int[5];
   
   /**
      *metoda generuj generuje 5 losowych liczb (odpowiadajacym kosciom) kazda z zakresu 1 - 6 dodatkowo dla ulatwienia puzniejszego sprawdzania kombinacji
      *liczby te zostaja ustawione w kolejnosci od najwiekszej w zapisane w tablicy tab oraz wyswietla wyniki
      */
   void generuj()
   { 
      Random los = new Random();
      	  
      int k = 6;	  
	  int key;	  
	  for (int i=0; i<5; i++)
	  {
	     tab[i] = (los.nextInt(k)+1);
	  }	
	  
	  for (int j=0; j < 4; j++)
	  {
         for (int l=j+1; l <5; l++)
		 {
	        if(tab[j] < tab[l])
			{
			   key = tab[j];
			   tab[j] = tab[l];
               tab[l] = key;
			}	  
	     }	 
       }
  	  

      System.out.println("wartosci wylosowanych kosci to: ");
	  System.out.println(tab[0] + "   " + tab[1] + "   " + tab[2] + "   " + tab[3] + "   " + tab[4] );
	        	  
   }
   
   /**
      *metoda sprawdz po przez porownywanie ze soba elementow tablicy sprawdza jakie zachodza kombinacje w wylosowanych liczbach oraz wyswietla nazwy wystepujacych kombinacji
      */
   void sprawdz()
       {
          int szus = 0;
          int piat = 0;
          int czwu = 0;
          int troj = 0;
          int dwuj = 0;
          int jedn = 0;	   
     	   ///////////////// Strit
	      if(( tab[0] == 6 && tab[1] == 5 && tab[2] == 4 && tab[3] == 3 && tab[4] == 2 )
	        || ( tab[0] == 5 && tab[1] == 4 && tab[2] == 3 && tab[3] == 2 && tab[4] == 1 ))
		    {
		       System.out.println(" masz Strita ");
		    }
		     //////////////// full
          if( (tab[0] == tab[1] && tab[2] == tab[3] && tab[3] == tab[4])
            ||  (tab[0] == tab[1] && tab[1] == tab[2] &&  tab[3] == tab[4]))
            {
			    System.out.println(" masz fulla ");
			}	
          //////////////////// 5takich samych
          if( tab[0] == tab[1] && tab[1] == tab[2] && tab[2] ==  tab[3] && tab[3] == tab[4]) 	  
			{
			    System.out.println(" masz 5 takich samych ");
			}					
            //////////////////// 4 takie same
          if((tab[0] == tab[1] && tab[1] == tab[2] && tab[2] ==  tab[3]) 
            || (tab[1] == tab[2] && tab[2] ==  tab[3] && tab[3] == tab[4]))		  
			{
			    System.out.println(" masz 4 takie same ");
			}		
			 //////////////////// 3 takie same
		  if(( tab[0] == tab[1] && tab[1] == tab[2]  )	
            || ( tab[1] == tab[2] && tab[2] ==  tab[3] )
            || ( tab[2] ==  tab[3] && tab[3] == tab[4] ))
		    {
			    System.out.println(" masz 3 takie same ");
			}
			////////////////// 2 pary
          if(( tab[0] == tab[1] && 	tab[2] == tab[3]) || ( tab[0] == tab[1] && 	tab[3] == tab[4])		
			|| (tab[1] == tab[2] && tab[3] == tab[4]))
			{
			   // tak = 1;
			    System.out.println(" masz 2 pary ");
			}
			//////////////// szustki
		  if(tab[0] == 6){
		  for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 6)
				{
				   szus = i + 1;				   
				}
			 }
			 System.out.println(" masz " + szus + " szustek ");
			 }
			 ////////////////  piątki
		  if(tab[0] == 5 || tab[1] == 5 || tab[2] == 5 || tab [3] ==5 || tab[4] == 5){	 
		  for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 5)
				{
				   piat = i + 1 - szus;				   
				}
			 }
			 System.out.println(" masz " + piat + " piatek ");
			 }
			 ////////////////  czwórki
		  if(tab[0] == 4 || tab[1] == 4 || tab[2] == 4 || tab [3] ==4 || tab[4] == 4){	
          for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 4)
				{
				   czwu = i + 1 - szus - piat;				   
				}
			 }
			 System.out.println(" masz " + czwu + " czworek ");
			 }
			 ////////////////  trójki
		  if(tab[0] == 3 || tab[1] == 3 || tab[2] == 3 || tab [3] ==3 || tab[4] == 3){	 
          for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 3)
				{
				   troj = i + 1 - szus - piat - czwu;				   
				}
			 }
			 System.out.println(" masz " + troj + " trojek ");
             }			 
			 ////////////////  dwójki
		  if(tab[0] == 2 || tab[1] == 2 || tab[2] == 2 || tab [3] ==2 || tab[4] == 2){		 
          for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 2)
				{
				   dwuj = i + 1  - szus - piat - czwu - troj;
				}
			 }
				System.out.println(" masz " + dwuj + " dwojek ");
             }				   
             ////////////////   jedynki 	
           if(tab[0] == 1 || tab[1] == 1 || tab[2] == 1 || tab [3] ==1 || tab[4] == 1){			 
          for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 1)
				{
				   jedn = i + 1 - szus - piat - czwu - troj - dwuj;				   
				}
			 }
			 System.out.println(" masz " + jedn + " jedynek ");
             }			 				
	   }
 
   /**
      *metoda przypisz_punkty wypisuje uzytkownikowi jakie moga wystapic oraz ich wartosc punktowa, gracz zostaje zapytany do ktorej z kombinacji ma zostac wybrana,
      *jesli kombinacja  nie wystepuje lub zostanie wpisany inny znak niz cyfry od 1 do 12 zostanie poproszony o ponowny wybor, jesli wybral dobrze wartosc punktow
      * odpowiedniej kombinacji zostanie prezypisana do zmiennej punkty ktora zwracamy
      */   
   int przypisz_punkty()
   {   
      int szus = 0;
      int piat = 0;
      int czwu = 0;
      int troj = 0;
      int dwuj = 0;
      int jedn = 0;	 
	  

      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
      System.out.println(" gdzie chcesz przypisac punkty? ");
	  System.out.println(" strit wpisz 1 (+30 ptk),  full wpisz 2 (+30 ptk),   5 takich samych wpisz 3 (+50 ptk),"+
	                     "  4 takie same wpisz 4 (+35 ptk) ");
	  System.out.println(" 3 takie same wpisz 5 (+25 ptk),  dwie pary wpisz 6 (+20 ptk),"+
	                     "  szustki wpisz 7 ( ilosc * 6 ptk),   piatki wpisz 8 ( ilosc * 5 ptk) ");
	  System.out.println(" czworki wpisz 9 ( ilosc * 4 ptk),  trojki wpisz 10 ( ilosc * 3 ptk),"+
	                     "  dwojki wpisz 11 ( ilosc * 2 ptk),   jedynki wpisz 12 ( ilosc * 1 ptk)");
						 
      punkty = 0;	
	 
	  wroc:
	  while(punkty == 0)
	  {
	  try
	  {
		 wybor = Integer.parseInt(br.readLine());
         if (wybor == 1)
		 { 
	      if(( tab[0] == 6 && tab[1] == 5 && tab[2] == 4 && tab[3] == 3 && tab[4] == 2 )
	        || ( tab[0] == 5 && tab[1] == 4 && tab[2] == 3 && tab[3] == 2 && tab[4] == 1 ))
		    {			   
	           punkty = punkty + 30;
			   System.out.println(" + " + punkty + " ptk");
	        }
            else {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;}			
         }	
		 
		 if (wybor == 2)
		 {
            if( (tab[0] == tab[1] && tab[2] == tab[3] && tab[3] == tab[4])
            ||  (tab[0] == tab[1] && tab[1] == tab[2] &&  tab[3] == tab[4]))
		    {			   
	           punkty = punkty + 30;
			   System.out.println(" + " + punkty + " ptk");
	        }
            else {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;}			
         }	
		 
		 if (wybor == 3)
		 {
         if( tab[0] == tab[1] && tab[1] == tab[2] && tab[2] ==  tab[3] && tab[3] == tab[4]) 	  
		    {			   
	           punkty = punkty + 50;
			   System.out.println(" + " + punkty + " ptk");
	        }
            else {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;}			
         }	
		 if (wybor == 4)
		 {
          if((tab[0] == tab[1] && tab[1] == tab[2] && tab[2] ==  tab[3]) 
            || (tab[1] == tab[2] && tab[2] ==  tab[3] && tab[3] == tab[4]))		  
		    {			   
	           punkty = punkty + 35;
			   System.out.println(" + " + punkty + " ptk");
	        }
            else {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;	}		
         }	
		 if (wybor == 5)
		 {
		  if(( tab[0] == tab[1] && tab[1] == tab[2]  )	
            || ( tab[1] == tab[2] && tab[2] ==  tab[3] )
            || ( tab[2] ==  tab[3] && tab[3] == tab[4] ))
			{	 		    			   
	           punkty = punkty + 25;
			   System.out.println(" + " + punkty + " ptk");
	        }
            else 
			{System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;	}		
         }	
		 if (wybor == 6)
		 {
          if(( tab[0] == tab[1] && 	tab[2] == tab[3]) || ( tab[0] == tab[1] && 	tab[3] == tab[4])		
			|| (tab[1] == tab[2] && tab[3] == tab[4]))
		  {	
			   
	           punkty = punkty + 20;
			   System.out.println(" + " + punkty + " ptk");
	        }
            else 
			{System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;	}		
         }			
		 if (wybor == 7)
		 {		    
		  for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 6)
				{
				   szus = szus + 1;                  					   
				}				
			 }
			 if (szus != 0)
				{
				   punkty = szus * 6;
                   System.out.println(" + " + punkty + " ptk"); 
				}
				   else
				   {
				        System.out.println(" nie wylosowales zadnej szustki, powtoz wybor");
				        continue wroc;
				   }	 
		 } 
		 if (wybor == 8)
		 {		    
		  for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 5)
				{
				   piat = piat + 1;                  					   
				}				
			 }
			 if (piat != 0)
				{
				   punkty = piat * 5;
                   System.out.println(" + " + punkty + " ptk"); 
				}
				   else
				   {
				        System.out.println(" nie wylosowales zadnej piatki, powtoz wybor");
				        continue wroc;
				   }	 
		 } 
		 if (wybor == 9)
		 {		    
		  for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 4)
				{
				   czwu = czwu + 1;	

				}				
			 }
			 if (czwu != 0)
				{
				   punkty = czwu * 4;
                   System.out.println(" + " + punkty + " ptk"); 
				}
				   else
				   {
				        System.out.println(" nie wylosowales zadnej czworki, powtoz wybor");
				        continue wroc;
				   }	 
		 } 
		 if (wybor == 10)
		 {		    
		  for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 3)
				{
				   troj = troj + 1;	                 					   
				}				
			 }
			 if (troj != 0)
				{
				   punkty = troj * 3;
                   System.out.println(" + " + punkty + " ptk"); 
				}
				   else
				   {
				        System.out.println(" nie wylosowales zadnej trojki, powtoz wybor");
				        continue wroc;
				   }	 
		 } 
		 if (wybor == 11)
		 {		    
		  for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 2)
				{
				   dwuj = dwuj + 1;	                 					   
				}				
			 }
			 if (dwuj != 0)
				{
				   punkty = dwuj * 2;
                   System.out.println(" + " + punkty + " ptk"); 
				}
				   else
				   {
				        System.out.println(" nie wylosowales zadnej dwojki, powtoz wybor");
				        continue wroc;
				   }	 
		 } 
		 if (wybor == 12)
		 {		    
		  for (int i=0; i < 5; i++)
             {		  
		        if ( tab[i] == 1)
				{
				   jedn = jedn + 1;	                 					   
				}				
			 }
			 if (jedn != 0)
				{
				   punkty = jedn * 1;
                   System.out.println(" + " + punkty + " ptk"); 
				}
				   else
				   {
				        System.out.println(" nie wylosowales zadnej jedynki, powtoz wybor");
				        continue wroc;
				   }	 
		 } 
	  }
         catch(Exception e)
	     { 
	        System.out.println(e.getMessage() + " wybrales inny znak niz cyfre od 1 do 12, powtoz wybor \n ");			
	     }	 	  
    }  	  	  
    	return punkty;
		
   }  
}

class zawodnik
{   
   int liczba = 10;
   int ptk1, ptk2, su_ptk1, su_ptk2;
   String gracz1, gracz2;
   rzut r1 = new rzut();
   int pow = 0;
   int licz;
   
   /**
      * metoda void stwurz_gracza pyta sie ilu graczy chcemy stworzyc, jesli wpiszemy zero program zostanie zakonczony, jesli wpiszemy inny znak niz cyfre
      * zostanie zwrocony wyjatek i ponowne zapytanie o liczbe graczy. Jesli wpiszemy 1 zostanie stworzony jeden gracz który zostanie poproszony o podanie imienia
      *	nastepnie zostana wygenerowane funkcje generuj i sprawdz z klasy rzut ktore generuja rzut 5 kostkami oraz sprawdzenie i wypisanie z jakich kombinajcji punktow
      * moze skorzystac gracz, jesli gracz nie jest zadowolony moze  jeszcze dwukrotnie wywolac funkcje generujace i sprawdzajace, jesli rzut zostanie zatwierdzony
      * do zmiennej ptk1 zostaje przypisana wartosc wywolanej metody przypisz_punkty a nastepnie wartosc zmiennej ptk1 zostaje przypisana do zmiennej su_ptk
      * konczy sie 1 tura gracz kolejny raz rzuca koscmi... po 12 turach suma punktow zostaje wyswietlona na ekranie
      * w przypadku 2 graczy sytuacja jest analogiczna z tym ze gracze rzucaja koscmi na przemian, po 12 turach wyniki graczy zostaja porownane i wyswietla sie imie zwyciezcy	  
      */
   void stwurz_gracza() 
   {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));	  
      System.out.println(" ilu chesz stworzyc graczy? (1-2)");

	  wroc:
	  while(liczba != 1 && liczba != 2)
	  {
	      
	  try
	  {
         liczba = Integer.parseInt(br.readLine());
	     if (liczba == 1)
		 {
		    System.out.print(" podaj imie gracza: ");
			gracz1 = br.readLine();
			System.out.println("gracz " + gracz1 + " zostal utworzony");
		 }
	     else if (liczba ==2)
		      {
			    System.out.print(" podaj imie gracza 1: ");
				gracz1 = br.readLine();
				System.out.println("gracz " + gracz1 + " zostal utworzony");
				
				System.out.print(" podaj imie gracza 2: ");
				gracz2 = br.readLine();
				System.out.println("gracz " + gracz2 + " zostal utworzony");
			  }
			  else 
			  {
			     System.out.println("wybrales zla opcje, sprobuj jeszcze raz ");
			     continue wroc;
	          }
	   
     /////////////////////////////    2 graczy
	if (liczba == 2)
	{
	   for (int i=0; i<2; i++)
	   {
	      pow = 0;
	      System.out.println(" \n rzuca " + gracz1);		  

		  r1.generuj();
		  r1.sprawdz();
			 
		  wroc2:
		  while(pow != 1 && pow != 2)
		  {
		  try
		  {
             System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
             pow = Integer.parseInt(br.readLine());
			 
			 if(pow == 2)
			 {
			    System.out.println(" droga szansa ");
				r1.generuj();
			    r1.sprawdz();
                System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
				pow = 0;
				licz = 1;
				wroc4:
				while( pow == 0)
				{
				   try
				   {   
                      pow = Integer.parseInt(br.readLine());
					  if( pow != 1 && pow != 2 && licz == 1)
			          {
			            System.out.println(" podales zly numer polecenia");
						pow = 0;
					    continue wroc4;
			          }
					 //licz = 3;
				   }
                      catch(Exception e)
	                  { 
	                     System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor"); 			
	                  }	

						  
				}
				if(pow == 2)
			    {
			       System.out.println(" twoja ostatnia szansa, teraz musisz cos wybrac ");
				   r1.generuj();
			       r1.sprawdz();

			       ptk1 = r1.przypisz_punkty();
                   su_ptk1 = su_ptk1 + ptk1;	
                   System.out.println(" masz w sumie " + su_ptk1 + " ptk.");
                   licz = 2;				   
	            }
			 }
			  if(pow == 1)
		          {
			         ptk1 = r1.przypisz_punkty();
                     su_ptk1 = su_ptk1 + ptk1;	
                     System.out.println(" masz w sumie " + su_ptk1 + " ptk.");		 
	              }
			  if( pow != 1 && pow != 2)
			      {
			         System.out.println(" podales zly numer polecenia");
					 continue wroc2;
			      }	
			}
			catch(Exception e)
	        { 
	           System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor"); 			
	        }	 
          }			 
			/////////////////////////////////////////////////////////////////////// 
          pow = 0;
	      System.out.println(" \n rzuca " + gracz2);		  

		  r1.generuj();
		  r1.sprawdz();
			 
		  wroc3:
		  while(pow != 1 && pow != 2)
		  {
		  try
		  {
             System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
             pow = Integer.parseInt(br.readLine());
			 
			 if(pow == 2)
			 {
			    System.out.println(" droga szansa ");
				r1.generuj();
			    r1.sprawdz();
                System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
				pow = 0;
				licz = 2;
				wroc5:
				while( pow == 0)
				{
				   try
				   {
                      pow = Integer.parseInt(br.readLine());
					  if( pow != 1 && pow != 2 && licz == 2)
			          {
			            System.out.println(" podales zly numer polecenia");
						pow = 0;
					    continue wroc5;
			          }
				   }
                      catch(Exception e)
	                  { 
	                     System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor"); 			
	                  }	 				
				}
				
				if(pow == 2)
			    {
			       System.out.println(" twoja ostatnia szansa, teraz musisz cos wybrac ");
				   r1.generuj();
			       r1.sprawdz();

			       ptk2 = r1.przypisz_punkty();
                   su_ptk2 = su_ptk2 + ptk2;	
                   System.out.println(" masz w sumie " + su_ptk2 + " ptk.");		 
	            }
			 }
			  if(pow == 1)
		          {
			         ptk2 = r1.przypisz_punkty();
                     su_ptk2 = su_ptk2 + ptk2;	
                     System.out.println(" masz w sumie " + su_ptk2 + " ptk.");		 
	              }
			  if( pow != 1 && pow != 2)
			      {
			         System.out.println(" podales zly numer polecenia");
					 continue wroc3;
			      }			 
			 }
			 catch(Exception e)
	         { 
	            System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor"); 			
	         }	 
           } 
	   }
	   if(su_ptk1 > su_ptk2 )
	   {
	      System.out.println("wygrywa gracz " + gracz1 );
	   }
	   else if(su_ptk1 < su_ptk2 )
	        {
			    System.out.println("wygrywa gracz " + gracz2 );
			}
			else if(su_ptk1 == su_ptk2 )
			     {
			        System.out.println("remis!!! " );
		         }
	}   
	//////////////////////////////////    1 gracz
	if (liczba == 1)
	{		
	   for (int i=0; i<5; i++)
	   {
	      pow = 0;
	      System.out.println(" \n rzuca " + gracz1);		  

		  r1.generuj();
		  r1.sprawdz();
		  while(pow == 0)
          {
             try
		     {		  
		     wroc2:
		     while(pow != 1 && pow != 2)
		     {
		    
                System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
                pow = Integer.parseInt(br.readLine());
			 
			    if(pow == 2)
			    {
			       System.out.println(" droga szansa ");
				   r1.generuj();
			       r1.sprawdz();
                   System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
				   pow = 0;
				   while( pow == 0)
				   {
				      try
				      {
                         pow = Integer.parseInt(br.readLine());
				      }
                         catch(Exception e)
	                     { 
	                        System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor"); 			
	                     }	 				
				   }
				   if(pow == 2)
			       {
			          System.out.println(" twoja ostatnia szansa, teraz musisz cos wybrac ");
				      r1.generuj();
			          r1.sprawdz();

			          ptk1 = r1.przypisz_punkty();
                      su_ptk1 = su_ptk1 + ptk1;	
                      System.out.println(" masz w sumie " + su_ptk1 + " ptk.");		 
	               }
			    }
			     if(pow == 1)
		             {
			            ptk1 = r1.przypisz_punkty();
                        su_ptk1 = su_ptk1 + ptk1;	
                        System.out.println(" masz w sumie " + su_ptk1 + " ptk.");		 
	                 }
			     if( pow != 1 && pow != 2)
			         {
			            System.out.println(" podales zly numer polecenia");
					    continue wroc2;
			         }	
              }
		     }
             catch(Exception e)
	         { 
	            System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor"); 			
	         }	 						 
		  } 	   
	   } 
	}
	
	}
	  catch(Exception e)
	     { 
	        System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor"); 			
	     }	 	
    }
   }  
}

zdaje sobie sprawę ze kod jest prostacki a jednocześnie zagmatwany :-(

z góry dzięki za pomoc

0

zapomniałem dodać importów :(

import java.io.*;
import java.util.*;
0
stawio88 napisał(a)

... jak zrobić żeby 1(lub kilka) kości można było odłożyć i przy 2 podejściu rzucać tylko pozostałymi kościami, dostałem również uwagę że Program nie jest napisany w stylu OOP i nie wime jak rozwiazać ten problem

Po 0. podział na więcej małych funkcji w pisaniu takiej gry niechodzi ani o wydajnośc ani o "pamięciorzeność" więc można zrobić tu mase małych funkcji i często je uruchamiać - dużo funkcji brak konieczności wrucania 700+ linii kodu :-/ dodatkowy zysk to to że łatwiej się odanleść w takim kodzie
Po 1. co do OOP to trzeba bu wprowadzić sporo zmian ja tylko dodałem jedną klase "kostki" i teraz zamiast używać zmiennych używam obiektów - może przejdzie u tego kto dał Ci taką uwagę ;-P
Po 2. klasa kostki nie jest zbyt rozbudowana (ma "aż" 2 pola) ale pole boolean czy_aktywna jest dość znaczące w kwestji 2 podejścia do rzutu ale o tym później

Na początek podzieliłem te 700 linii na 2 klasy i dodałem swoją (malutką)klasę
Plik 1 klasa zodj i zawodnik

     import java.io.*;
import java.util.*;

class zodj
{
   /**
      * metoda main wypisuje zasady gry oraz wywoluje funkcje stwurz_gracza
      */
   public static void main(String[] args)
   {
      System.out.println(" zasady gry:  mozna grac samemu lub w 2 osoby, gra trwa 12 tur," +
          " w kazdej z tur gracz moze wykonac 3 rzuty: jesli nie jest zadowolony z poprzedniego"); 
          System.out.println(" rzutu mozesz go powtorzyc ale poprzednie wyniki nie zostana uznane," +
          " 3 rzut w danej turze jest ostateczny.  Wygrywa gracz ktory zdobedzie najwiecej punktow po 12 turach. \n         ");
          System.out.println("                  Zycze milej zabawy!!! \n");
          
      rzut rz1 = new rzut();
      zawodnik z1 = new zawodnik();  
      z1.stwurz_gracza();
                                  
   }
}


class zawodnik
{   
   int liczba = 10;
   int ptk1, ptk2, su_ptk1, su_ptk2;
   String gracz1, gracz2;
   rzut r1 = new rzut();
   int pow = 0;
   int licz;
   
   /**
      * metoda void stwurz_gracza pyta sie ilu graczy chcemy stworzyc, jesli wpiszemy zero program zostanie zakonczony, jesli wpiszemy inny znak niz cyfre
      * zostanie zwrocony wyjatek i ponowne zapytanie o liczbe graczy. Jesli wpiszemy 1 zostanie stworzony jeden gracz który zostanie poproszony o podanie imienia
      *        nastepnie zostana wygenerowane funkcje generuj i sprawdz z klasy rzut ktore generuja rzut 5 kostkami oraz sprawdzenie i wypisanie z jakich kombinajcji punktow
      * moze skorzystac gracz, jesli gracz nie jest zadowolony moze  jeszcze dwukrotnie wywolac funkcje generujace i sprawdzajace, jesli rzut zostanie zatwierdzony
      * do zmiennej ptk1 zostaje przypisana wartosc wywolanej metody przypisz_punkty a nastepnie wartosc zmiennej ptk1 zostaje przypisana do zmiennej su_ptk
      * konczy sie 1 tura gracz kolejny raz rzuca koscmi... po 12 turach suma punktow zostaje wyswietlona na ekranie
      * w przypadku 2 graczy sytuacja jest analogiczna z tym ze gracze rzucaja koscmi na przemian, po 12 turach wyniki graczy zostaja porownane i wyswietla sie imie zwyciezcy          
      */
   void stwurz_gracza() 
   {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));          
      System.out.println(" ilu chesz stworzyc graczy? (1-2)");

          wroc:
          while(liczba != 1 && liczba != 2)
          {
              
          try
          {
         liczba = Integer.parseInt(br.readLine());
             if (liczba == 1)
                 {
                    System.out.print(" podaj imie gracza: ");
                        gracz1 = br.readLine();
                        System.out.println("gracz " + gracz1 + " zostal utworzony");
                 }
             else if (liczba ==2)
                      {
                            System.out.print(" podaj imie gracza 1: ");
                                gracz1 = br.readLine();
                                System.out.println("gracz " + gracz1 + " zostal utworzony");
                                
                                System.out.print(" podaj imie gracza 2: ");
                                gracz2 = br.readLine();
                                System.out.println("gracz " + gracz2 + " zostal utworzony");
                          }
                          else 
                          {
                             System.out.println("wybrales zla opcje, sprobuj jeszcze raz ");
                             continue wroc;
                  }
           
     /////////////////////////////    2 graczy
        if (liczba == 2)
        {
           for (int i=0; i<2; i++)
           {
              pow = 0;
              System.out.println(" \n rzuca " + gracz1);                  

                  r1.generuj();
                  r1.sprawdz();
                         
                  wroc2:
                  while(pow != 1 && pow != 2)
                  {
                  try
                  {
             System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
             pow = Integer.parseInt(br.readLine());
                         
                         if(pow == 2)
                         {
                            System.out.println(" droga szansa ");
                                r1.generuj();
                            r1.sprawdz();
                System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
                                pow = 0;
                                licz = 1;
                                wroc4:
                                while( pow == 0)
                                {
                                   try
                                   {   
                      pow = Integer.parseInt(br.readLine());
                                          if( pow != 1 && pow != 2 && licz == 1)
                                  {
                                    System.out.println(" podales zly numer polecenia");
                                                pow = 0;
                                            continue wroc4;
                                  }
                                         //licz = 3;
                                   }
                      catch(Exception e)
                          { 
                             System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor");                         
                          }        

                                                  
                                }
                                if(pow == 2)
                            {
                               System.out.println(" twoja ostatnia szansa, teraz musisz cos wybrac ");
                                   r1.generuj();
                               r1.sprawdz();

                               ptk1 = r1.przypisz_punkty();
                   su_ptk1 = su_ptk1 + ptk1;        
                   System.out.println(" masz w sumie " + su_ptk1 + " ptk.");
                   licz = 2;                                   
                    }
                         }
                          if(pow == 1)
                          {
                                 ptk1 = r1.przypisz_punkty();
                     su_ptk1 = su_ptk1 + ptk1;        
                     System.out.println(" masz w sumie " + su_ptk1 + " ptk.");                 
                      }
                          if( pow != 1 && pow != 2)
                              {
                                 System.out.println(" podales zly numer polecenia");
                                         continue wroc2;
                              }        
                        }
                        catch(Exception e)
                { 
                   System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor");                         
                }         
          }                         
                        /////////////////////////////////////////////////////////////////////// 
          pow = 0;
              System.out.println(" \n rzuca " + gracz2);                  

                  r1.generuj();
                  r1.sprawdz();
                         
                  wroc3:
                  while(pow != 1 && pow != 2)
                  {
                  try
                  {
             System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
             pow = Integer.parseInt(br.readLine());
                         
                         if(pow == 2)
                         {
                            System.out.println(" droga szansa ");
                                r1.generuj();
                            r1.sprawdz();
                System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
                                pow = 0;
                                licz = 2;
                                wroc5:
                                while( pow == 0)
                                {
                                   try
                                   {
                      pow = Integer.parseInt(br.readLine());
                                          if( pow != 1 && pow != 2 && licz == 2)
                                  {
                                    System.out.println(" podales zly numer polecenia");
                                                pow = 0;
                                            continue wroc5;
                                  }
                                   }
                      catch(Exception e)
                          { 
                             System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor");                         
                          }                                         
                                }
                                
                                if(pow == 2)
                            {
                               System.out.println(" twoja ostatnia szansa, teraz musisz cos wybrac ");
                                   r1.generuj();
                               r1.sprawdz();

                               ptk2 = r1.przypisz_punkty();
                   su_ptk2 = su_ptk2 + ptk2;        
                   System.out.println(" masz w sumie " + su_ptk2 + " ptk.");                 
                    }
                         }
                          if(pow == 1)
                          {
                                 ptk2 = r1.przypisz_punkty();
                     su_ptk2 = su_ptk2 + ptk2;        
                     System.out.println(" masz w sumie " + su_ptk2 + " ptk.");                 
                      }
                          if( pow != 1 && pow != 2)
                              {
                                 System.out.println(" podales zly numer polecenia");
                                         continue wroc3;
                              }                         
                         }
                         catch(Exception e)
                 { 
                    System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor");                         
                 }         
           } 
           }
           if(su_ptk1 > su_ptk2 )
           {
              System.out.println("wygrywa gracz " + gracz1 );
           }
           else if(su_ptk1 < su_ptk2 )
                {
                            System.out.println("wygrywa gracz " + gracz2 );
                        }
                        else if(su_ptk1 == su_ptk2 )
                             {
                                System.out.println("remis!!! " );
                         }
        }   
        //////////////////////////////////    1 gracz
        if (liczba == 1)
        {                
           for (int i=0; i<5; i++)
           {
              pow = 0;
              System.out.println(" \n rzuca " + gracz1);                  

                 r1.generuj();
                  r1.sprawdz();
                  while(pow == 0)
          {
             try
                     {                  
                     wroc2:
                     while(pow != 1 && pow != 2)
                     {
                    
                System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
                pow = Integer.parseInt(br.readLine());
                         
                            if(pow == 2)
                            {
                               System.out.println(" droga szansa ");
                                   r1.generuj();
                               r1.sprawdz();
                   System.out.println(" jesli jestes zadowolony z rzutu wpisz 1 jesli nie wpisz 2 ");
                                   pow = 0;
                                   while( pow == 0)
                                   {
                                      try
                                      {
                         pow = Integer.parseInt(br.readLine());
                                      }
                         catch(Exception e)
                             { 
                                System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor");                         
                             }                                         
                                   }
                                   if(pow == 2)
                               {
                                  System.out.println(" twoja ostatnia szansa, teraz musisz cos wybrac ");
                                      r1.generuj();
                                  r1.sprawdz();

                                  ptk1 = r1.przypisz_punkty();
                      su_ptk1 = su_ptk1 + ptk1;        
                      System.out.println(" masz w sumie " + su_ptk1 + " ptk.");                 
                       }
                            }
                             if(pow == 1)
                             {
                                    ptk1 = r1.przypisz_punkty();
                        su_ptk1 = su_ptk1 + ptk1;        
                        System.out.println(" masz w sumie " + su_ptk1 + " ptk.");                 
                         }
                             if( pow != 1 && pow != 2)
                                 {
                                    System.out.println(" podales zly numer polecenia");
                                            continue wroc2;
                                 }        
              }
                     }
             catch(Exception e)
                 { 
                    System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor");                         
                 }                                                          
                  }            
           } 
        }
        
        }
          catch(Exception e)
             { 
                System.out.println(e.getMessage() + " nie wpisales 1 lub 2, powtoz wybor");                         
             }                 
    }
   }  
}

Plik 2 klasa rzut

     import java.io.*;
import java.util.*;

public class rzut
{  
   int punkty;
   int wybor = 0;
   int szus, piat, czwu, troj, dwuj, jedn;
   kostki[] tab = new kostki[5];
   kostki k0 = new kostki();
   kostki k1 = new kostki();
   kostki k2 = new kostki();
   kostki k3 = new kostki();
   kostki k4 = new kostki();
   
  
   /**
      *metoda generuj generuje 5 losowych liczb (odpowiadajacym kosciom) kazda z zakresu 1 - 6 dodatkowo dla ulatwienia puzniejszego sprawdzania kombinacji
      *liczby te zostaja ustawione w kolejnosci od najwiekszej w zapisane w tablicy tab oraz wyswietla wyniki
      */
   void generuj()
   { 
	 tab[0]= k0;
	 tab[1]= k1;
	 tab[2]= k2;
	 tab[3]= k3;
	 tab[4]= k4;
      Random los = new Random();
                
      int k = 6;          
          int key;          
          for (int i=0; i<5; i++)
          {
		   if (tab[i].czy_moge_rzucic_jeszcze_raz() == true)
              tab[i].set((los.nextInt(k)+1));
          }        
          
          for (int j=0; j < 4; j++)
          {
         for (int l=j+1; l <5; l++)
                 {
                if(tab[j].get() < tab[l].get())
                        {
                           key = tab[j].get();
                           tab[j].set(tab[l].get());
						   tab[l].set(key);
                        }          
             }         
       }
            

      System.out.println("wartosci wylosowanych kosci to: ");
          System.out.println(tab[0].get() + "   " + tab[1].get() + "   " + tab[2].get() + "   " + tab[3].get() + "   " + tab[4].get() );
                          
   }
   
   /**
      *metoda sprawdz po przez porownywanie ze soba elementow tablicy sprawdza jakie zachodza kombinacje w wylosowanych liczbach oraz wyswietla nazwy wystepujacych kombinacji
      */
   void sprawdz()
       {
          int szus = 0;
          int piat = 0;
          int czwu = 0;
          int troj = 0;
          int dwuj = 0;
          int jedn = 0;           
                ///////////////// Strit
              if(( tab[0].get() == 6 && tab[1].get() == 5 && tab[2].get() == 4 && tab[3].get() == 3 && tab[4].get() == 2 )
                || ( tab[0].get() == 5 && tab[1].get() == 4 && tab[2].get() == 3 && tab[3].get() == 2 && tab[4].get() == 1 ))
                    {
                       System.out.println(" masz Strita ");
                    }
                     //////////////// full
          if( (tab[0].get() == tab[1].get() && tab[2].get() == tab[3].get() && tab[3].get() == tab[4].get())
            ||  (tab[0].get() == tab[1].get() && tab[1].get() == tab[2].get() &&  tab[3].get() == tab[4].get()))
            {
                            System.out.println(" masz fulla ");
                        }        
          //////////////////// 5takich samych
          if( tab[0].get() == tab[1].get() && tab[1].get() == tab[2].get() && tab[2].get() ==  tab[3].get() && tab[3].get() == tab[4].get())           
                        {
                            System.out.println(" masz 5 takich samych ");
                        }                                        
            //////////////////// 4 takie same
          if((tab[0].get() == tab[1].get() && tab[1].get() == tab[2].get() && tab[2].get() ==  tab[3].get()) 
            || (tab[1].get() == tab[2].get() && tab[2].get() ==  tab[3].get() && tab[3].get() == tab[4].get()))                  
                        {
                            System.out.println(" masz 4 takie same ");
                        }                
                         //////////////////// 3 takie same
                  if(( tab[0].get() == tab[1].get() && tab[1].get() == tab[2].get()  )        
            || ( tab[1].get() == tab[2].get() && tab[2].get() ==  tab[3].get() )
            || ( tab[2].get() ==  tab[3].get() && tab[3].get() == tab[4].get() ))
                    {
                            System.out.println(" masz 3 takie same ");
                        }
                        ////////////////// 2 pary
          if(( tab[0].get() == tab[1].get() && tab[2].get() == tab[3].get()) || ( tab[0].get() == tab[1].get() && tab[3].get() == tab[4].get())                
                        || (tab[1].get() == tab[2].get() && tab[3].get() == tab[4].get()))
                        {
                           // tak = 1;
                            System.out.println(" masz 2 pary ");
                        }
                        //////////////// szustki
                  if(tab[0].get() == 6){
                  for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 6)
                                {
                                   szus = i + 1;                                   
                                }
                         }
                         System.out.println(" masz " + szus + " szustek ");
                         }
                         ////////////////  piatki
                  if(tab[0].get() == 5 || tab[1].get() == 5 || tab[2].get() == 5 || tab [3].get() ==5 || tab[4].get() == 5){         
                  for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 5)
                                {
                                   piat = i + 1 - szus;                                   
                                }
                         }
                         System.out.println(" masz " + piat + " piatek ");
                         }
                         ////////////////  czwórki
                  if(tab[0].get() == 4 || tab[1].get() == 4 || tab[2].get() == 4 || tab [3].get() ==4 || tab[4].get() == 4){        
          for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 4)
                                {
                                   czwu = i + 1 - szus - piat;                                   
                                }
                         }
                         System.out.println(" masz " + czwu + " czworek ");
                         }
                         ////////////////  trójki
                  if(tab[0].get() == 3 || tab[1].get() == 3 || tab[2].get() == 3 || tab [3].get() ==3 || tab[4].get() == 3){         
          for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 3)
                                {
                                   troj = i + 1 - szus - piat - czwu;                                   
                                }
                         }
                         System.out.println(" masz " + troj + " trojek ");
             }                         
                         ////////////////  dwójki
                  if(tab[0].get() == 2 || tab[1].get() == 2 || tab[2].get() == 2 || tab [3].get() ==2 || tab[4].get() == 2){                 
          for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 2)
                                {
                                   dwuj = i + 1  - szus - piat - czwu - troj;
                                }
                         }
                                System.out.println(" masz " + dwuj + " dwojek ");
             }                                   
             ////////////////   jedynki         
           if(tab[0].get() == 1 || tab[1].get() == 1 || tab[2].get() == 1 || tab [3].get() ==1 || tab[4].get() == 1){                         
          for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 1)
                                {
                                   jedn = i + 1 - szus - piat - czwu - troj - dwuj;                                   
                                }
                         }
                         System.out.println(" masz " + jedn + " jedynek ");
             }                                                         
           }
 
   /**
      *metoda przypisz_punkty wypisuje uzytkownikowi jakie moga wystapic oraz ich wartosc punktowa, gracz zostaje zapytany do ktorej z kombinacji ma zostac wybrana,
      *jesli kombinacja  nie wystepuje lub zostanie wpisany inny znak niz cyfry od 1 do 12 zostanie poproszony o ponowny wybor, jesli wybral dobrze wartosc punktow
      * odpowiedniej kombinacji zostanie prezypisana do zmiennej punkty ktora zwracamy
      */   
   int przypisz_punkty()
   {   
      int szus = 0;
      int piat = 0;
      int czwu = 0;
      int troj = 0;
      int dwuj = 0;
      int jedn = 0;         
          

      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
      System.out.println(" gdzie chcesz przypisac punkty? ");
          System.out.println(" strit wpisz 1 (+30 ptk),  full wpisz 2 (+30 ptk),   5 takich samych wpisz 3 (+50 ptk),"+
                             "  4 takie same wpisz 4 (+35 ptk) ");
          System.out.println(" 3 takie same wpisz 5 (+25 ptk),  dwie pary wpisz 6 (+20 ptk),"+
                             "  szustki wpisz 7 ( ilosc * 6 ptk),   piatki wpisz 8 ( ilosc * 5 ptk) ");
          System.out.println(" czworki wpisz 9 ( ilosc * 4 ptk),  trojki wpisz 10 ( ilosc * 3 ptk),"+
                             "  dwojki wpisz 11 ( ilosc * 2 ptk),   jedynki wpisz 12 ( ilosc * 1 ptk)");
                                                 
      punkty = 0;        
         
          wroc:
          while(punkty == 0)
          {
          try
          {
                 wybor = Integer.parseInt(br.readLine());
         if (wybor == 1)
                 { 
              if(( tab[0].get() == 6 && tab[1].get() == 5 && tab[2].get() == 4 && tab[3].get() == 3 && tab[4].get() == 2 )
                || ( tab[0].get() == 5 && tab[1].get() == 4 && tab[2].get() == 3 && tab[3].get() == 2 && tab[4].get() == 1 ))
                    {                           
                   punkty = punkty + 30;
                           System.out.println(" + " + punkty + " ptk");
                }
            else {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;}                        
         }        
                 
                 if (wybor == 2)
                 {
            if( (tab[0].get() == tab[1].get() && tab[2].get() == tab[3].get() && tab[3].get() == tab[4].get())
            ||  (tab[0].get() == tab[1].get() && tab[1].get() == tab[2].get() &&  tab[3].get() == tab[4].get()))
                    {                           
                   punkty = punkty + 30;
                           System.out.println(" + " + punkty + " ptk");
                }
            else {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;}                        
         }        
                 
                 if (wybor == 3)
                 {
         if( tab[0].get() == tab[1].get() && tab[1].get() == tab[2].get() && tab[2].get() ==  tab[3].get() && tab[3].get() == tab[4].get())           
                    {                           
                   punkty = punkty + 50;
                           System.out.println(" + " + punkty + " ptk");
                }
            else {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;}                        
         }        
                 if (wybor == 4)
                 {
          if((tab[0].get() == tab[1].get() && tab[1].get() == tab[2].get() && tab[2].get() ==  tab[3].get()) 
            || (tab[1].get() == tab[2].get() && tab[2].get() ==  tab[3].get() && tab[3].get() == tab[4].get()))                  
                    {                           
                   punkty = punkty + 35;
                           System.out.println(" + " + punkty + " ptk");
                }
            else {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;        }                
         }        
                 if (wybor == 5)
                 {
                  if(( tab[0].get() == tab[1].get() && tab[1].get() == tab[2].get()  )        
            || ( tab[1].get() == tab[2].get() && tab[2].get() ==  tab[3].get() )
            || ( tab[2].get() ==  tab[3].get() && tab[3].get() == tab[4].get() ))
                        {                                                        
                   punkty = punkty + 25;
                           System.out.println(" + " + punkty + " ptk");
                }
            else 
                        {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;        }                
         }        
                 if (wybor == 6)
                 {
          if(( tab[0].get() == tab[1].get() && tab[2].get() == tab[3].get()) || ( tab[0].get() == tab[1].get() && tab[3].get() == tab[4].get())                
                        || (tab[1].get() == tab[2].get() && tab[3].get() == tab[4].get()))
                  {        
                           
                   punkty = punkty + 20;
                           System.out.println(" + " + punkty + " ptk");
                }
            else 
                        {System.out.println("nie masz takiej kombinacji, powtoz wybor");
            continue wroc;        }                
         }                        
                 if (wybor == 7)
                 {                    
                  for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 6)
                                {
                                   szus = szus + 1;                                                             
                                }                                
                         }
                         if (szus != 0)
                                {
                                   punkty = szus * 6;
                   System.out.println(" + " + punkty + " ptk"); 
                                }
                                   else
                                   {
                                        System.out.println(" nie wylosowales zadnej szustki, powtoz wybor");
                                        continue wroc;
                                   }         
                 } 
                 if (wybor == 8)
                 {                    
                  for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 5)
                                {
                                   piat = piat + 1;                                                             
                                }                                
                         }
                         if (piat != 0)
                                {
                                   punkty = piat * 5;
                   System.out.println(" + " + punkty + " ptk"); 
                                }
                                   else
                                   {
                                        System.out.println(" nie wylosowales zadnej piatki, powtoz wybor");
                                        continue wroc;
                                   }         
                 } 
                 if (wybor == 9)
                 {                    
                  for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 4)
                                {
                                   czwu = czwu + 1;        

                                }                                
                         }
                         if (czwu != 0)
                                {
                                   punkty = czwu * 4;
                   System.out.println(" + " + punkty + " ptk"); 
                                }
                                   else
                                   {
                                        System.out.println(" nie wylosowales zadnej czworki, powtoz wybor");
                                        continue wroc;
                                   }         
                 } 
                 if (wybor == 10)
                 {                    
                  for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 3)
                                {
                                   troj = troj + 1;                                                                    
                                }                                
                         }
                         if (troj != 0)
                                {
                                   punkty = troj * 3;
                   System.out.println(" + " + punkty + " ptk"); 
                                }
                                   else
                                   {
                                        System.out.println(" nie wylosowales zadnej trojki, powtoz wybor");
                                        continue wroc;
                                   }         
                 } 
                 if (wybor == 11)
                 {                    
                  for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 2)
                                {
                                   dwuj = dwuj + 1;                                                                    
                                }                                
                         }
                         if (dwuj != 0)
                                {
                                   punkty = dwuj * 2;
                   System.out.println(" + " + punkty + " ptk"); 
                                }
                                   else
                                   {
                                        System.out.println(" nie wylosowales zadnej dwojki, powtoz wybor");
                                        continue wroc;
                                   }         
                 } 
                 if (wybor == 12)
                 {                    
                  for (int i=0; i < 5; i++)
             {                  
                        if ( tab[i].get() == 1)
                                {
                                   jedn = jedn + 1;                                                                    
                                }                                
                         }
                         if (jedn != 0)
                                {
                                   punkty = jedn * 1;
                   System.out.println(" + " + punkty + " ptk"); 
                                }
                                   else
                                   {
                                        System.out.println(" nie wylosowales zadnej jedynki, powtoz wybor");
                                        continue wroc;
                                   }         
                 } 
          }
         catch(Exception e)
             { 
                System.out.println(e.getMessage() + " wybrales inny znak niz cyfre od 1 do 12, powtoz wybor \n ");                        
             }                   
    }                      
            return punkty;
                
   }  
}

Plik 3 klasa kostki

     public class kostki{
	private int oczka;
	private boolean czy_aktywna = true;
	
	void set(int ilosc) {
		oczka = ilosc;
	}
	int get (){
		return oczka;
	}
	void odkladam (){
		czy_aktywna = false;
	}
	
	void gram() {
		czy_aktywna = true;
	}
	boolean czy_moge_rzucic_jeszcze_raz(){
		return czy_aktywna;
	}
}

Poza zmianami kosmetycznymi (tablica int'ów stała się tablicą obieków kostki, wyszstkie odwołania to już nie tab[x] tylko tab[x].metoda() itd) w klasie rzut została dopisana linia (na początku przy generatorze liczb pseudolosowych)

  if (tab[i].czy_moge_rzucic_jeszcze_raz() == true)

chyba się domyślasz co robi :-)

i teraz Twoim zadaniem będzie napisanie METODY (nie kolejnych stu linii luźnego kodu) która zapyta gracza które kości chce odłożyć i wywoła metode odkladam() z klasy klocki tą Twoją metode uruchamiasz gdzie trzeba i problem odkładania kostek się rozwiązał - tylko niezapomnij przed następnym rzutem odpowiednio ustawić wartości czy_aktywna dla każdego obiektu "kostki".
weź pod uwagę to (na szybko to robiłem i nieprzyglądałem się zbytnio) że masz tam pętle która sortuje kostki a ja dodałem doniej tylko wywołanie funkcji - sortowanie niepozamienia więc całych kostek a jedynie ich wartość bez ustawień zmiennej czy_aktywna (niewiem dokładnie kiedy wywoływane jest to sortowanie więc moze będziesz musiał zająć się także tą kwestią - a może nie)

0

mała uwaga, nie

if (tab[i].czy_moge_rzucic_jeszcze_raz() == true)

a

if (tab[i].czy_moge_rzucic_jeszcze_raz())

pierwsza wersja zawiera zbyteczne porównanie

if (true == true)

1 użytkowników online, w tym zalogowanych: 0, gości: 1