gpt4 book ai didi

java - 一个类中的方法与另一类中的方法交互时出现问题

转载 作者:行者123 更新时间:2023-12-01 13:44:48 25 4
gpt4 key购买 nike

我是一名正在学习 AP 计算机科学类(class)的高中生,周末我们被分配了这个项目:

“模拟一个醉酒的人在方形街道网格中徘徊。绘制一个水平10条街道、垂直10条街道的网格。用一个点代表模拟的醉汉,放置在网格的中间开始。让模拟酒鬼随机选择一个方向(东、西、北、南),向选定的方向移动一个方 block ,并画点,迭代 100 次,显示酒鬼走过的距离。(1可能会预期,平均而言,这个人可能不会到达任何地方,因为从长远来看,向不同方向的移动会相互抵消,但事实上,可以以概率 1 表明,这个人最终会移动到任何有限区域之外。”

但是,由于图形不是类(class)的一部分,因此网格是通过 Grid 类中的循环创建的网格来模拟的,代表醉汉的点是 X,例如:

example of grid

X 的默认位置为 (5,5),如上所示。但是,我无法让 X 随机移动。

我的醉汉课

public class Drunkard 
{

int row;

int column;

public Drunkard()
{
row = 5;
column = 5;
}

public int getCol()
{
return column;
}

public int getRow()
{
return row;
}

public void moveRandomly()
{
double directionDeterminer = Math.random();

if (directionDeterminer >= 0 && directionDeterminer <= 0.25)
{
row++;

}
else if (directionDeterminer >= 0.25 && directionDeterminer <= 0.50)
{
row--;

}
else if ( directionDeterminer >= 0.50 && directionDeterminer <= 0.75)
{
column++;

}
else if ( directionDeterminer >= 0.75 && directionDeterminer <= 1.00)
{
column--;

}
}

}

和我的网格类(其中包含用于创建网格的循环):

public class Grid
{

public static final int MAX_NUM_ROWS = 10;

public static final int MAX_NUM_COLUMNS = 10;

public Grid()
{

}

public void draw(Drunkard theDrunk)
{
Drunkard drunk = new Drunkard();
drunk.getRow();
int y = drunk.getCol();

String newRow = "- - - - - - - - - - ";
drunk.moveRandomly();

for (int row = 0; row < MAX_NUM_ROWS - 1; row++)
{

if (row == 4)
{
y = 8;
System.out.print( newRow.substring(0,y) + "X " + newRow.substring(10,20) );
System.out.print("\n");


}

for (int column = 0; column < MAX_NUM_COLUMNS ; column++)
{
System.out.print("- ");
}
System.out.print("\n");
}
}
}

moveRandomly() 方法应该增加或减少行或列,以便 X 的位置改变北、南、东或西。但是,我不确定如何让 moveRandomly() (行和列)中的变量对 Grid 类中创建的网格产生任何影响。有谁知道如何使变量对网格产生影响?请记住,我是一名初级程序员,所以我有循环和 if 语句的基本知识,而不是数组或图形。如有任何意见,我们将不胜感激。

最佳答案

它看起来不错,我想你可能只是想要在绘图中这样的东西:

for(int row = 0; row < MAX_NUM_ROWS - 1; row ++)
{
for(int column = 0; column < MAX_NUM_COLUMNS - 1; column ++)
{
if((row == theDrunk.getRow()) && (column == theDrunk.getCol()))
System.out.print("X");
else
System.out.print("-");
}
System.out.println();
}

这也可以通过进行一些修改的子字符串来完成

关于java - 一个类中的方法与另一类中的方法交互时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com