矢量,点,战舰,2D

时间:2014-04-22 08:09:12

标签: java methods vector point

我会用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个小时没有进展......很多

1 个答案:

答案 0 :(得分:1)

首先是次要的(但有用的):你应该在向量中添加泛型参数。 (我怀疑是否有必要使用VectorList应该足够了。但是当它在作业中时,你必须这样做......)

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);

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