我正在尝试创建一个二维坐标数组,每个位置的随机值介于1和4之间。我目前无法初始化值。这是我目前的方法代码:
public void createMap(){
for (int i = 1; i < 20; i ++){
for (int j = 1 ; j < 20; j ++) {
coord[i][j] = setCoordinates(random.nextInt(4) + 1, random.nextInt(4) + 1);
}
}
System.out.println(getCoord());
}
和这个方法:
public Coordinates setCoordinates (int row, int column){
this.row = row;
this.column = column;
return coord[row][column];
}
和坐标类:
public class Coordinates {
int row;
int column;
public void setColumn(int column){
this.column = column;
}
public void setRow(int row){
this.row = row;
}
public int getRow(){
return row;
}
public int getColumn(){
return column;
}
}
控制台中的结果始终为null
。
如何更改代码以实际初始化数组中的值?
最终目标是为2D游戏创建坐标网格。如果我试图在GUI GridPane上使用它,例如返回类型,我应该记住哪些具体内容?如果需要更多信息,请告诉我。在此先感谢您的帮助。
答案 0 :(得分:0)
public Coordinates setCoordinates (int row, int column){
Coordinates c = new Coordinates();
c.setRow(row);
c.setColumn(column);
return c;
}
在这种情况下,coord应为Coordinates[][] coord = new Coordinates[x][y];
答案 1 :(得分:0)
我无法从你的解释中获得太多帮助,但我向你展示了两个完整的例子,其中包括Coordinates类和没有:
示例1,使用setCoordinate函数返回Coordinates对象:
class InputFileTest(unites.TestCase):
def test_verify_file_existance(self):
try:
file_name = 'Test.csv'
file_path = '../../Data/VandV/Input_Reader/'
verify_file_existance(file_path, file_name)
except Exception as e:
print("\n\aError. Unable to locate File!\nError: {}").format(str(e))
try:
exit(0)
except:
sys.exit(1)
如果你想要你可以玩getCoord()并通过知道[0]是行而返回坐标数组,[1]就是这样的列:
package com.company;
import java.io.Console;
import java.util.concurrent.ThreadLocalRandom;
public class Main {
public static void main(String[] args) {
// write your code here
Coordinates[] coord = new Coordinates[20];
createMap();
}
public static void createMap(){
Coordinates[] coord = new Coordinates[20];
for(int i = 0; i < 20; i ++){
coord[i] = setCoordinates(ThreadLocalRandom.current().nextInt(0, 99) + 1, ThreadLocalRandom.current().nextInt(0, 99) + 1);
}
for(int i = 0; i < 20; i ++){
coord[i].getCoord();
}
}
public static Coordinates setCoordinates (int row, int column){
Coordinates c = new Coordinates();
c.setRow(row);
c.setColumn(column);
return c;
}
public static class Coordinates {
int row;
int column;
public Coordinates(){
//constructor
}
public void setColumn(int column){
this.column = column;
}
public void setRow(int row){
this.row = row;
}
public int getRow(){
return row;
}
public int getColumn(){
return column;
}
public void getCoord(){
//just return and print the coordinates
System.out.println("ROW: " + this.getRow() + " COL: " + this.getColumn());
//change void to return and return value if you like :)
}
}
}
然后你可以像这样打印
public int[] getCoord()
{
int coords[] = new int[2];
coords[0] = this.getRow();
coords[1] = this.getColumn();
return coords;
}
和示例2,没有返回坐标
for(int i = 0; i < 20; i ++){
int coords[] = coord[i].getCoord();
System.out.println(coords[0] + " - " + coords[1]);
}