I have big trouble with this exception. I'm newbie to Java programming (and programming as well), so.. Why, when second class is returning two arrays exception appears? In addition, when only one array is returning (f.e "return jakob;"), everything works ok. First class:
package mainpackage;
public class GraWojna {
int[] jakob = new int[24];
int[] gracz = new int[24];
public void Wojna() {
System.out.println("tasowanie kart...");
// kart w talii jest 48, bo 4* 12.. true?
WojnaTasowanie tas = new WojnaTasowanie();
tas.Tasowanie(jakob, gracz);
int licznik = 0;
while (licznik<23) {
System.out.println("jakob:" + jakob[licznik]);
licznik++;
}
}
}
Second class:
package mainpackage;
import java.util.Random;
public class WojnaTasowanie {
int[] Tasowanie (int jakob[], int gracz[]) {
int jakb[] = new int[23];
int grcz[] = new int[23];
Random generator = new Random();
int licznik = 0;
int[] Pula = new int[11];
while (licznik<11){
Pula[licznik] = 4;
licznik++;
}
licznik = 0;
int passa = 0;
int passb = 0;
while (licznik<22) {
passa = 5;
passb = 5;
System.out.println("step ----");
while (passa<8){
int bekaxd = generator.nextInt(11);
if (Pula[bekaxd]>0) {
Pula[bekaxd]--;
passa = 15;
jakob[licznik] = bekaxd;
}
while (passb<8){
bekaxd = generator.nextInt(11);
gracz[licznik] = bekaxd;
System.out.println("licznik:" + licznik + "gracz: " + gracz[licznik] + "pula" + Pula[gracz[licznik]]);
if (Pula[gracz[licznik]]>0) {
Pula[gracz[licznik]]--;
passb = 15;
}
}
licznik++;
}
}
return Tasowanie(jakob, gracz);
}
}
Stack trace:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 25
at mainpackage.WojnaTasowanie.Tasowanie(WojnaTasowanie.java:51)
at mainpackage.WojnaTasowanie.Tasowanie(WojnaTasowanie.java:76)
at mainpackage.WojnaTasowanie.Tasowanie(WojnaTasowanie.java:76)
at mainpackage.GraWojna.Wojna(GraWojna.java:12)
at mainpackage.Main.main(Main.java:16)
Thank you in advance!