Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 网格世界实验室的困难_Java - Fatal编程技术网

Java 网格世界实验室的困难

Java 网格世界实验室的困难,java,Java,今天,我基本上是在尝试创建一些JAVA代码,如果某个参与者是开放的,则将其移动到网格上的随机点。这就是我目前所拥有的,但我有几个问题。我对如何检查随机点是否打开感到困惑。我曾经 if (null == E get(Location loc)) 但它不起作用,我有四个错误。有人能解释一下吗?谢谢 编辑:更正错误后,我当前遇到的困难部分是while循环。我希望此循环一直运行,直到参与者移动到随机空间。我目前正在尝试使用 while (place = getLocation()); 基本上,我试图

今天,我基本上是在尝试创建一些JAVA代码,如果某个参与者是开放的,则将其移动到网格上的随机点。这就是我目前所拥有的,但我有几个问题。我对如何检查随机点是否打开感到困惑。我曾经

if (null == E get(Location loc))
但它不起作用,我有四个错误。有人能解释一下吗?谢谢

编辑:更正错误后,我当前遇到的困难部分是while循环。我希望此循环一直运行,直到参与者移动到随机空间。我目前正在尝试使用

while (place = getLocation());
基本上,我试图让它运行,而它开始的地方是它现在所在的地方。不过我还是有一些错误

编辑:编辑代码后,我现在只收到2条错误消息。基本上我不明白为什么我要买这些,有人能帮我吗

 F:\Lab III Car and Teleporter\Teleporter Project\TeleporterActor.java:42: error: cannot find symbol
                if (null == get(loc))
                            ^
      symbol:   method get(Location)
      location: class TeleporterActor
    F:\Lab III Car and Teleporter\Teleporter Project\TeleporterActor.java:46: error: incompatible types
            while (place = getLocation());
                         ^
      required: boolean
      found:    Location
    2 errors



public void act()
    {
        Location place = getLocation();
        Grid<Actor> gr = getGrid();
        int cols = gr.getNumRows();
        int rows = gr.getNumCols();
        do
        {
            Location loc = new Location(Math.random() * rows - 1, Math.random() * cols - 1);
            if (null == get(loc))
                moveTo(loc);

        }
        while (place = getLocation());
F:\Lab III汽车和运输机\运输机项目\运输机。java:42:错误:找不到符号
if(null==get(loc))
^
符号:方法get(位置)
位置:类传送器
F:\Lab III Car and Teleporter\Teleporter Project\TeleporterActor.java:46:错误:类型不兼容
while(place=getLocation());
^
必填项:布尔值
发现:位置
2个错误
公共无效法
{
Location-place=getLocation();
Grid gr=getGrid();
int cols=gr.getNumRows();
int rows=gr.getNumCols();
做
{
Location loc=新位置(Math.random()*行-1,Math.random()*列-1);
if(null==get(loc))
移动到(loc);
}
while(place=getLocation());

这是不正确的语法。您需要使用“新建”来创建新对象

Location loc=新位置(Math.random(rows)-1,Math.random(cols)-1);

while()
子句中还需要一个条件。while什么

最后,您的语法在if检查中处于禁用状态:


if(null==E get(Location loc))
-您试图做什么?您创建了一个新位置,那么它怎么可能是null呢?

您试图使用方法的定义来调用它。如果一个方法被定义为

public int doit(double d) { ...
那么你会像这样使用它

int result = doit(12.32);
所以,如果你愿意写作,就申请你的

if (null == get(loc))
假设get(loc)为空时返回空值

创建您的位置(除非您有一个静态方法位置,否则您可能对此也有问题

Location loc = new Location(Math.random(rows) - 1, Math.random(cols) - 1);

关于新的部分,你是对的。谢谢。while代码是我的另一个问题。我正在尝试使这个循环继续,直到没有空间为止,但我认为这将导致一个永无止境的循环,除非我知道一种特定的方式。对于最后一部分,我正在尝试检查位置是否打开,否则我的演员无法移动到那里。好的,我会落实你说的。