This site requires JavaScript, please enable it in your browser!
Greenfoot back
coder123
coder123 wrote ...

2019/6/17

I have a StackOverflow Error

1
2
coder123 coder123

2019/6/17

#
Here's my code for the 2 classes the error shows:
import java.util.*;
import greenfoot.*;

/**
 * 
 */
public class win extends Actor
{
    public static int player = 1;
    private final Spaces i = new Spaces();
    private final Spaces2 i2 = new Spaces2();
    private final Spaces3 i3 = new Spaces3();
    private final Spaces4 i4 = new Spaces4();
    private final Spaces5 i5 = new Spaces5();
    private final Spaces6 i6 = new Spaces6();
    private final Spaces7 i7 = new Spaces7();
    private final Spaces8 i8 = new Spaces8();
    private final Spaces9 i9 = new Spaces9();
    /**
     * Act - do whatever the win wants to do. This method is called whenever the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act()
    {
        if (player == 1) {
            if (i.a == 0 && i2.a == 0 && i3.a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i4.a == 0 && i5.a == 0 && i6.a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i7.a == 0 && i8.a == 0 && i9.a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i.a == 0 && i4.a == 0 && i7.a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i2.a == 0 && i5.a == 0 && i8.a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i3.a == 0 && i6.a == 0 && i9.a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i.a == 0 && i5.a == 0 && i9.a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i7.a == 0 && i5.a == 0 && i3.a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
        }
        else if (player == 2) {
            if (i.a == 10 && i2.a == 10 && i3.a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i4.a == 10 && i5.a == 10 && i6.a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i7.a == 10 && i8.a == 10 && i9.a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i.a == 10 && i5.a == 10 && i9.a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i7.a == 10 && i5.a == 10 && i3.a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i.a == 10 && i4.a == 10 && i7.a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i2.a == 10 && i5.a == 10 && i8.a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (i3.a == 10 && i6.a == 10 && i9.a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
        }
    }
}
import java.util.*;
import greenfoot.*;

/**
 * 
 */
public class Spaces extends Actor
{
    public static int a = 1;
    private final win b = new win();
    /**
     * Act - do whatever the Spaces wants to do. This method is called whenever the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act()
    {
        if (b.player == 1 && Greenfoot.mouseClicked(this)) {
            a = 0;
            b.player = 2;
            setImage("circle.png");
        }
        else if (b.player == 2 && Greenfoot.mouseClicked(this)) {
            a = 10;
            b.player = 1;
            setImage("x.png");
        }
    }
}
here's the error: java.lang.StackOverflowError at greenfoot.Actor.getClassImage(Actor.java:676) at greenfoot.Actor.<init>(Actor.java:131) at Spaces.<init>(Spaces.java:7) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10) at Spaces.<init>(Spaces.java:10) at win.<init>(win.java:10)
coder123 coder123

2019/6/17

#
sry it's too long, but can somebody help me?
danpost danpost

2019/6/17

#
You have a recursion issue. The creation of a Spaces object creates a win object and the creation of a win object creates a Spaces object. You can have one create another during its creation; but, the other cannot create one of a type that creates it during its creation. In fact, your win class should not create any other game related worlds unless it is only for the purpose of restarting the game. Remove lines 10 thru 18 in the win class.
coder123 coder123

2019/6/18

#
here's my new code:
import java.util.*;
import greenfoot.*;

/**
 * 
 */
public class win extends Actor
{
    public static int player = 1;
    /**
     * Act - do whatever the win wants to do. This method is called whenever the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act()
    {
        if (player == 1) {
            if (Spaces().a == 0 && Spaces2().a == 0 && Spaces3().a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces4().a == 0 && Spaces5().a == 0 && Spaces6().a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces7().a == 0 && Spaces8().a == 0 && Spaces9().a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces().a == 0 && Spaces4().a == 0 && Spaces7().a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces2().a == 0 && Spaces5().a == 0 && Spaces8().a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces3().a == 0 && Spaces6().a == 0 && Spaces9().a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces7().a == 0 && Spaces5().a == 0 && Spaces3().a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces().a == 0 && Spaces5().a == 0 && Spaces9().a == 0) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
        }
        else if (player == 2) {
            if (Spaces().a == 10 && Spaces2().a == 10 && Spaces3().a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces4().a == 10 && Spaces5().a == 10 && Spaces6().a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces7().a == 10 && Spaces8().a == 10 && Spaces9().a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces().a == 10 && Spaces4().a == 10 && Spaces7().a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces2().a == 10 && Spaces5().a == 10 && Spaces8().a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces3().a == 10 && Spaces6().a == 10 && Spaces9().a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces7().a == 10 && Spaces5().a == 10 && Spaces3().a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
            else if (Spaces().a == 10 && Spaces5().a == 10 && Spaces9().a == 10) {
                getWorld().showText("Player " + player + " wins!", 300, 300);
                Greenfoot.stop();
            }
        }
    }
}
for some reason this code won't compile, and there is no errors in the terminal
danpost danpost

2019/6/18

#
Now that I took a closer look and actually can tell what you are doing, I can tell you that it would be a whole lot easier if you used a 3 by 3 int array in your world to track the state of the world. You can use zero (the default int value) for an unused space, positive one for one player and negative one (or two) for the other. Checking for game over should be a breeze then. But I would use the act method in the world class for that -- not the win object.
coder123 coder123

2019/6/19

#
this is what I did:
import java.util.*;
import greenfoot.*;

/**
 * 
 */
public class MyWorld extends World
{
    private int[] a = { 0, 0, 0,
                        0, 0, 0,
                        0, 0, 0}; 
    /**
     * Constructor for objects of class MyWorld.
     */
    public MyWorld()
    {
        super(600, 600, 1);
        prepare();
    }
    
