Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » ArrayIndexOutOfBoundsException: 0 » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 2 Beiträge
eulerscheZahl

Ändere die 4. Zeile mal zu int positions_groesse = 2;
Programmier Anfänger ArrayIndexOutOfBoundsException: 0

Meine Frage:
Hallo Zusammen,
in diesem Programm das ich bei einem Youtuber nach geschrieben habe kommt ein ArrayIndexOutOfBoundsException: 0 Fehler bei: setztezufaelligbeuteposition.

Ich habe keine Ahnung wie ich diesen Fehler beheben kann da es im video genauso drinsteht. Bitte um Hilfe


Hier das Programm: (ist mit Processing 3.3.6 geschrieben)

int spielfeld_groesse = 30;
int spielfeld_skalierung = 20;
int maximale_spieler_groesse = 100;
int positions_groesse;
int leeres_feld_groesse = 5;
int spieler_feld_groesse = 20;
int beute_feld_groesse = 20;
float maximale_tick_zeit = 0.1;

int[][] spielfeld;
int[][] spieler_position;
int[] beute_position;

int spieler_groesse;
String richtung;
String letzte_richtung;
float tick_zeit = 0;


void setup(){
size(600, 600);
rectMode(CENTER);
spielfeld = new int[spielfeld_groesse][spielfeld_groesse];
spieler_position = new int[maximale_spieler_groesse][positions_groesse];
beute_position = new int[positions_groesse];

resetGame();
}

void draw(){
background(0);

tick_zeit = tick_zeit + 1/frameRate;
if(tick_zeit > maximale_tick_zeit){
bewegeSpieler();
testeSpielerKollision();
setzteSpielfeldZurueck();
zeichneSpielfigurenAufSpielfeld();
tick_zeit = 0;
}

zeichneSpielfeld();
setzteSpielerEingabe();
}

void setzteSpielfeldZurueck(){
for(int i = 0; i < spielfeld_groesse; i++){
for(int j = 0; j < spielfeld_groesse; j++){
spielfeld[i][j] = 0;
}
}
}


void bewegeSpieler(){
int old_position_x = spieler_position[0][0];
int old_position_y = spieler_position[0][1];

if(richtung.equals("up")){
spieler_position[0][1] = spieler_position[0][1] = 1;
}else if(richtung.equals("left")){

}else if(richtung.equals("down")){

}else if(richtung.equals("right")){

}

}

void zeichneSpielfigurenAufSpielfeld(){
//zeichne Spieler
for(int p = 0; p < maximale_spieler_groesse; p++){
if(spieler_position[p][0] != 0 && spieler_position[p][1] != 0){
spielfeld[spieler_position[p][0]][spieler_position[p][1]] = 1;
}
}

//setzte beute
spielfeld[beute_position[0]][beute_position[1]] = 2;
}

void zeichneSpielfeld(){
for(int i = 1; i < spielfeld_groesse; i++){
for(int j = 1; j < spielfeld_groesse; j++){
if(spielfeld[i][j] == 0){
ellipse(spielfeld_skalierung * i, spielfeld_skalierung * j, leeres_feld_groesse, leeres_feld_groesse);
}
if(spielfeld[i][j] == 1){
ellipse(spielfeld_skalierung * i, spielfeld_skalierung * j, spieler_feld_groesse, spieler_feld_groesse);
}
if(spielfeld[i][j] == 2){
rect(spielfeld_skalierung * i, spielfeld_skalierung * j, beute_feld_groesse, beute_feld_groesse);
}
}
}
}

void setzteZufaelligBeutePosition(){
beute_position[0] = floor(random(1, spielfeld_groesse));
beute_position[1] = floor(random(1, spielfeld_groesse));
}

void setzteSpielerEingabe(){
if(keyPressed){
if(keyCode == UP && letzte_richtung != "down"){
richtung = "up";
}
if(keyCode == DOWN && letzte_richtung != "up"){
richtung = "down";
}
if(keyCode == LEFT && letzte_richtung != "right"){
richtung = "left";
}
if(keyCode == RIGHT && letzte_richtung != "left"){
richtung = "right";
}
}
}

void testeSpielerKollision(){

}

void resetGame(){
setzteZufaelligBeutePosition();

//setzte Spieler
spieler_position[0][0] = spielfeld_groesse / 2;
spieler_position[0][1] = spielfeld_groesse / 2;
for(int p = 1; p < maximale_spieler_groesse; p++){
spieler_position[p][0] = 0;
spieler_position[p][0] = 0;
}
spieler_groesse = 1;

richtung = "up";
letzte_richtung = "up";
}



Meine Ideen:
Hier der Youtube Link vom Video:

https://www.youtube.com/watch?v=WJtiJcsOOg0&index=10&list=PLHlPTbN2USompedW
jDKesFwg31mmmIoeP

Programmier Anfänger hat dieses Bild (verkleinerte Version) angehängt:
Screenshot (1).png