如何改变二维数组使得我在shuffle之前和之后有不同数量的不同元素?

时间:2018-06-19 02:47:23

标签: java multidimensional-array

以下是我曾经混淆的Fisher-Yates算法,但作为输出,我得到了不同数量的不同类型的对象。 因为我无法根据位置进行交换,所以我交换了对象的类型。

public static String shuffle(Grid grid) {

    Random rnd = new Random();

    for(int i=grid.getGridSize()-1;i>0;i--) {
        for(int j=grid.getGridSize()-1;j>0;j--) {
            int x = rnd.nextInt(i+1);
            int y = rnd.nextInt(j+1);
            CardType temp = grid.getTypeAt(x, y);

            grid.getCardAt(i, j).setType(temp);
            grid.getCardAt(x, y).setType(grid.getTypeAt(i, j));
            if(grid.getCardAt(x, y).isFlipped()^(grid.getCardAt(i,j).isFlipped())) {
                grid.flipCardAt(i, j);   
                grid.flipCardAt(x, y);
            }
        }
    }
}

0 个答案:

没有答案