    public void act() {
        win b = new win();
        if (b.player == 1) {
            if (Greenfoot.mouseClicked(Spaces.class)) {
                a[0] = 1;
            }
            else if (Greenfoot.mouseClicked(Spaces2.class)) {
                a[1] = 1;
            }
            else if (Greenfoot.mouseClicked(Spaces3.class)) {
                a[2] = 1;
            }
            else if (Greenfoot.mouseClicked(Spaces4.class)) {
                a[3] = 1;
            }
            else if (Greenfoot.mouseClicked(Spaces5.class)) {
                a[4] = 1;
            }
            else if (Greenfoot.mouseClicked(Spaces6.class)) {
                a[5] = 1;
            }
            else if (Greenfoot.mouseClicked(Spaces7.class)) {
                a[6] = 1;
            }
            else if (Greenfoot.mouseClicked(Spaces8.class)) {
                a[7] = 1;
            }
            else if (Greenfoot.mouseClicked(Spaces9.class)) {
                a[8] = 1;
            }
            checkWin(b);
        }
        else if (b.player == 2) {
            if (Greenfoot.mouseClicked(Spaces.class)) {
                a[0] = -1;
            }
            else if (Greenfoot.mouseClicked(Spaces2.class)) {
                a[1] = -1;
            }
            else if (Greenfoot.mouseClicked(Spaces3.class)) {
                a[2] = -1;
            }
            else if (Greenfoot.mouseClicked(Spaces4.class)) {
                a[3] = -1;
            }
            else if (Greenfoot.mouseClicked(Spaces5.class)) {
                a[4] = -1;
            }
            else if (Greenfoot.mouseClicked(Spaces6.class)) {
                a[5] = -1;
            }
            else if (Greenfoot.mouseClicked(Spaces7.class)) {
                a[6] = -1;
            }
            else if (Greenfoot.mouseClicked(Spaces8.class)) {
                a[7] = -1;
            }
            else if (Greenfoot.mouseClicked(Spaces9.class)) {
                a[8] = -1;
            }
            checkWin(b);
        }
    }
    
