Java ArrayList错误,Tic Tac Toe非功能性错误

Java ArrayList错误,Tic Tac Toe非功能性错误,java,random,arraylist,seed,Java,Random,Arraylist,Seed,嗨,我一直在尝试为我正在制作的一个小游戏制作我的第一个人工智能,我现在正在编写一个游戏,我需要帮助。它包含一个种子类,因为它接受一个数字作为它返回的ArrayList长度的参数。然后,ArrayList由按顺序随机化的连续数字组成。唯一的问题是,尽管它似乎可以工作,但在某些情况下,计算机将根本没有选择,而是回到用户的位置。从ArrayList到调用它的对象的转换过程中似乎出现了一些问题。以下是到目前为止我在课堂上学到的内容: package ttt; import java.util.Coll

嗨,我一直在尝试为我正在制作的一个小游戏制作我的第一个人工智能,我现在正在编写一个游戏,我需要帮助。它包含一个种子类,因为它接受一个数字作为它返回的ArrayList长度的参数。然后,ArrayList由按顺序随机化的连续数字组成。唯一的问题是,尽管它似乎可以工作,但在某些情况下,计算机将根本没有选择,而是回到用户的位置。从ArrayList到调用它的对象的转换过程中似乎出现了一些问题。以下是到目前为止我在课堂上学到的内容:

package ttt;

import java.util.Collections;
import java.util.ArrayList;

