期待使用Java创建随机数组

时间:2017-07-05 20:35:02

标签: java arrays random

我正在构建一个用户定义的数组作为游戏板。字符使用“O”和“。”必须随机化,“O”必须出现不止一次。

这就是我到目前为止所做的。

import java.util.Scanner;


public class PacMan {

    public static void main(String[] args) 
    {


        Scanner input = new Scanner(System.in);
        System.out.println("Input total rows:");
        int row = input.nextInt();
        System.out.println("Input total columns:");
        int column = input.nextInt();



        boolean[][] cookies = new boolean[row+2][column+2];
        for (int i = 1; i <= row; i++)
            for (int j = 1; j <= column; j++);
                cookies [row][column] = (Math.random() < 100);

        // print game
        for (int i = 1; i <= row; i++) 
        {
            for (int j = 1; j <= column; j++)
                if (cookies[i][j]) System.out.print(" O ");
                else             System.out.print(". ");
            System.out.println();
        }
    }
}

例如,输出产生一个5 x 5网格,但“O”只出现一次,位于网格的右下角。

协助随机化“O”和“。”并且在整个电路板上随机出现“O”,用户通过扫描仪输入初始化。

这是更新的代码,它产生我正在寻找并且是用户定义的输出。

import java.util.*;
public class PacManTest
{
    public static void main(String[] args)
    {
        char O;
        Scanner input = new Scanner(System.in);
        System.out.println("Input total rows:");
        int row = input.nextInt();
        System.out.println("Input total columns:");
        int column = input.nextInt();

        char board[][] = new char[row][column];

        for(int x = 0; x < board.length; x++)
        {
            for(int i = 0; i < board.length; i++)
            {
                double random = Math.random();
                if(random >.01 && random <=.10)
                {
                    board[x][i] = 'O';
                }

                else {
                    board[x][i] = '.';
                }
                System.out.print(board[x][i] + " ");
            }
            System.out.println("");
        }
    }
}

1 个答案:

答案 0 :(得分:2)

主要问题是第一个循环中的拼写错误:

cookies [row][column] = (Math.random() < 100);

应该是

cookies [i][j] = (Math.random() < 100);

其次,Math.random()返回大于或等于0.0且小于1.0 (doc)的值。所以,(Math.random() < 100);永远都是真的。如果你想要一个O或50%的几率。使用方法:

cookies[i][j] = Math.random() < 0.5;

另外,不确定使用起始索引1的动机是什么,但数组索引从0开始。