0

これは課題のためのもので、順調に進んでいます。4 つの X と 5 つの O のみを追加するように設定する必要があるこの部分を通過できないようです。私はいくつかのオプションを試してきましたが、これまでのところ実際に機能するコードをここにダンプすると思いました。

「三目並べのゲームをシミュレートし、プレイヤーが勝ったかどうかを示すプログラムを作成します。プログラムは次のことを行う必要があります。つま先グリッド

• 次のように、配列の各位置に -1 または +1 を入力します。

• -1 で表される 4 つの「X」

• +1 で表される 5 つの「O」

• グリッドを表示する

• 「X」を使用したプレーヤーが勝ったかどうかを評価して示します。

• 「O」を使用したプレーヤーが勝ったかどうかを評価して示します。

プログラムは、少なくとも次のメソッドを実装して使用する必要があります。

• public static void fillGridWithRandomValues(int[][] grid) o 配列を受け取り、ランダムに選択された -1 と 1 で塗りつぶします

• public static void printGrid(int[][] grid) o 画面にグリッドを表示します

• public static boolean evaluateWinner(int[][] grid, int value) o パラメータ「値」を含む同じ行、同じ列、または同じ対角線に少なくとも 3 つの位置がある場合に true を返します。それ以外の場合は false を返します"

で、実際のコードはこちら。

パッケージ 123456;

/** * * @author 123456 */ public class 123456 {

/**
 * @param args the command line arguments
 */
public static void fillGridWithRandomValues(int[][] grid) {
    for (int row=0; row < grid.length; row++) {
        for (int column=0; column < grid[row].length; column++) {
            grid[row][column] = (int) (((Math.random()*2)*2)-2);
                            if (grid[row][column] == 0) grid[row][column]++;

                    }
    };
}

public static boolean evaluateWinner(int[][] grid, int value) {

        return false;

}

public static void printGrid(int[] row) {
    for (int i : row) {
        String str = null;
        if (i == 1) str = "X";
        else if (i == -1) str = "O";
        else str = null ;
        System.out.print(str + " ");
        System.out.print(" ");
    }
    System.out.println();
    }

public static void main(String[] args) {

    // creating array for the grid

    int[][] grid ;//= { { 1, -1, 1 }, { -1, 1, -1 }, { 1, -1, } };
    grid = new int[3][3];

    fillGridWithRandomValues(grid);

    for(int[] row : grid) {
        printGrid(row);
    }




    }   

}

4

1 に答える 1

0

いいえ、Math.random()予測できない結果をもたらすように特別に設計されています。

于 2013-11-02T03:59:16.747 に答える