gpt4 book ai didi

java - vector 、点、战舰、2D

转载 作者:行者123 更新时间:2023-12-01 13:06:42 26 4
gpt4 key购买 nike

我应该用Java为游戏战舰编写一些方法吗?不知道它的英文怎么称呼。

我们将创建方法:

private static Point[] createSchiff(int laenge)

这将创建一艘长度为 laenge 的船,场上的随机位置和随机方向,并返回船舶的引用。

该船的型号为 Point我们将使用对象 Vector作为我们创建的所有船舶的容器。

到目前为止我拥有的完整程序代码是:

import java.awt.*;
import java.awt.Point;
import java.lang.*;
import java.util.*;
public class Programm34 {
public int anzahlschiffe=5;
public Point[] schiffe = new Point[anzahlschiffe];
public static void main(String[]args){



Vector v=new Vector();

int i=10;
double random=0;
System.out.println("Zufallszahlen: ");
for(i=anzahlschiffe;i>0;i--){
random=random(0,10);
System.out.print((int)random+" ");
System.out.println("");
} //Test für random Methode!!
int[][] Spielfeld= new int[10][10];



init(Spielfeld);
for(int x=9;x>=0;x--){
for(int y=9;y>=0;y--){
System.out.print(Spielfeld[x][y]);
if(y!=0){
System.out.print(" ");
}
if(y==0 && x!=0){
System.out.print("\n");
}
}
}



}




private static long random(int u, int o){
double random;
random=Math.random()*(u-o)+o;
return (int)random;
}

private static Point[] createSchiff(int laenge){

point(1,2);


}

private static boolean positionOk(Vector<Point[]> schiffe,Point[] schiff){

}

private static boolean grenze(Point[] schiff){

}

private static boolean konflikt(Vector<Point[]> schiffe,Point[] schiff){

}

private static boolean nachbar(Vector<Point[]> schiffe,Point[] schiff){

}

private static boolean increment(Vector<Point[]> schiffe,int laenge){

}

private static void init(int[][] spielfeld){
for(int i=9;i>=0;i--){
for(int j=9;j>=0;j--){
spielfeld[i][j]=0;
}
}
}

private static void add(int[][] spielfeld, Vector<Point[]> schiffe){

}
}

所有这些方法和 main 都应该被编程,但重要的是 createschiff(“createship”)方法。

你能帮我解释一下这个 vector 吗?重点是?整个事情是如何运作的?我现在在这里坐了大约 2 个小时,没有任何进展...非常感谢

最佳答案

首先是一件小事(但有帮助):您应该向 vector 添加泛型参数。 (我怀疑是否有必要使用Vector。一个List应该足够了。但是当它在作业中时,你必须这样做......)

Vector<Point[]> v=new Vector<Point[]>();

关于createSchiff方法:您必须创建多个Point对象。即,船舶所覆盖的每个区域都有一个。这大概看起来像这样:

private static Point[] createSchiff(int laenge)
{
int positionX = ... // Some random position
int positionY = ... // Some random position

// Create the array that will contain the fields
// covered by the ship:
Point result[] = new Point[laenge];

// Fill the array
for (int i=0; i<laenge; i++)
{
result[i] = new Point(positionX, positionY);

// Change the position for the next field,
// depending on the direction of the ship:
positionX += ...
positionY += ...
}

return result;
}

然后你可以像这样调用这个方法:

Point ship[] = createSchiff(3);
v.add(ship);

(我可以插入更多真实代码而不是占位符 ... ,但您应该自己尝试一下)

关于java - vector 、点、战舰、2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23213990/

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