J
jolly
Gast
hi. ich hab ein kleines problem mit meinem programm.
ich programmiere ein tic tac toe spiel und zwar nicht im format 3*3 felder, sondern n*n.
ich baue das feld mit meinem konstruktor auf und übergebe ihm "anzahlFelder", womit er dann ein feld in größe anzahlFelder*anzahlFelder aufbaut. Das funktioniert auch reibungslos.... ich habe nämlich herausbekommen das er "anzahlFelder" nicht übernimmt. Aber warum nicht??? alle methoden sind in der TTTs classe und auch wenn ich anzahlFelder nicht private mache, klappt es nicht (ist ja auch logisch...). sieht jemand mehr als ich oder bin ich einfach nur blind?
thx für die hilfe.
mein konstruktor:
mein actionListener:
ich programmiere ein tic tac toe spiel und zwar nicht im format 3*3 felder, sondern n*n.
Code:
public class TTTs extends JFrame implements ActionListener
{
private int anzahlFelder;
JButton[][] felder;
...
ich baue das feld mit meinem konstruktor auf und übergebe ihm "anzahlFelder", womit er dann ein feld in größe anzahlFelder*anzahlFelder aufbaut. Das funktioniert auch reibungslos.... ich habe nämlich herausbekommen das er "anzahlFelder" nicht übernimmt. Aber warum nicht??? alle methoden sind in der TTTs classe und auch wenn ich anzahlFelder nicht private mache, klappt es nicht (ist ja auch logisch...). sieht jemand mehr als ich oder bin ich einfach nur blind?
thx für die hilfe.
mein konstruktor:
Code:
public TTTs(int anzahlFelder)
{
beendet = false;
if(anzahlFelder < 3)
{
spielAnzeige.setText("Feld wurde auf 3 erhöht!");
anzahlFelder = 3;
}
felder = new JButton[anzahlFelder][anzahlFelder];
spielAnzeige.setText("Spiel läuft");
JPanel feld = new JPanel();
feld.setLayout(new GridLayout(anzahlFelder, anzahlFelder));
for (int x = 0; x < anzahlFelder; ++x)
for(int y = 0; y < anzahlFelder; ++y)
{
felder[x][y] = new JButton();
felder[x][y].setLabel("-");
felder[x][y].setActionCommand(x + "" + y);
felder[x][y].addActionListener(this);
felder[x][y].setPreferredSize(new java.awt.Dimension(45,45));
feld.add(felder[x][y]);
}
getContentPane().setLayout(new BorderLayout());
getContentPane().add(feld, BorderLayout.NORTH);
getContentPane().add(spielAnzeige, BorderLayout.SOUTH);
addWindowListener(new MyWindowAdapter());
pack();
}
mein actionListener:
Code:
public void actionPerformed(ActionEvent e)
{
Reader f;
int a,b,c;
String s = "" + e.getActionCommand();
//System.out.println(s);
System.out.println(anzahlFelder);
try
{
f = new StringReader(s);
a = (f.read() - '0');
b = (f.read() - '0');
if(!beendet)
if(spieler1)
{
//System.out.print(a +" " + b);
c = zug("X",a,b);
//System.out.println(c);
//System.out.println(anzahlFelder);
if(c == -1)
{
System.out.println("Das Feld ist bereits belegt1");
}
else if(c == anzahlFelder)
{
spielAnzeige.setText("Spieler 1 gewonnen");
//beendet = true;
}
else
{
spieler1 = false;
if(voll())
spielAnzeige.setText("unentschieden1");
}
}
else
{
c = zug("O",a,b);
if(c == -1) {
System.out.println("Das Feld ist bereits belegt2");
}else if(c == anzahlFelder){
spielAnzeige.setText("Spieler 2 gewonnen");
//beendet = true;
}else {
spieler1 = true;
if(voll())
spielAnzeige.setText("unentschieden2");
}
}
f.close();
}
catch(Exception ex)
{
System.out.println(ex);
}
}