    public void checkWin(win b) {
        if ((a[0] == 1) && (a[1] == 1) && (a[2] == 1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[3] == 1) && (a[4] == 1) && (a[5] == 1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[6] == 1) && (a[7] == 1) && (a[8] == 1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[0] == 1) && (a[3] == 1) && (a[6] == 1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[1] == 1) && (a[4] == 1) && (a[7] == 1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[2] == 1) && (a[5] == 1) && (a[8] == 1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[0] == 1) && (a[4] == 1) && (a[8] == 1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[2] == 1) && (a[4] == 1) && (a[6] == 1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[0] == -1) && (a[1] == -1) && (a[2] == -1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[3] == -1) && (a[4] == -1) && (a[5] == -1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[6] == -1) && (a[7] == -1) && (a[8] == -1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[0] == -1) && (a[3] == -1) && (a[6] == -1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[1] == -1) && (a[4] == -1) && (a[7] == -1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[2] == -1) && (a[5] == -1) && (a[8] == -1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[0] == -1) && (a[4] == -1) && (a[8] == -1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
        else if ((a[2] == -1) && (a[4] == -1) && (a[6] == -1)) {
            showText("Player " + b.player + " wins!", 300, 300);
        }
    }
    /**
     * Prepare the world for the start of the program.
     * That is: create the initial objects and add them to the world.
     */
    private void prepare()
    {
        Spaces spaces =  new  Spaces();
        addObject(spaces, 101, 101);
        Spaces2 spaces2 =  new  Spaces2();
        addObject(spaces2, 298, 100);
        Spaces3 spaces3 =  new  Spaces3();
        addObject(spaces3, 499, 97);
        Spaces4 spaces4 =  new  Spaces4();
        addObject(spaces4, 95, 305);
        Spaces5 spaces5 =  new  Spaces5();
        addObject(spaces5, 301, 301);
        Spaces6 spaces6 =  new  Spaces6();
        addObject(spaces6, 502, 304);
        Spaces7 spaces7 =  new  Spaces7();
        addObject(spaces7, 96, 506);
        Spaces8 spaces8 =  new  Spaces8();
        addObject(spaces8, 301, 503);
        Spaces9 spaces9 =  new  Spaces9();
        addObject(spaces9, 502, 504);
        spaces4.setLocation(98, 298);
    }
}
when I get a 3-in-a-row, it doesn't show that the player won.
danpost danpost

2019/6/19

#
Remove line 1. There is no need to import the java.util package. Line 22 is misplaced. You do not need to create a win object until it is determined that there is a win state. It seems you are trying to do a whole lot for something that could be quite simple. I can understand (maybe) having a Space class -- but 9 of them is going overboard. You can create 9 objects from a single class:
private void prepare()
{
    for (int j=0; j<3; j++) for (int i=0; i<3; i++) addObject(new Space(), 100+i*200, 100+j*200);
}
A Space object only needs to accept one, and only one, click. It can inform the world when it is clicked on. Its location in the world is enough to do the rest:
import greenfoot.*;

public class Space extends Actor
{
    boolean clicked;
    
    public void act()
    {
        if (!clicked && Greenfoot.mouseClicked(this))
        {
            clicked = true;
            ((MyWorld)getWorld()).spaceClicked(this);
        }
    }
}
Then, in your world, with a field for whose turn it is:
private int turn = 1;
you can have something like this:
public void spaceClicked(Actor space)
{
    // filling space
    addObject(turn == 1 ? new X() : new Y(), space.getX(), space.getY());
    // getting arrray indices
    int row = (space.getY()-100)/200;
    int col = (space.getX()-100)/200;
    // logging selection
    a[row][col] = turn;
    // check for win (if absolute value of sum of any row, column or diagonal is 3)
    int[] sums = new int[8]; // 8 ways to win
    // summing up win lines
    for (int i=0; i<3; i++)
    {
        sums[0] += a[0][i];
        sums[1] += a[1][i];
        sums[2] += a[2][i];
        sums[3] += a[i][0];
        sums[4] += a[i][1];
        sums[5] += a[i][2];
        sums[6] += a[i][i];
        sums[7] += a[i][2-i];
    }
    // testing sums
    for (int i=0; i<8; i++)
    {
        if (Math.abs(sums[i]) != 3) continue;
        win b = new win();
        addObject(b, 300, 300);
        Greenfoot.stop();
        return;
    }
    // checking for draw (no zeroes left -- product of all values is not zero)
    int n = 1; // initial running product value
    for (int i=0; i<9; i++) n *= a[i/3][i%3]; // multiplying
    if (n != 0) // draw test
    {
        Greenfoot.stop();
    }
    turn  = -turn; // new turn
}
coder123 coder123

2019/6/19

#
tks I will try that
coder123 coder123

2019/6/19

#
there's an error in line 4, 9, 15-22, and 35
coder123 coder123

2019/6/19

#
it can't find Class X, and for the other lines(all except 4), it says, "array required, but int found" what do I do?
coder123 coder123

2019/6/19

#
how do you make a 3x3 int array????
danpost danpost

2019/6/19

#
I did say:
danpost wrote...
you can have something like this: << Code Omitted >> (spaceClicked method)
coder123 wrote...
how do you make a 3x3 int array????
int[][] a = new int[3][3];
That will fix lines 9, 15-22 and 35.
danpost danpost

2019/6/19

#
I do not know how you are marking the player(s) (or CPU) choices. I presumed you had actors for that. Hence, the new X() and new Y() was used.
coder123 coder123

2019/6/19

#
I wanted my game to be a 2-player game
danpost danpost

2019/6/19

#
coder123 wrote...
I wanted my game to be a 2-player game
No matter -- my last post still holds:
I do not know how you are marking the player(s) (or CPU) choices. I presumed you had actors for that. Hence, the new X() and new Y() was used.
There are more replies on the next page.
1
2