我正在做这份工作,遇到了一些困难,在我继续工作之前,我需要解决这个问题。
我正在构建一个程序,允许用户声明一个板的大小,取这个板的大小,并填充一个由'O's组成的正方形。最终,这个程序将被重新操作,允许用户输入x和y坐标,并在此时出现一个x。这只是作业的第一部分,然后我才能继续操作最终的结果--我已经输入了输入,我相信我已经计算好了数组,它本身就能保证一个正方形,
我被困的地方是把O印在正方形上。
例如,用户输入一个5的板大小系统应该打印出来。
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO 我试过检查我的课本和谷歌之类的东西,但没有找到可行的方法。
这是我的密码
import java.util.Scanner;
import java.util.*;
import java.io.*;
public class Board {
@SuppressWarnings("empty-statement")
public static void main(String[] args) throws IOException
{
// declares brdsz for board size total, n for input, xco and yco for later date
int brdsz = 0;
int n = 0;
int xco = 0;
int yco = 0;
int x = 0;
System.out.println("The BOARD =version 1.00= (enter -1 to quit)");
System.out.println("===========================================");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please enter the side length of the board:");
n = Integer.parseInt(br.readLine());
brdsz = n * n;
int[] coodArray = new int[brdsz];
Arrays.fill(coodArray, 'O');
System.out.println("Creating " + n + " X " + n + " board...");
System.out.print("Please enter the x-coordinate: ");
xco = Integer.parseInt(br.readLine());
System.out.print("Please enter the y-coordinate: ");
yco = Integer.parseInt(br.readLine());
}
}赋值指出,这必须使用一维数组复制2d板。
到目前为止,我正在尝试打印基本输出,稍后我将输入我的if语句作为附加条件。
这是示例输出
板=版本1.00= (输入-1退出)
========================================
请输入板的边长:5输入
创建5x5板..。
好了。
请输入x-坐标:3输入
请输入y-坐标:2输入
标记位置(3,2).
奥多欧
奥克索
奥多欧
奥多欧
奥多欧
========================================
请输入x-坐标:4输入
请输入y-坐标:1输入
标记位置(4,1).
OOOXO
奥克索
奥多欧
奥多欧
奥多欧
========================================
请输入x-坐标:3输入
请输入y-坐标:2输入
位置(3,2)已经标记.
OOOXO
奥克索
奥多欧
奥多欧
奥多欧
========================================
本质上,我想做的是,如果你输入一个5的边长,它会写一个25长的数组(5*5)填充字母O。
示例数组值0-4在第1行,5-9在第2行,等等.
发布于 2014-11-30 02:22:12
你需要一个二维数组
例如,,假设x = new int[3][4]、x[0]、x[1]和x[2]是一维数组,每个数组都包含四个元素,如图x.length is 3所示,x[0].length、x[1].length和x[2].length都是4。

如何遍历和不使用2D数组,您可以在蓝图中遵循以下示例

发布于 2014-11-30 04:17:49
2D数组并不是完全必要的(我没有经常使用它们),但是与保持一维数组相比,它们是有益的。
对于使用一维数组,它的工作方式是这样的(假设用户输入5表示板的大小)。你需要跟上尺寸(或宽度和高度)
int[] myArray = new int[size * size]; // or if specified, it can be new int[width * height]然后,要想找到一种方法来达到目的,就是这样做:
int x = 3;
int y = 4;
int point = myArray[x + y * width];myArray[x + y * width]将给出数组中所提供的x和y的点,而左上角是(0,0):
[ O O O O O O O O O O O O O O O O O O O O O O O X O ]
O O O O O
O O O O O
O O O O O
O O O O O
O O O X O那么,如果是x = 2 & y = 0,我们将拥有:
[ O O X O O O O O O O O O O O O O O O O O O O O O O ]
O O X O O
O O O O O
O O O O O
O O O O O
O O O O O这是因为数组根据宽度循环。因此,如果x为5,y为0,则如下所示:
[ O O O O O X O O O O O O O O O O O O O O O O O O O ]
O O O O O
X O O O O
O O O O O
O O O O O
O O O O Ohttps://stackoverflow.com/questions/27209271
复制相似问题