我会用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){
}
}
所有这些方法和主要方法都应该编程,但重要的是creatchiff(“创造力”)。
你能帮我解释一下这个载体吗?关键点?整个过程如何运作?我现在坐在这里2个小时没有进展......很多
答案 0 :(得分:1)
首先是次要的(但有用的):你应该在向量中添加泛型参数。 (我怀疑是否有必要使用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);
(我可以插入更多真实代码而不是占位符...
,但您应该自行尝试)