Code – die besten Beiträge

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
    }
  }
}
programmieren, Java, Code, Programmiersprache, Greenfoot

onclick-event auf webseite mittels python triggern?

Hallo,

ich habe auf einer Webseite eine Tabelle mit verschiedenen Einträgen.
Wenn ich einen Eintrag anklicke, wird eine Funktion aufgerufen

<td onclick="handleRestart(1,3)">xxxxxxxx</td>

Diese Funktion (handleRestart) kann sehe ich auch im Quelltext.

function handleRestart(neu, idx) {
	if (!idx) idx = 1;
	if (neu > 0) {
		jQuery.getJSON( url + "&callback=?", {
			quizSelection: idx
		}, function( retVal ) {
		  quiz = retVal;
		  if (quiz.error && quiz.error == "forbidden") {
			  handleServerError();
		  }
		  quiz.fragenPointer = 0;
		  anzFalsch = 0;
			jQuery("#frageContainer").html(renderQuestion(quiz.fragen[quiz.fragenIds[quiz.fragenPointer]]));
		  renderStats();
	  });
	} else {
	  quiz.fragenPointer = 0;
		anzFalsch = 0;
		for (i= 0; i < quiz.fragenIds.length; i++) {
			quiz.fragen[quiz.fragenIds[i]].answer = -1;
		}
		jQuery("#frageContainer").html(renderQuestion(quiz.fragen[quiz.fragenIds[quiz.fragenPointer]]));
		renderStats();
	}
}

Gibt es eine Möglichkeit mittels Python die Seite aufzurufen und dann die Funktion aus dem Python-script zu triggern?

Mittels "requests" kann ich ja http-requests schicken. Aber gibt es auch eine möglichkeit, wenn ich die Seite geladen habe

z.B.

 r = requests.get('webseite')

die Funktion (handleRestart) zu triggern?

Es gäbe noch weiter Funktionen, die ich dann aufrufen möchte, aber das denke ich ist dann ähnlich.

Wenn ich in der Tabelle auf einen Eintrag klicke, bekomme ich ein Quiz.
Im Quelltext wird durch ein Funktionsaufruf eine .json geholt. Diese würde ich mir gerne ansehen und evtl. Daten rausholen. Ziel ist es alle Fragen des Quiz zu bekommen, ohne händisch durchzugehen und diese aufzuschreiben.

HTML, Webseite, JavaScript, Code, Programmiersprache, Python, Python 3

Meistgelesene Beiträge zum Thema Code