Greenfoot/Schiffe-versenken: Wieso schießt der Gegner mehrmals?
Hey, bei meinem Java-Code für Greenfoot spielt man selbst gegen den Computer, der, nachdem man selbst geschoßen hat, auch einen zufälligen Schuss setzt.
Der Gegner schießt momentan allerdings mehrmals. Hat jemand eine Idee, woran das liegt? 🙂
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
import java.util.*;
/**
* Ergänzen Sie hier eine Beschreibung für die Klasse Schiff.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Schiff extends Actor {
public Schiff(String image) {
setImage(image);
}
/**
* Act - tut, was auch immer Schiff tun will. Diese Methode wird aufgerufen,
* sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden.
*/
public void act() {
mausKlick();
}
public void mausKlick() {
if (Greenfoot.mouseClicked(this)) {
int xPos = Greenfoot.getMouseInfo().getX();
int yPos = Greenfoot.getMouseInfo().getY();
((Schiffeversenken)this.getWorld()).addObject(new Treffer(), xPos, yPos);
}
else if (Greenfoot.mouseClicked(((Schiffeversenken)this.getWorld()).rechts)) {
int xPosi = Greenfoot.getMouseInfo().getX();
int yPosi = Greenfoot.getMouseInfo().getY();
((Schiffeversenken)this.getWorld()).addObject(new KeinTreffer(), xPosi, yPosi);
gegner();
}
}
public void gegner() {
int[] xKoordinate = new int[7];
int[] yKoordinate = new int[7];
int x = 0;
for (int i = 67; i < 326; i = i + 43) {
xKoordinate[x] = i;
x++;
}
int y = 0;
for (int i = 154; i < 398; i = i + 40) {
yKoordinate[y] = i;
y++;
}
Random random = new Random();
int xIndex = random.nextInt(7);
int yIndex = random.nextInt(7);
int zufallx = xKoordinate[xIndex];
int zufally = yKoordinate[yIndex];
List<Schiff> schiffe = getWorld().getObjectsAt(zufallx, zufally, Schiff.class);
if (!schiffe.isEmpty()) // Wenn ein Schiff gefunden wurde
{
((Schiffeversenken)this.getWorld()).addObject(new Treffer(), zufallx, zufally); // Füge ein Treffer-Objekt hinzu
}
else // Wenn kein Schiff gefunden wurde
{
((Schiffeversenken)this.getWorld()).addObject(new KeinTreffer(), zufallx, zufally); // Füge ein NichtTreffer-Objekt hinzu
}
}
}