gpt4 book ai didi

基于Java的图标移动

转载 作者:行者123 更新时间:2023-12-02 07:42:18 24 4
gpt4 key购买 nike

我有以下代码,它在 java 应用程序屏幕中围绕框的周边移动图标,首先将屏幕向上移动 19 次,然后向右旋转,直到它回到原始起始位置之前的步骤 -

public class MyClass {
public static void moveNTimes(MyObject main, int numberOfMoves) {
for(int i = 0; i < numberOfMoves; i++) {
main.move();

}
}
public static void main(String[] args) {

MyObject main = new MyObject();


for (int i = 19; i >=0; i--){
moveNTimes(main, i);
main.turnRight();

i = i + 1;


}
}
}

我的问题是,当它到达盒子周边的末端时,我需要它变成下一行,其中有 18 个位置可以围绕下一个周边移动,然后是 17 个位置,等等,直到图标完成屏幕中心。

有没有办法对代码应用计数,以便它知道何时提取原始数字集之一?我已经成功地做到了这一点,只需重复代码,每次将整数手动设置少一。现在,图标一旦完成第一个周长就会停止。

最佳答案

您可以创建一个将移动次数作为参数的方法:

public void moveNTimes(YourObject main, int numberOfMoves) {
for(int i = 0; i < numberOfMoves; i++) {
main.move();
}
}

并根据需要多次调用该方法,而无需重复代码:

for (int i = 19; i >=0; i--) {
moveNTimes(main, i);
}

或者

您可以向主对象添加 moveNTimes(int numberOfMoves) 方法。

注意:

  • 您可以在 for 循环内声明变量
  • i = i + 1 可以写成 i++

编辑

您的描述不是很清楚,但这可能就是您所要求的:

for (int i = 19; i >= 2; i--){
for (int j = 0; j < 3; j++) {
moveNTimes(main, i);
main.turnRight();
}
}

这将向上移动 19 次,然后向右移动 19 次,向下移动 19 次,向左移动 18 次,向上移动 18 次,向右移动 18 次,向下移动 17 次等,并且应该在盒子的中间完成(您可能需要在最后进行额外的移动) ,不确定)。

关于基于Java的图标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416446/

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