LaSs-kNaTtErN
Cadet 4th Year
- Registriert
- Apr. 2007
- Beiträge
- 115
import java.io.*;
import java.util.*;
public class SpielFeld
{
private int spalten = 0;
private int zeilen = 0;
private int zaehler = 1;
private int[][] FeldSpieler = new int[spalten][zeilen];
//Konstruktor um mit der Default-Spielfeldgröße zu spielen
public SpielFeld()
{
spalten = 7;
zeilen = 6;
}
//Konstruktor um mit einer variablen Spielfeldgröße zu spielen
public SpielFeld(int s, int z)
{
spalten = s;
zeilen = z;
}
//set-Methode zum setzen der Spielsteine für Spieler1 oder Spieler2 und der Reihenfolge des Spielzuges
//int spalte muss die echte Spaltenzahl besitzen, nicht den Index
public boolean set(int spalte, int spieler)
{
boolean spalteVoll;
if (FeldSpieler[spalte-1][zeilen-1] != 0) //oder doch nur zeilen(-1)?
spalteVoll = true;
else
spalteVoll = false;
for(int i = 0; i < zeilen; i++)
{
if (FeldSpieler[spalte-1] == 0)
{
FeldSpieler[spalte-1] = spieler;
FeldSpielZug[spalte-1] = zaehler;
zaehler++;
i = zeilen;
}
}
return spalteVoll;
}
}
Wenn ich nun zu Testversuchen die set-Methode aufrufe
SpielFeld Test = new SpielFeld();
Test.set(2, 2);
erhalte ich diesen Fehler:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at SpielFeld.set(SpielFeld.java:43)
at SpielFeldTest.main(SpielFeldTest.java:22)
Wieso ist das so? auch andere tests, wenn ich z.b. das private von SpielFeld entferne und dann System.out.println(Test.SpielFeld[2][2]) versuche klappt es nicht, was ist falsch? Das Ganze ist für 4 Gewinnt gedacht und verwaltet alles rund um das SpielFeld.
Gruß Alex
import java.util.*;
public class SpielFeld
{
private int spalten = 0;
private int zeilen = 0;
private int zaehler = 1;
private int[][] FeldSpieler = new int[spalten][zeilen];
//Konstruktor um mit der Default-Spielfeldgröße zu spielen
public SpielFeld()
{
spalten = 7;
zeilen = 6;
}
//Konstruktor um mit einer variablen Spielfeldgröße zu spielen
public SpielFeld(int s, int z)
{
spalten = s;
zeilen = z;
}
//set-Methode zum setzen der Spielsteine für Spieler1 oder Spieler2 und der Reihenfolge des Spielzuges
//int spalte muss die echte Spaltenzahl besitzen, nicht den Index
public boolean set(int spalte, int spieler)
{
boolean spalteVoll;
if (FeldSpieler[spalte-1][zeilen-1] != 0) //oder doch nur zeilen(-1)?
spalteVoll = true;
else
spalteVoll = false;
for(int i = 0; i < zeilen; i++)
{
if (FeldSpieler[spalte-1] == 0)
{
FeldSpieler[spalte-1] = spieler;
FeldSpielZug[spalte-1] = zaehler;
zaehler++;
i = zeilen;
}
}
return spalteVoll;
}
}
Wenn ich nun zu Testversuchen die set-Methode aufrufe
SpielFeld Test = new SpielFeld();
Test.set(2, 2);
erhalte ich diesen Fehler:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at SpielFeld.set(SpielFeld.java:43)
at SpielFeldTest.main(SpielFeldTest.java:22)
Wieso ist das so? auch andere tests, wenn ich z.b. das private von SpielFeld entferne und dann System.out.println(Test.SpielFeld[2][2]) versuche klappt es nicht, was ist falsch? Das Ganze ist für 4 Gewinnt gedacht und verwaltet alles rund um das SpielFeld.
Gruß Alex