gpt4 book ai didi

java - 如何在网格系统中导航芭比娃娃?

转载 作者:行者123 更新时间:2023-12-01 10:37:04 34 4
gpt4 key购买 nike

我正在尝试解决一个有趣的问题,即在网格系统内导航芭比娃娃。最初,芭比处于 [0,0] 位置,即 X 轴和 Y 轴的交点。芭比有 3 种移动操作,“F”表示向前,“R”表示右转(90 度),“L”表示左转(90 度)。比如说,如果我传递“FF”的方向字符串,则位置应该是[0,2]。我解决了问题,代码的当前状态如下,

public static void barbiePosition(String str ){

if( str == null || str.length() == 0)
return;

int [] initial = {0,0};

boolean xPos = false, xNeg = false, yPos = true, yNeg = false;

char[] ch = str.toCharArray();

for( char c: ch){

// the initial postion of the robot is towards the positive Y axis

if(c == 'L'){

if(xPos){

xPos = false;
yPos = true;
}

else if ( xNeg){


xNeg = false;
yNeg = true;
}

else if(yPos){

xNeg = true;
yPos = false;

}

else if (yNeg){

yNeg = false;
xPos = true;
}
}

else if ( c == 'R'){

if(xPos){

xPos = false;
yNeg = true;
}

else if ( xNeg){

yPos = true;
xNeg = false;
}

else if(yPos){

yPos = false;
xPos = true;
}

else if (yNeg){

yNeg = false;
xNeg = true;
}

}

else if (c == 'F'){

if(xNeg){

initial[0] -= 1;
}

else if (xPos){

initial[0] += 1;
}

else if (yNeg){

initial[1] -=1;
}

else if( yPos){

initial[1] += 1;
}

}
}

System.out.println(Arrays.toString(initial));
}

问题是我只是不知道解决方案,因为它感觉很丑陋。有没有更好的办法设计算法?

最佳答案

在您的应用程序中,“前进”的含义是前一步的函数。前进只是意味着您重复上一步。

如果向前是你的第一步,你需要选择一个约定,比如“芭比最初向右移动”。

关于java - 如何在网格系统中导航芭比娃娃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34624240/

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