public class Seed
{
    private ArrayList<Integer> seed;
    public Seed(int num)
    {
        seed = new ArrayList<Integer>(num);
        for(int i = 1; i <= num; i++)
            seed.add(i);
        generateSeed();
    }
    public void generateSeed()
    {
        Collections.shuffle(seed);
    }
    public ArrayList<Integer> getSeed()
    {
        return seed;
    }
}
包ttt;
导入java.util.Collections;
导入java.util.ArrayList;
公营种子
{
私有ArrayList种子;
公共种子(int-num)
{
种子=新阵列列表(num);

对于(int i=1;我有没有考虑过一种更优雅的方法?我曾经教过一些学生如何编写tic-tac-toe AI,我们了解到,在你获得理想的游戏体验之前,你所需要做的只是一小部分规则。远没有这么复杂。之所以如此复杂,唯一的原因是我简单地将你从wi输入的任何可能的行都设置成这样我会有一个合适的计数器,比如电脑挡住你的行或者自动完成他们的行。也许有一个更有效的方法,使用更多的逻辑,但我只是选择了安全的路线,这样做。这让我想起了。看看有趣的部分是,这正是我所做的。有趣的是,我还没有看到那个特别的漫画呃,我总是看到他的帖子在网上飘荡。但是不管怎样,有人知道ArrayList导致这个bug的原因吗?
if(difficulty == 2)
        {
            seed.generateSeed();
            ArrayList<Integer> random = seed.getSeed();
            //It is within this for loop and the for loop following it that I believe the bug occurs.
            for(int i = 0; i < random.size(); i++)
            {
                if(random.get(i) == 1)
                {
                    if(set[0][0] == 1 && set[0][1] == 1 && set[0][2] == 0)
                    {
                        x = 0;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 2)
                {
                    if(set[1][0] == 1 && set[1][1] == 1 && set[1][2] == 0)
                    {
                        x = 1;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 3)
                {
                    if(set[2][0] == 1 && set[2][1] == 1 && set[2][2] == 0)
                    {
                        x = 2;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 4)
                {
                    if(set[0][0] == 1 && set[1][0] == 1 && set[2][0] == 0)
                    {
                        x = 2;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 5)
                {
                    if(set[0][1] == 1 && set[1][1] == 1 && set[2][1] == 0)
                    {
                        x = 2;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 6)
                {
                    if(set[0][2] == 1 && set[1][2] == 1 && set[2][2] == 0)
                    {
                        x = 2;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 7)
                {
                    if(set[0][0] == 1 && set[1][1] == 1 && set[2][2] == 0)
                    {
                        x = 2;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 8)
                {
                    if(set[0][2] == 1 && set[1][1] == 1 && set[2][0] == 0)
                    {
                        x = 2;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 9)
                {
                    if(set[0][0] == 0 && set[0][1] == 1 && set[0][2] == 1)
                    {
                        x = 0;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 10)
                {
                    if(set[1][0] == 0 && set[1][1] == 1 && set[1][2] == 1)
                    {
                        x = 1;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 11)
                {
                    if(set[2][0] == 0 && set[2][1] == 1 && set[2][2] == 1)
                    {
                        x = 2;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 12)
                {
                    if(set[0][0] == 0 && set[1][0] == 1 && set[2][0] == 1)
                    {
                        x = 0;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 13)
                {
                    if(set[0][1] == 0 && set[1][1] == 1 && set[2][1] == 1)
                    {
                        x = 0;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 14)
                {
                    if(set[0][2] == 0 && set[1][2] == 1 && set[2][2] == 1)
                    {
                        x = 0;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 15)
                {
                    if(set[0][0] == 0 && set[1][1] == 1 && set[2][2] == 1)
                    {
                        x = 0;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 16)
                {
                    if(set[0][2] == 0 && set[1][1] == 1 && set[2][0] == 1)
                    {
                        x = 0;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 17)
                {
                    if(set[0][0] == 1 && set[0][1] == 0 && set[0][2] == 1)
                    {
                        x = 0;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 18)
                {
                    if(set[1][0] == 1 && set[1][1] == 0 && set[1][2] == 1)
                    {
                        x = 1;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 19)
                {
                    if(set[2][0] == 1 && set[2][1] == 0 && set[2][2] == 1)
                    {
                        x = 2;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 20)
                {
                    if(set[0][0] == 1 && set[1][0] == 0 && set[2][0] == 1)
                    {
                        x = 1;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 21)
                {
                    if(set[0][1] == 1 && set[1][1] == 0 && set[2][1] == 1)
                    {
                        x = 1;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 22)
                {
                    if(set[0][2] == 1 && set[1][2] == 0 && set[2][2] == 1)
                    {
                        x = 1;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 23)
                {
                    if(set[0][0] == 1 && set[1][1] == 0 && set[2][2] == 1)
                    {
                        x = 1;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(i) == 24)
                {
                    if(set[0][2] == 1 && set[1][1] == 0 && set[2][0] == 1)
                    {
                        x = 1;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
            }
            for(int j = 0; j < random.size(); j++)
            {
                if(random.get(j) == 1)
                {
                    if(set[0][0] == 2 && set[0][1] == 2 && set[0][2] == 0)
                    {
                        x = 0;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 2)
                {
                    if(set[1][0] == 2 && set[1][1] == 2 && set[1][2] == 0)
                    {
                        x = 1;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 3)
                {
                    if(set[2][0] == 2 && set[2][1] == 2 && set[2][2] == 0)
                    {
                        x = 2;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 4)
                {
                    if(set[0][0] == 2 && set[1][0] == 2 && set[2][0] == 0)
                    {
                        x = 2;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 5)
                {
                    if(set[0][1] == 2 && set[1][1] == 2 && set[2][1] == 0)
                    {
                        x = 2;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 6)
                {
                    if(set[0][2] == 2 && set[1][2] == 2 && set[2][2] == 0)
                    {
                        x = 2;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 7)
                {
                    if(set[0][0] == 2 && set[1][1] == 2 && set[2][2] == 0)
                    {
                        x = 2;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 8)
                {
                    if(set[0][2] == 2 && set[1][1] == 2 && set[2][0] == 0)
                    {
                        x = 2;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 9)
                {
                    if(set[0][0] == 0 && set[0][1] == 2 && set[0][2] == 2)
                    {
                        x = 0;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 10)
                {
                    if(set[1][0] == 0 && set[1][1] == 2 && set[1][2] == 2)
                    {
                        x = 1;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 11)
                {
                    if(set[2][0] == 0 && set[2][1] == 2 && set[2][2] == 2)
                    {
                        x = 2;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 12)
                {
                    if(set[0][0] == 0 && set[1][0] == 2 && set[2][0] == 2)
                    {
                        x = 0;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 13)
                {
                    if(set[0][1] == 0 && set[1][1] == 2 && set[2][1] == 2)
                    {
                        x = 0;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 14)
                {
                    if(set[0][2] == 0 && set[1][2] == 2 && set[2][2] == 2)
                    {
                        x = 0;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 15)
                {
                    if(set[0][0] == 0 && set[1][1] == 2 && set[2][2] == 2)
                    {
                        x = 0;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 16)
                {
                    if(set[0][2] == 0 && set[1][1] == 2 && set[2][0] == 2)
                    {
                        x = 0;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 17)
                {
                    if(set[0][0] == 2 && set[0][1] == 0 && set[0][2] == 2)
                    {
                        x = 0;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 18)
                {
                    if(set[1][0] == 2 && set[1][1] == 0 && set[1][2] == 2)
                    {
                        x = 1;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 19)
                {
                    if(set[2][0] == 2 && set[2][1] == 0 && set[2][2] == 2)
                    {
                        x = 2;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 20)
                {
                    if(set[0][0] == 2 && set[1][0] == 0 && set[2][0] == 2)
                    {
                        x = 1;
                        y = 0;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 21)
                {
                    if(set[0][1] == 2 && set[1][1] == 0 && set[2][1] == 2)
                    {
                        x = 1;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 22)
                {
                    if(set[0][2] == 2 && set[1][2] == 0 && set[2][2] == 2)
                    {
                        x = 1;
                        y = 2;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 23)
                {
                    if(set[0][0] == 2 && set[1][1] == 0 && set[2][2] == 2)
                    {
                        x = 1;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
                if(random.get(j) == 24)
                {
                    if(set[0][2] == 2 && set[1][1] == 0 && set[2][0] == 2)
                    {
                        x = 1;
                        y = 1;
                        set[x][y] = 2;
                        return new int[] {x, y};
                    }
                }
            }
            if(set[0][0] == 1 && set[0][1] == 0 && set[0][2] == 0)
            {
                x = 0;
                y = g.nextInt(2) + 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[1][0] == 1 && set[1][1] == 0 && set[1][2] == 0)
            {
                x = 1;
                y = g.nextInt(2) + 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[2][0] == 1 && set[2][1] == 0 && set[2][2] == 0)
            {
                x = 2;
                y = g.nextInt(2) + 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 1 && set[1][0] == 0 && set[2][0] == 0)
            {
                x = g.nextInt(2) + 1;
                y = 0;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][1] == 1 && set[1][1] == 0 && set[2][1] == 0)
            {
                x = g.nextInt(2) + 1;
                y = 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][2] == 1 && set[1][2] == 0 && set[2][2] == 0)
            {
                x = g.nextInt(2) + 1;
                y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 1 && set[1][1] == 0 && set[2][2] == 0)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 2;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][2] == 1 && set[1][1] == 0 && set[2][0] == 0)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 2;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][0] == 0 && set[0][1] == 1 && set[0][2] == 0)
            {
                x = 0;
                if(g.nextInt(2) == 1)
                    y = 0;
                else
                    y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[1][0] == 0 && set[1][1] == 1 && set[1][2] == 0)
            {
                x = 1;
                y = g.nextInt(3);
                if(g.nextInt(2) == 1)
                    y = 0;
                else
                    y = 2;
                return new int[] {x, y};
            }
            if(set[2][0] == 0 && set[2][1] == 1 && set[2][2] == 0)
            {
                x = 2;
                if(g.nextInt(2) == 1)
                    y = 0;
                else
                    y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][0] == 1 && set[2][0] == 0)
            {
                if(g.nextInt(2) == 1)
                    x = 0;
                else
                    x = 2;
                y = 0;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][1] == 0 && set[1][1] == 1 && set[2][1] == 0)
            {
                if(g.nextInt(2) == 1)
                    x = 0;
                else
                    x = 2;
                y = 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][2] == 0 && set[1][2] == 1 && set[2][2] == 0)
            {
                if(g.nextInt(2) == 1)
                    x = 0;
                else
                    x = 2;
                y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][1] == 1 && set[2][2] == 0)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 0;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 2;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][2] == 0 && set[1][1] == 1 && set[2][0] == 0)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 0;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 2;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][0] == 0 && set[0][1] == 0 && set[0][2] == 1)
            {
                x = 0;
                y = g.nextInt(2);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[1][0] == 0 && set[1][1] == 0 && set[1][2] == 1)
            {
                x = 1;
                y = g.nextInt(2);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[2][0] == 0 && set[2][1] == 0 && set[2][2] == 1)
            {
                x = 2;
                y = g.nextInt(2);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][0] == 0 && set[2][0] == 1)
            {
                x = g.nextInt(2);
                y = 0;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][1] == 0 && set[1][1] == 0 && set[2][1] == 1)
            {
                x = g.nextInt(2);
                y = 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][2] == 0 && set[1][2] == 0 && set[2][2] == 1)
            {
                x = g.nextInt(2);
                y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][1] == 0 && set[2][2] == 1)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 0;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][2] == 0 && set[1][1] == 0 && set[2][0] == 1)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 0;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][0] == 2 && set[0][1] == 0 && set[0][2] == 0)
            {
                x = 0;
                y = g.nextInt(2) + 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[1][0] == 2 && set[1][1] == 0 && set[1][2] == 0)
            {
                x = 1;
                y = g.nextInt(2) + 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[2][0] == 2 && set[2][1] == 0 && set[2][2] == 0)
            {
                x = 2;
                y = g.nextInt(2) + 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 2 && set[1][0] == 0 && set[2][0] == 0)
            {
                x = g.nextInt(2) + 1;
                y = 0;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][1] == 2 && set[1][1] == 0 && set[2][1] == 0)
            {
                x = g.nextInt(2) + 1;
                y = 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][2] == 2 && set[1][2] == 0 && set[2][2] == 0)
            {
                x = g.nextInt(2) + 1;
                y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 2 && set[1][1] == 0 && set[2][2] == 0)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 2;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][2] == 2 && set[1][1] == 0 && set[2][0] == 0)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 2;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][0] == 0 && set[0][1] == 2 && set[0][2] == 0)
            {
                x = 0;
                if(g.nextInt(2) == 1)
                    y = 0;
                else
                    y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[1][0] == 0 && set[1][1] == 2 && set[1][2] == 0)
            {
                x = 1;
                y = g.nextInt(3);
                if(g.nextInt(2) == 1)
                    y = 0;
                else
                    y = 2;
                return new int[] {x, y};
            }
            if(set[2][0] == 0 && set[2][1] == 2 && set[2][2] == 0)
            {
                x = 2;
                if(g.nextInt(2) == 1)
                    y = 0;
                else
                    y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][0] == 2 && set[2][0] == 0)
            {
                if(g.nextInt(2) == 1)
                    x = 0;
                else
                    x = 2;
                y = 0;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][1] == 0 && set[1][1] == 2 && set[2][1] == 0)
            {
                if(g.nextInt(2) == 1)
                    x = 0;
                else
                    x = 2;
                y = 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][2] == 0 && set[1][2] == 2 && set[2][2] == 0)
            {
                if(g.nextInt(2) == 1)
                    x = 0;
                else
                    x = 2;
                y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][1] == 2 && set[2][2] == 0)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 0;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 2;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][2] == 0 && set[1][1] == 2 && set[2][0] == 0)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 0;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 2;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][0] == 0 && set[0][1] == 0 && set[0][2] == 2)
            {
                x = 0;
                y = g.nextInt(2);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[1][0] == 0 && set[1][1] == 0 && set[1][2] == 2)
            {
                x = 1;
                y = g.nextInt(2);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[2][0] == 0 && set[2][1] == 0 && set[2][2] == 2)
            {
                x = 2;
                y = g.nextInt(2);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][0] == 0 && set[2][0] == 2)
            {
                x = g.nextInt(2);
                y = 0;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][1] == 0 && set[1][1] == 0 && set[2][1] == 2)
            {
                x = g.nextInt(2);
                y = 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][2] == 0 && set[1][2] == 0 && set[2][2] == 2)
            {
                x = g.nextInt(2);
                y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][1] == 0 && set[2][2] == 2)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 0;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][2] == 0 && set[1][1] == 0 && set[2][0] == 2)
            {
                dig = g.nextInt(2);
                if(dig == 0)
                {
                    x = 0;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }

            if(set[0][0] == 0 && set[0][1] == 0 && set[0][2] == 0)
            {
                x = 0;
                y = g.nextInt(3);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[1][0] == 0 && set[1][1] == 0 && set[1][2] == 0)
            {
                x = 1;
                y = g.nextInt(3);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[2][0] == 0 && set[2][1] == 0 && set[2][2] == 0)
            {
                x = 2;
                y = g.nextInt(3);
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][0] == 0 && set[2][0] == 0)
            {
                x = g.nextInt(3);
                y = 0;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][1] == 0 && set[1][1] == 0 && set[2][1] == 0)
            {
                x = g.nextInt(3);
                y = 1;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][2] == 0 && set[1][2] == 0 && set[2][2] == 0)
            {
                x = g.nextInt(3);
                y = 2;
                set[x][y] = 2;
                return new int[] {x, y};
            }
            if(set[0][0] == 0 && set[1][1] == 0 && set[2][2] == 0)
            {
                dig = g.nextInt(3);
                if(dig == 0)
                {
                    x = 0;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 2)
                {
                    x = 2;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            if(set[0][2] == 0 && set[1][1] == 0 && set[2][0] == 0)
            {
                dig = g.nextInt(3);
                if(dig == 0)
                {
                    x = 0;
                    y = 2;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 1)
                {
                    x = 1;
                    y = 1;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
                if(dig == 2)
                {
                    x = 2;
                    y = 0;
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
            while(true && !(checkComplete()))
            {
                x = g.nextInt(3);
                y = g.nextInt(3);
                if(set[x][y] == 0)
                {
                    set[x][y] = 2;
                    return new int[] {x, y};
                }
            }
        }