Hallo.
Ich habe ein Problem. Ich muss das Spiel Schiffe versenken in einer einfachen Form in Java programmieren. Der erste Gedankenansatz ist schon da, nur weiss ich jetzt nicht weiter. Ich weiss bis jetzt das ich ein Spielfeld generieren muss(2D-Array) und in diesem sollen die Schiffe per Zufall gesetzt werden. Das mit dem 2D-Array will nciht so recht klappen und wie ich per Zufall die Schiffe gerneriere weiss ich auch nicht. Dann soll eine Eingabe gemacht werden und diese soll überprüft werden, ob ein Schiff getroffen wurde. Und dann geht es ja halt so weiter bis alle Schiffe gefunden sind. Es soll auch nur ein Spieler (Mensch) beteiligt sein. Mit der Umsetzung hapert es bei mir leider. Kann mir jemand helfen. Gibt es vielleicht irgendwo im Netz Seiten auf denen das Spiel schon programmiert worden ist?? Habe noch nichts gefunden. Ist alles so hochtrabend. Bitte könnt ihr mir helfen???
Auch hallo.
Ich muss das Spiel Schiffe versenken in
einer einfachen Form in Java programmieren.
Also ohne grafischen Anspruch. Eingabe der Zielfelder via Kommandozeile.
Ich weiss bis jetzt das ich ein Spielfeld generieren
muss(2D-Array) und in diesem sollen die Schiffe per Zufall
gesetzt werden. Das mit dem 2D-Array will nciht so recht
klappen
int schlachtfeld[10][10]
int [][]schlachtfeld
schlachtfeld = new int[10][10]
und wie ich per Zufall die Schiffe gerneriere weiss
ich auch nicht.
Zwei ganzzahlige Zufallszahlen generieren lassen und mit den grössten Schiffen anfangen.
Natürlich muss für jede Schiffslänge einzeln geprüft und auf Kollision mit anderen Schiffen oder dem Rand geachtet werden.
Eine Zufallszahl wird so generiert: http://www.galileocomputing.de/openbook/javainsel5/j…
Gibt es vielleicht irgendwo im Netz Seiten auf denen
das Spiel schon programmiert worden ist??
Bei programmersheaven.com vielleicht ?
Für Java kann man sich hier noch umschauen: http://www.java-tips.org, http://www.javabuch.de & http://www.javacore.de & https://www.dev.java.net/servlets/ProjectList
HTH
mfg M.L.
… klingt, als ob Du für’n unterricht was abschreiben willst …
kann aber nur so sagen, was mir dazu einfällt …
Ich weiss bis jetzt das ich ein Spielfeld generieren muss(2D-Array)
genau … schließe mich meinem vorredner an :o]
int[][] schlachtfeld=new int[8][8]; // 8x8 kästchen
und in diesem sollen die Schiffe per Zufall gesetzt werden und wie ich per Zufall die Schiffe gerneriere weiss ich auch nicht.
ich kenn zwei methoden… äh … möglichkeiten, zufallszahlen herzustellen:
java.lang.Math.Random() … import java.lang.Math; … obendrüber, dann
einfach Math.Random() wie eine Zahl einarbeiten zB
g.fillRect((int)(MathRandom()*8),(int)(Math.Random()*8),10,10);
. macht zufallszahlen zwischen float 0.0 und usw} // nach links
if >0.25 && 0.5 && oder extends Applet implements MouseListener { usw.
dazu müssen im code folgende Methoden (auch leer, aber) definiert sein:
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
… in MousePressed kannst du eine Methode, die malt aufrufen zB
public void mousePressed(){
paint(getGraphics());
… oder
repaint();
… in der Du malst, wo die maus hingeklickt hat
… kannst (mußt) hier aber auch die Koordinaten vom Click abfragen
int askX=e.getX();
int askY=e.getY();
}
askX und askY kannst Du nun benutzen, um zu checken ob bei
if(schlachtfeld[askX][askY]==1) { [irgend’ne Ausgabe für zB ‚‚Treffer‘‘
oder 'ne routine, die dann das ganze schiff wieder löscht … }
if(…==0) { …kein treffer… }
hilft Dir das?
schlachtfeld,x,y,askX,askY,e sind alle erfundene bezeichnungen, alles andere sind vorgegebene java bezeichnungen