Liebe Leute,
ich muss für die Uni Reversi/Othello programmieren. Leider bin ich blond und habe zusätzlich wenig Erfahrung was das Programmieren betrifft, deshalb brauche ich Hilfe.
Mein Problem ist es, dass ich mit der Methode mouseClicked die Position erhalten möchte, auf die geklickt wurde. Diese Position (also die ich erhalten habe aus getX und getY) brauche ich zur Bestimmung der jeweiligen Position im zweidimensionalen Array.
Ich teile die Position die ich mit getX und getY durch die Breite des Feldes, damit ich Werte erhalte die ich verwenden kann für den Array. (Wenn ich zum Beispiel klicke auf Position x = 123, y = 123 und die breite des Feldes ist 50, dann erhalte ich als xPosition 2.46 und als yPosition ebenfalls 2.46. Zusätzlich habe ich xPosition und yPosition als int membervariabelen deklariert, deshalb werden diese Werte abgerundet nach 2. xPosition = 2, yPosition = 2.
Jetzt möchte ich xPosition und yPosition verwenden für den Array. auf dieser Position soll gespeichert werden, welcher der beiden Spieler an der Reihe ist: Spieler 1 oder Spieler 2.
Und jetzt stosse ich bereits etwas an meine Grenzen. Ich möchte nämlich, dass beim ersten Klicken Spieler 1 an der Reihe is, also hat die variabele spieler den int Wert 1. Beim nächsten Klick soll Spieler 2 an der Reihe sein. spieler = 3-spieler. (das ergäbe ja dann 2).
Ich habe das mal so formuliert:
Bis jetzt steht alles in der Methode mouseClicked. In der Methode paint möchte ich jetzt ins betreffende Feld vom Spielfeld den Kreis zeichen in der richtigen Farbe (rot für Spieler 1, blau für Spieler 2).
In paint habe ich das Spielfeld gezeichnet. Zusätzlich möchte ich eben auch noch die Kreise zeichnen. Wenn der gespeicherte Wert für spieler im Array 1 ist, dann soll der Kreis rot gezeichnet werden, wenn der Wert 2 ist, soll der Kreis blau sein.
Ich habe das so geschrieben, aber ich denke, dass sich hier der Fehler befindet:
Mein Problem is, dass ich das Gefühl habe, dass die xPosition nicht gespeichert wird, denn die xPosition ist ja kein Array und wird bei jedem Klick wieder gelöscht. Auch wird im Applet nichts gezeichnet, nur oben links ein schwarzer Kreis.
Bitte, bitte bitte... kann mir jemand helfen. Wenn ihr mir erläutern könnt, wie ich es schaffe, dass mehrere Kreise in blau und rot gezeichnet werden. Dann kann ich mir danach wieder den Kopf darüber zerbrechen wie es weiter gehen soll... ;(
ich muss für die Uni Reversi/Othello programmieren. Leider bin ich blond und habe zusätzlich wenig Erfahrung was das Programmieren betrifft, deshalb brauche ich Hilfe.
Mein Problem ist es, dass ich mit der Methode mouseClicked die Position erhalten möchte, auf die geklickt wurde. Diese Position (also die ich erhalten habe aus getX und getY) brauche ich zur Bestimmung der jeweiligen Position im zweidimensionalen Array.
Java:
public void mouseClicked(MouseEvent e)
{
xPosition = ((e.getX()/ breiteFeld));
yPosition = ((e.getY()/ breiteFeld));
Ich teile die Position die ich mit getX und getY durch die Breite des Feldes, damit ich Werte erhalte die ich verwenden kann für den Array. (Wenn ich zum Beispiel klicke auf Position x = 123, y = 123 und die breite des Feldes ist 50, dann erhalte ich als xPosition 2.46 und als yPosition ebenfalls 2.46. Zusätzlich habe ich xPosition und yPosition als int membervariabelen deklariert, deshalb werden diese Werte abgerundet nach 2. xPosition = 2, yPosition = 2.
Jetzt möchte ich xPosition und yPosition verwenden für den Array. auf dieser Position soll gespeichert werden, welcher der beiden Spieler an der Reihe ist: Spieler 1 oder Spieler 2.
Und jetzt stosse ich bereits etwas an meine Grenzen. Ich möchte nämlich, dass beim ersten Klicken Spieler 1 an der Reihe is, also hat die variabele spieler den int Wert 1. Beim nächsten Klick soll Spieler 2 an der Reihe sein. spieler = 3-spieler. (das ergäbe ja dann 2).
Ich habe das mal so formuliert:
Java:
positionXY[xPosition][yPosition]= spieler;
spieler = 3-spieler;
Bis jetzt steht alles in der Methode mouseClicked. In der Methode paint möchte ich jetzt ins betreffende Feld vom Spielfeld den Kreis zeichen in der richtigen Farbe (rot für Spieler 1, blau für Spieler 2).
In paint habe ich das Spielfeld gezeichnet. Zusätzlich möchte ich eben auch noch die Kreise zeichnen. Wenn der gespeicherte Wert für spieler im Array 1 ist, dann soll der Kreis rot gezeichnet werden, wenn der Wert 2 ist, soll der Kreis blau sein.
Ich habe das so geschrieben, aber ich denke, dass sich hier der Fehler befindet:
Java:
int x, y;
for (x = 0; x <6 ; x = x++)
for (y = 0; y<6; y++)
{
if (spieler == 1)
g.setColor(Color.RED);
g.fillOval(xPositie - (breedteVlak/2), yPositie - (breedteVlak/2), breedteVlak, breedteVlak);
if (spieler == 2)
g.setColor(Color.BLUE);
g.fillOval((xPosition*breiteFeld), (yPosition*breiteFeld), breiteFeld, breiteFeld);
}
Mein Problem is, dass ich das Gefühl habe, dass die xPosition nicht gespeichert wird, denn die xPosition ist ja kein Array und wird bei jedem Klick wieder gelöscht. Auch wird im Applet nichts gezeichnet, nur oben links ein schwarzer Kreis.
Bitte, bitte bitte... kann mir jemand helfen. Wenn ihr mir erläutern könnt, wie ich es schaffe, dass mehrere Kreise in blau und rot gezeichnet werden. Dann kann ich mir danach wieder den Kopf darüber zerbrechen wie es weiter gehen soll... ;(