Ich habe hier ein Code für ein 4-Gewinnt aber leider will er kann ich das Programm nicht starten da ich ein bisschen dran "rumgepfuscht" habe...
Hier sind die Fehler. Ich weiß dass das etwas mit der Klasse zu tun hat aber weiß nicht was ich machen soll ;( :
Spiel.java:8:5: error: illegal start of expression
private int[][] board;
^
Spiel.java:9:7: error: illegal start of expression
private boolean red = true;
^
Spiel.java:11:7: error: illegal start of expression
private Test gui;
^
Spiel.java:13:7: error: illegal start of expression
private int[] row = {5, 5, 5 ,5 ,5, 5, 5};
^
Spiel.java:15:7: error: illegal start of expression
private int[] index = {35, 36, 37, 38, 39, 40, 41};
^
Hier sind die Fehler. Ich weiß dass das etwas mit der Klasse zu tun hat aber weiß nicht was ich machen soll ;( :
Spiel.java:8:5: error: illegal start of expression
private int[][] board;
^
Spiel.java:9:7: error: illegal start of expression
private boolean red = true;
^
Spiel.java:11:7: error: illegal start of expression
private Test gui;
^
Spiel.java:13:7: error: illegal start of expression
private int[] row = {5, 5, 5 ,5 ,5, 5, 5};
^
Spiel.java:15:7: error: illegal start of expression
private int[] index = {35, 36, 37, 38, 39, 40, 41};
^
Java:
import java.awt.event.*;
import javax.swing.JOptionPane;
public class Spiel implements ActionListener
{
public static void main(String[] args) {
private int[][] board;
private boolean red = true;
//private boolean green = false;
private Test gui;
// Zeilenindizes werden von 5 bis auf 0 dekrementiert
private int[] row = {5, 5, 5 ,5 ,5, 5, 5};
// nummerische Werte der letzten Felder im Swing-Container
private int[] index = {35, 36, 37, 38, 39, 40, 41};
}
public Spiel(Test gui)
{
this.gui = gui;
board = new int[6][7];
}
public void setField(int i, int j, int y)
{
board[i][j] = y;
}
public void actionPerformed(ActionEvent e)
{
Object button = e.getSource();
for(int i = 0; i < 7; i++)
{
try
{
if(button == gui.getButton(i))
{
if(red)
{
gui.setIcon(index[i], 1);
setField(row[i], i, 1);
red = false; //green = true;
index[i] -= 7;
pruefeHorizontal(i, 1);
pruefeVertikal(row[i], 1);
pruefeDiagonal(1);
row[i]--;
gui.setDisplay("Gruen ist am Zug.");
break;
}
else // (green)
{
gui.setIcon(index[i], 0);
setField(row[i], i, 2);
red = true; //green = false;
index[i] -=7;
pruefeHorizontal(i, 2);
pruefeVertikal(row[i], 2);
pruefeDiagonal(2);
row[i]--;
gui.setDisplay("Rot ist am Zug.");
break;
}
}
}
catch(ArrayIndexOutOfBoundsException ex)
{
gui.setDisplay("Spalte ist voll!");
//ex.printStackTrace();
break;
}
}
}
/* Ueberprueft, ob es horizontale Vierer-Reihen
* von der Farbe f in der Spalte c gibt.
* */
public void pruefeHorizontal(int c, int f)
{
int win = 0;
for(int j = 5; j >= 0; j--)
{
if(j<5)
{
if(board[j][c]==f && board[j+1][c]==f)
win++;
if(win==3)
{
gewonnen(f); clean();
gui.gameOver();
break;
}
}
}
}
/* Ueberprueft, ob es vertikale Vierer-Reihen
* von der Farbe f in der Zeile r gibt.
* */
public void pruefeVertikal(int r, int f)
{
int win = 0;
for(int j = 0; j <= 6; j++)
{
if(j<6)
{
if(board[r][j]==f && board[r][j+1]==f)
win++;
if(win==3)
{
gewonnen(f); clean();
gui.gameOver();
break;
}
}
}
}
/*Ueberprueft alle moglichen Vierer-Diagonalen
* */
public void pruefeDiagonal(int f)
{
int win = 0;
/* uebepruefe alle -potenziellen- Vierer-Diagonalen
von links unten nach rechts oben
*/
for(int i = 0; i < 4; i++)
{
for(int j = 3; j < 6; j++)
{
win = 0;
int tmp = j;
for(int y = i; y < 6; y++)
{
if(tmp>0)
{
if(board[tmp][y]==f && board[tmp-1][y+1]==f)
win++;
if(win==3)
{
gewonnen(f); clean();
gui.gameOver();
break;
}
}
tmp--;
}
}
}
int win2 = 0;
/* uebepruefe alle -potenziellen- Vierer-Diagonalen
von rechts unten nach links oben
*/
for(int i = 6; i > 3; i--)
{
for(int j = 3; j < 6; j++)
{
win2 = 0;
int tmp = j;
for(int y = i; y > 0; y--)
{
if(tmp>0)
{
if(board[tmp][y]==f && board[tmp-1][y-1]==f)
{
win2++;
}
if(win2==3)
{
gewonnen(f); clean();
gui.gameOver();
break;
}
}
tmp--;
}
}
}
}
// Arrays saeubern und wiederherstellen für neues Spiel
public void clean()
{
int nI = 35;
for(int i = 0; i < 7; i++)
{
row[i] = 5;
index[i] = nI; nI++;
for(int j = 0; j < 6; j++)
{
board[j][i] = 0;
}
}
red = true;
gui.setDisplay("Rot beginnt");
}
public void gewonnen(int farbe)
{
if(farbe==1)
JOptionPane.showMessageDialog(null, "Rot hat gewonnen!" );
if(farbe==2)
JOptionPane.showMessageDialog(null, "Gruen hat gewonnen!" );
}
}