import java.awt.*;
import java.io.Serializable;
import javax.swing.*;
/**
*
* @author
*/
class Spelbord extends JPanel implements Serializable {
[COLOR="Red"] int[][] schijven;[/COLOR]
private int j, i, dropKolom, huidigepos, roodaantalrechts, roodaantallinks, geelaantalrechts, geelaantallinks;
private boolean beurt;
private int[] ypos;
[COLOR="Red"] private int welkeKleur;[/COLOR]
private int winnaar;
private boolean aandebeurt = false;
[COLOR="Red"] private static final int LEEG = 0;
private static final int ROOD = 1;
private static final int GEEL = 2;[/COLOR]
public Spelbord() {
[COLOR="Red"] schijven = new int[7][6];[/COLOR]
for (int i = 0; i <= 6; i++) {
for (int j = 0; j <= 5; j++) {
schijven[i][j] = [COLOR="Red"]LEEG[/COLOR];
}
}
ypos = new int[7];
for (int k = 0; k <= 6; k++) {
ypos[k] = 5;
}
}
public void setSpel([COLOR="Red"]int[][] schijven[/COLOR]) {
this.schijven = schijven;
repaint();
}
public void herbegin() {
for (int j = 0; j <= 6; j++) {
for (int i = 0; i <= 5; i++) {
schijven[j][i] = [COLOR="Red"]LEEG[/COLOR];
}
}
for (int i = 0; i <= 6; i++) {
ypos[i] = 5;
}
repaint();
roodaantalrechts = 0;
roodaantallinks = 0;
geelaantalrechts = 0;
geelaantallinks = 0;
winnaar = 0;
aandebeurt = false;
}
public boolean getBeurt() {
return aandebeurt;
}
public void setPion(int kolom) {
dropKolom = kolom;
huidigepos = ypos[kolom];
if (huidigepos >= 0) {
aandebeurt = !aandebeurt;
if (schijven[kolom][ypos[kolom]] == [COLOR="Red"]LEEG[/COLOR]) {
if (aandebeurt) {
schijven[kolom][ypos[kolom]] = [COLOR="Red"]GEEL[/COLOR];
ypos[kolom] = huidigepos - 1;
} else {
schijven[kolom][ypos[kolom]] = [COLOR="Red"]ROOD[/COLOR];
ypos[kolom] = huidigepos - 1;
}
} else {
ypos[kolom] = huidigepos - 1;
}
repaint();
//diagonaal controleren op vier op een rij
// met rechts en links worden de tegenovergestelde diagonalen bedoeld
welkeKleur = [COLOR="Red"]GEEL[/COLOR];
if ((schijven[dropKolom][huidigepos] == [COLOR="Red"]ROOD[/COLOR])) {
roodaantalrechts = 1;
roodaantallinks = 1;
geelaantalrechts = 0;
geelaantallinks = 0;
} else {
roodaantalrechts = 0;
roodaantallinks = 0;
geelaantalrechts = 1;
geelaantallinks = 1;
}
for (int i = 0; i <= 1; i++) {
for (int j = 1; j <= 4; j++) {
if ((dropKolom + j <= 6) && (huidigepos + j <= 5)) {
if ((schijven[dropKolom + j][huidigepos + j] == welkeKleur)) {
if (welkeKleur == [COLOR="Red"]ROOD[/COLOR]) {
roodaantalrechts = roodaantalrechts + 1;
} else {
geelaantalrechts = geelaantalrechts + 1;
}
}
}
if ((dropKolom - j >= 0) && (huidigepos + j <= 5)) {
if ((schijven[dropKolom - j][huidigepos + j] == welkeKleur)) {
if (welkeKleur == [COLOR="Red"]ROOD[/COLOR]) {
roodaantallinks = roodaantallinks + 1;
} else {
geelaantallinks = geelaantallinks + 1;
}
}
}
if ((dropKolom + j <= 6) && (huidigepos - j >= 0)) {
if ((schijven[dropKolom + j][huidigepos - j] == welkeKleur)) {
if (welkeKleur == [COLOR="Red"]ROOD[/COLOR]) {
roodaantallinks = roodaantallinks + 1;
} else {
geelaantallinks = geelaantallinks + 1;
}
}
}
if ((dropKolom - j >= 0) && (huidigepos - j >= 0)) {
if ((schijven[dropKolom - j][huidigepos - j] == welkeKleur)) {
if (welkeKleur == [COLOR="Red"]ROOD[/COLOR]) {
roodaantalrechts = roodaantalrechts + 1;
} else {
geelaantalrechts = geelaantalrechts + 1;
}
}
}
}
welkeKleur = [COLOR="Red"]ROOD[/COLOR];
}
//System.out.println(schijven[1][3]);
// System.out.println(roodaantalrechts);
// System.out.println(geelaantalrechts);
// System.out.println(geelaantallinks);
if ((roodaantallinks >= 4) || roodaantalrechts >= 4) {
winnaar = [COLOR="Red"]ROOD[/COLOR];
} else if (geelaantallinks >= 4 || geelaantalrechts >= 4) {
winnaar = [COLOR="Red"]GEEL[/COLOR];
}
if ((schijven[dropKolom][huidigepos] == [COLOR="Red"]ROOD[/COLOR])) {
roodaantalrechts = 1;
roodaantallinks = 1;
geelaantalrechts = 0;
geelaantallinks = 0;
} else {
roodaantalrechts = 0;
roodaantallinks = 0;
geelaantalrechts = 1;
geelaantallinks = 1;
}
//horizontaal
welkeKleur = [COLOR="Red"]GEEL[/COLOR];
for (int i = 0; i <= 1; i++) {
for (int j = 1; j <= 3; j++) {
if ((schijven[dropKolom][huidigepos] == welkeKleur)) {
if ((dropKolom + j <= 6)) {
if ((schijven[dropKolom + j][huidigepos] == welkeKleur)) {
if (welkeKleur == [COLOR="Red"]ROOD[/COLOR]) {
roodaantalrechts = roodaantalrechts + 1;
} else {
geelaantalrechts = geelaantalrechts + 1;
}
}
}
}
if ((dropKolom - j >= 0)) {
if ((schijven[dropKolom - j][huidigepos] == welkeKleur)) {
if (welkeKleur == [COLOR="Red"]ROOD[/COLOR]) {
roodaantallinks = roodaantallinks + 1;
} else {
geelaantallinks = geelaantallinks + 1;
}
}
}
}
welkeKleur = [COLOR="Red"]ROOD[/COLOR];
}
if ((roodaantallinks >= 4) || roodaantalrechts >= 4) {
winnaar = [COLOR="Red"]ROOD[/COLOR];
} else if (geelaantallinks >= 4 || geelaantalrechts >= 4) {
winnaar = [COLOR="Red"]GEEL[/COLOR];
}
if ((schijven[dropKolom][huidigepos] == [COLOR="Red"]ROOD[/COLOR])) {
roodaantalrechts = 1;
roodaantallinks = 1;
geelaantalrechts = 0;
geelaantallinks = 0;
} else {
roodaantalrechts = 0;
roodaantallinks = 0;
geelaantalrechts = 1;
geelaantallinks = 1;
}
//verticaal
welkeKleur = [COLOR="Red"]GEEL[/COLOR];
for (int i = 0; i <= 1; i++) {
for (int j = 1; j <= 3; j++) {
if ((schijven[dropKolom][huidigepos] == welkeKleur)) {
if ((huidigepos + j <= 5)) {
if ((schijven[dropKolom][huidigepos + j] == welkeKleur)) {
if (welkeKleur == [COLOR="Red"]ROOD[/COLOR]) {
roodaantalrechts = roodaantalrechts + 1;
} else {
geelaantalrechts = geelaantalrechts + 1;
}
}
}
}
if ((huidigepos - j >= 0)) {
if ((schijven[dropKolom][huidigepos - j] == welkeKleur)) {
if (welkeKleur == [COLOR="Red"]ROOD[/COLOR]) {
roodaantalrechts = roodaantalrechts + 1;
} else {
geelaantalrechts = geelaantalrechts + 1;
}
}
}
}
welkeKleur = [COLOR="Red"]ROOD[/COLOR];
}
if ((roodaantallinks >= 4) || roodaantalrechts >= 4) {
winnaar = [COLOR="Red"]ROOD[/COLOR];
} else if (geelaantallinks >= 4 || geelaantalrechts >= 4) {
winnaar = [COLOR="Red"]GEEL[/COLOR];
}
}
}
public int getWinnaar() {
return winnaar;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillRect(0, 0, 290, 260);
for (int j = 0; j <= 6; j++) {
for (int i = 0; i <= 5; i++) {
if (schijven[j][i] == [COLOR="Red"]LEEG[/COLOR]) {
g.setColor(Color.WHITE);
g.fillOval(10 + (j * 40), 10 + (i * 40), 30, 30);
System.out.println(schijven[j][i]);
} else if (schijven[j][i] == [COLOR="Red"]GEEL[/COLOR]) {
g.setColor(Color.YELLOW);
g.fillOval(10 + (j * 40), 10 + (i * 40), 30, 30);
} else if (schijven[j][i] == [COLOR="Red"]ROOD[/COLOR]) {
g.setColor(Color.RED);
g.fillOval(10 + (j * 40), 10 + (i * 40), 30, 30);
}
}
}
}
}