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!" );
}
}