gpt4 book ai didi

java - 从java中创建的球数组制作2个新的球数组

转载 作者:行者123 更新时间:2023-11-29 09:09:29 25 4
gpt4 key购买 nike

我目前正在 Eclipse 中编写一个 Java 台球游戏小程序。我在我的小程序的开头声明了一个包含 16 个球的数组,它在 start() 方法中处理所有球的定位,如下所示:

Ball b[] = new Ball[16];

public void start()
{
b[0] = new Ball(200,425,0,0);
b[1] = new Ball(200, 140, 0, 0);
b[2] = new Ball(190, 120, 0, 0);
b[3] = new Ball(210, 120, 0, 0);
b[4] = new Ball(180, 100, 0, 0);
b[5] = new Ball(200, 100, 0, 0);
b[6] = new Ball(220, 100, 0, 0);
b[7] = new Ball(170, 80, 0, 0);
b[8] = new Ball(190, 80, 0, 0);
b[9] = new Ball(210, 80, 0, 0);
b[10] = new Ball(230, 80, 0, 0);
b[11] = new Ball(160, 60, 0, 0);
b[12] = new Ball(180, 60, 0, 0);
b[13] = new Ball(200, 60, 0, 0);
b[14] = new Ball(220, 60, 0, 0);
b[15] = new Ball(240, 60, 0, 0);
}

这些球的颜色是 b[0] 是母球,b[5] 是黑球,其他球是红色或黄色,具体取决于它们在三角形内的位置。

我需要做的是从原始数组制作另外 2 个数组,其中第一个只是红球,例如b[1]、b[3]、b[4]……等等。其中第二个将只是黄色的球,例如b[2], b[6], b[7].......等等。

我想知道的是,是否可以将单个数组的 2 个数组只取红色和黄色球的值?如果是这样,编写这些数组的最有效方法是什么?

提前致谢。

最佳答案

即使您看起来不是很有经验,但问题的目的非常有道理。您不需要创建新的 Ball 实例,只需从先前定义的数组中获取:

Ball reds[] = new Ball[7];
Ball yellows[] = new Ball[7];

for(int i=1;i<b.length;i++) {
if(i!=5) {
if(i%2==0) {
yellows[i/2-1]=b[i];
} else {
reds[i<5?(i/2):(i/2-1)]=b[i];
}
}
}

这遍历球,从索引 1 到 15,我们省略数字 5,并取决于循环变量除以二的余数。

编辑嘿,这并不像一开始看起来那么简单,遗漏 5 号球需要一些技巧......

关于java - 从java中创建的球数组制作2个新的球数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13160534/

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