Hilfe bei Reversi/Othello

rbrummel

Mitglied
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.

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... ;(
 

OliverKroll

Aktives Mitglied
Geht es so besser ?:
Java:
int x,y;
for(x=0;x<6;x++)
{
    for(y=0;y<6;y++)
    {
         if(PositionXY[x][y]==1)
         {
             g.setColor(Color.RED);
         }
         else
         {
             g.setColor(Color.BLUE);
         }
         g.fillOval(x*breiteFeld,y*breiteFeld,breiteFeld,breiteFeld);
    }
}
Sonst solltest du das komplette Programm mit angeben.
 
Zuletzt bearbeitet:

rbrummel

Mitglied
Naja, das hilft nicht wirklich...

habe das ganz noch einmal neu gemacht... das Problem ist, dass die Farbe nicht ändert und dass der bereits gezeichnete Kreis nicht erhalten bleibt. Momentan wird jedes Mal wenn ich klicke ein neuer blauer Kreis gezeichnet...

Java:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;


public class Practicum extends Applet implements ActionListener, MouseListener
{
Button neuesSpielButton, helpButton;
int feld, maxAnzahl, xPosition, yPosition, spieler;
int tabelle [][];


	public void init()
	{
		feld = 50;
		maxAnzahl = 35;
		
		tabelle = new int [5][5];
		
		neuesSpielButton = new Button ("Neues Spiel");
		this.add(neuesSpielButton);
		neuesSpielButton.addActionListener(this);
		
		helpButton = new Button ("Help");
		this.add(helpButton);
		helpButton.addActionListener(this);
		
		addMouseListener(this);
	}
	public void paint (Graphics g)
	{
		int xAchse, yAchse;
		
		for(xAchse = 0; xAchse <= 5*feld; xAchse = xAchse + feld)
		{
			for(yAchse=0; yAchse <= 5*feld; yAchse = yAchse + feld)
			{
				g.drawRect(xAchse+feld, yAchse+feld, feld, feld);
			}
		}
		
		int x, y;
		for(x = 0; x < 6; x++)
		{
		    for(y = 0; y < 6; y++)
		    {
		         if(tabelle[x][y]==1)
		         {
		             g.setColor(Color.RED);
		         }
		         else
		         {
		             g.setColor(Color.BLUE);
		         }
		         g.fillOval(xPosition*feld, yPosition*feld, feld, feld);
		    }
		}
		
	}
	public void actionPerformed(ActionEvent arg0) 
	{
	}
	public void mouseClicked(MouseEvent e) 
	{	
		xPosition = ((e.getX()/ feld));
		yPosition = ((e.getY()/ feld));
		
		tabelle [xPosition][yPosition] = spieler;
		spieler = 3-spieler;
		
		this.repaint();
	}
	public void mouseEntered(MouseEvent arg0) 
	{
	}
	public void mouseExited(MouseEvent arg0) 
	{
	}
	public void mousePressed(MouseEvent arg0) 
	{	
	}
	public void mouseReleased(MouseEvent arg0) 
	{	
	}
	
	private static final long serialVersionUID = 1;
}
 

OliverKroll

Aktives Mitglied
Ich habe ungefähr 6 Zeilen geändert: läuft.
Java:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 
 
public class Practicum extends Applet implements ActionListener, MouseListener
{
Button neuesSpielButton, helpButton;
int feld, maxAnzahl, xPosition, yPosition, spieler;
int tabelle [][];
 
 
    public void init()
    {
        feld = 50;
        maxAnzahl = 35;
        spieler=1;
        
        tabelle = new int [6][6];
        
        neuesSpielButton = new Button ("Neues Spiel");
        this.add(neuesSpielButton);
        neuesSpielButton.addActionListener(this);
        
        helpButton = new Button ("Help");
        this.add(helpButton);
        helpButton.addActionListener(this);
        
        addMouseListener(this);
    }
    public void paint (Graphics g)
    {
        int xAchse, yAchse;
        
        for(xAchse = 0; xAchse <= 5*feld; xAchse = xAchse + feld)
        {
            for(yAchse=0; yAchse <= 5*feld; yAchse = yAchse + feld)
            {
                g.drawRect(xAchse+feld, yAchse+feld, feld, feld);
            }
        }
        
        int x, y;
        for(x = 0; x < 6; x++)
        {
            for(y = 0; y < 6; y++)
            {
                 if(tabelle[x][y]==1)
                 {
                     g.setColor(Color.RED);
                 }
                 else
                 {
                     g.setColor(Color.BLUE);
                 }
             //  g.setColor(Color.GREEN);
                 if(tabelle[x][y]>0)
                 {
                	 g.fillOval((x+1)*feld,(y+1)*feld, feld, feld);
                 }
            }
        }
        
    }
    public void actionPerformed(ActionEvent arg0) 
    {
    }
    public void mouseClicked(MouseEvent e) 
    {   
        xPosition = ((e.getX()/ feld))-1;
        yPosition = ((e.getY()/ feld))-1;
        
        tabelle [xPosition][yPosition] = spieler;
        spieler = 3-spieler;
        
        this.repaint();
    }
    public void mouseEntered(MouseEvent arg0) 
    {
    }
    public void mouseExited(MouseEvent arg0) 
    {
    }
    public void mousePressed(MouseEvent arg0) 
    {   
    }
    public void mouseReleased(MouseEvent arg0) 
    {   
    }
    
    private static final long serialVersionUID = 1;
}
 

rbrummel

Mitglied
Sorry, dass ich mich noch einmal melden, ich möchte gerne zählen wie viele rote und wie viele blaue Steine auf dem Spielbrett liegen.

Java:
	public void mouseClicked(MouseEvent e) 
	{	
		xPosition = ((e.getX()/ feld))-1;
		yPosition = ((e.getY()/ feld))-1;
		
		tabelle [xPosition][yPosition] = spieler;
		spieler = 3-spieler;
		
		this.repaint();
	}

Java:
		for(x = 0; x < 6; x++)
		{
		    for(y = 0; y < 6; y++)
		    {
		         if(tabelle[x][y] == 1)
		         {
		             g.setColor(Color.RED);
                                      anzahlRot++;
		         }
		         if (tabelle[x][y] == 2)
		         {
		             g.setColor(Color.BLUE);
                                      anzahlBlau++;
		         }
		         if(tabelle[x][y] > 0)
                 {
                     g.fillOval((x+1)*feld,(y+1)*feld, feld, feld);
                 }
		         

		    }
		}
		g.drawString(" " +anzahlRot, 20, 10);
		g.drawString(" " +anzahlBlau, 20, 30);

eigentlich wollte ich das so zählen. Doch die Zahlen die jetzt angezeigt werden entsprechen nicht der Menge Spielsteine auf dem Brett. Wenn ich nämlich den Bildschirm vergrössere, wird die Anzahl vorhandener Steine auch grösser... was ich natürlich nicht möchte!!!

wer weiss was ich falsch mache?
 

OliverKroll

Aktives Mitglied
Vermutlich hast du nur die Initialisierung der Variablen vergessen:
Java:
anzahlRot=0;
anzahlBlau=0;
        
for(x = 0; x < 6; x++)
{
    for(y = 0; y < 6; y++)
    {
        if(tabelle[x][y] == 1)
        {
            g.setColor(Color.RED);
            anzahlRot++;
        }
        if (tabelle[x][y] == 2)
        {
            g.setColor(Color.BLUE);
            anzahlBlau++;
        }
        if(tabelle[x][y] > 0)
        {
            g.fillOval((x+1)*feld,(y+1)*feld, feld, feld);
        }    
    }
}
g.drawString(" " +anzahlRot, 20, 10);
g.drawString(" " +anzahlBlau, 20, 30);
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Atten007 Minecraft Hilfe bei benutzerdefinierten Bannervorlagen in MCreator benötigt Spiele- und Multimedia-Programmierung 0
R Flappy Bird Hilfe Spiele- und Multimedia-Programmierung 1
Atten007 Minecraft Hilfe bei der Fehlerbehebung in MCreator benötigt Spiele- und Multimedia-Programmierung 1
Atten007 Minecraft Hilfe beim MCreator Plugin benötigt Spiele- und Multimedia-Programmierung 0
Atten007 Minecraft Hilfe beim MCreator Plugin benötigt Spiele- und Multimedia-Programmierung 5
A [HILFE] - Minecraft-Problem! Spiele- und Multimedia-Programmierung 1
JEP1 Hilfe bei Spiel Spiele- und Multimedia-Programmierung 1
J TreeNode erstellen [Hilfe beim Konstruktor, Zeile 16] Spiele- und Multimedia-Programmierung 2
Z Minecraft Hilfe bei Minecraft PvP Client Spiele- und Multimedia-Programmierung 21
T Hilfe beim Platzieren der Schiffe Spiele- und Multimedia-Programmierung 14
M Brauche Hilfe was zu Programmieren Spiele- und Multimedia-Programmierung 4
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
RalleYTN Brauche Hilfe beim Einlesen von PNGs Spiele- und Multimedia-Programmierung 14
P Hilfe für Seminar Arbeit Spiele- und Multimedia-Programmierung 9
T Pong Hilfe bei einer Website Spiele- und Multimedia-Programmierung 4
T Hilfe bei decompilen von Plugin Spiele- und Multimedia-Programmierung 6
E Brauche Hilfe was soll ich tun Spiele- und Multimedia-Programmierung 7
B HILFE bei Spieleprogrammierung mit Slick2D Spiele- und Multimedia-Programmierung 9
S Würfelspiel; Hilfe Spiele- und Multimedia-Programmierung 3
M Hilfe bei vier gewinnt Spiele- und Multimedia-Programmierung 4
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
C Visual Story programieren/hilfe Spiele- und Multimedia-Programmierung 5
L Hilfe: Moog VCF Diskretisierungs Algorithmen (Smith/Stilson u.A.) Spiele- und Multimedia-Programmierung 0
J Spielfiguren laufen lassen auf einer html Tabelle mit Hilfe von Servlets Spiele- und Multimedia-Programmierung 2
M Hilfe bei Snake Spiele- und Multimedia-Programmierung 4
T Hintergrundmusik eines Spiels mit Hilfe von JLayer Spiele- und Multimedia-Programmierung 12
S 2D mit Slick - Anfänger sucht Hilfe Spiele- und Multimedia-Programmierung 4
C Generelle Hilfe zur lwjgl Spiele- und Multimedia-Programmierung 0
J Hilfe bei Fußballmanager Spiele- und Multimedia-Programmierung 0
C Hilfe bei einem Mosaikspiel Spiele- und Multimedia-Programmierung 16
J Java Steuerberechnung hilfe Spiele- und Multimedia-Programmierung 17
U Hilfe bei Implementierung eines PointSounds in Java3D Spiele- und Multimedia-Programmierung 1
E Hilfe bei Labyrinth Programmierung. Spiele- und Multimedia-Programmierung 9
S Hilfe bei Spiel Spiele- und Multimedia-Programmierung 6
T Aim-Hilfe Spiele- und Multimedia-Programmierung 4
S Shiritori / word chain / Wörterkette Hilfe Spiele- und Multimedia-Programmierung 1
J Hilfe bei mastermind dringend !!!!! Spiele- und Multimedia-Programmierung 3
S Hilfe bei Spielumsetzung Spiele- und Multimedia-Programmierung 6
M Kleines Spongebobspiel / Hilfe gesucht Spiele- und Multimedia-Programmierung 2
L Hilfe bei Entities benötigt Spiele- und Multimedia-Programmierung 6
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
A Minecraft Hilfe bei Minecraft Mod Spiele- und Multimedia-Programmierung 1
F Einen Sound mit veränderter Tonhöhe und Geschwindigkeit abspielen - Hilfe erbeten Spiele- und Multimedia-Programmierung 29
V Keine Ahnung von OpenGL! Hilfe wäre lieb! Spiele- und Multimedia-Programmierung 8
L Minecraft Minecraft Bukkit Plugin hilfe Spiele- und Multimedia-Programmierung 9
E Hilfe bei Highscore programmierung Spiele- und Multimedia-Programmierung 3
G Acht-Damen-Problem HILFE! Spiele- und Multimedia-Programmierung 11
R Hilfe bei Snake-Programmierung Spiele- und Multimedia-Programmierung 6
B Hilfe bei Minecraft Plugin Spiele- und Multimedia-Programmierung 3
C Java Brauche Hilfe Spiele- und Multimedia-Programmierung 5
M Hilfe bei Spiel Programmierung Spiele- und Multimedia-Programmierung 4
B Hilfe bei GameGrid Spiele- und Multimedia-Programmierung 11
J Spiel mit Java SWING, LWJGL und JMonkey [Anfänger braucht Hilfe] Spiele- und Multimedia-Programmierung 10
N Hilfe bei Tower Defense Spiele- und Multimedia-Programmierung 22
R hilfe bei 2DSpiel. Spiele- und Multimedia-Programmierung 3
S AirHockey Kollisionsprobleme, bitte um Hilfe Spiele- und Multimedia-Programmierung 2
L Abfrage-Fehler? - Hilfe bei Tetris Spiele- und Multimedia-Programmierung 9
J Hilfe: Rotation X und Y Achse (Java3d) Spiele- und Multimedia-Programmierung 12
B Hilfe bekomme den IF befehl nicht hin Spiele- und Multimedia-Programmierung 10
C RFID Überwachung - Hilfe Spiele- und Multimedia-Programmierung 3
javajavajava Java Lotto Zahl 6 aus 49 - Brauche Hilfe Spiele- und Multimedia-Programmierung 3
radiac FullScreenExlusiveMode HILFE!!! Spiele- und Multimedia-Programmierung 6
E TetrisApplet Thread Hilfe Spiele- und Multimedia-Programmierung 6
H PingPong HILFE !!! Spiele- und Multimedia-Programmierung 3
G GO-Spiel in Java noch fehlerhaft hoffe um hilfe Spiele- und Multimedia-Programmierung 7
N Brauche Hilfe bei kleinem Spiel Spiele- und Multimedia-Programmierung 40
N In einem Kasten springende Bälle programmieren...Hilfe Spiele- und Multimedia-Programmierung 7
L Brauche hilfe mit KeyEvent Spiele- und Multimedia-Programmierung 4
B brauche hilfe bei der tastenzuodnung Spiele- und Multimedia-Programmierung 3
E Hilfe bei einer GUI Programmierung mit Graph Spiele- und Multimedia-Programmierung 30
H Decke zeichnen mit Hilfe eines Polygons Spiele- und Multimedia-Programmierung 2
W Hilfe bei Pong mit Bluej Spiele- und Multimedia-Programmierung 4
A Hilfe bei der Methode COLOR (Java) Spiele- und Multimedia-Programmierung 10
S Hilfe: Ich sehe durch die ganze Api's nicht mehr durch! Spiele- und Multimedia-Programmierung 15
N Hilfe bei snake Spiele- und Multimedia-Programmierung 37
C Hilfe bei einfachen Game Spiele- und Multimedia-Programmierung 15
T Bitte um Hilfe bei Animationen Spiele- und Multimedia-Programmierung 10
G Fragespiel, Hilfe ! like Wer wird Millinär Spiele- und Multimedia-Programmierung 12
D Hilfe mit mini-spiel für die Schule. Spiele- und Multimedia-Programmierung 1
F Brauche Hilfe bei Bewegung eines Rechtecks [Applet] Spiele- und Multimedia-Programmierung 5
G Hilfe bei 3Gewinnt! Spiele- und Multimedia-Programmierung 2
C anfänger braucht hilfe für info unterricht Spiele- und Multimedia-Programmierung 21
A Hilfe bei Programmierung von Abalone Spiele- und Multimedia-Programmierung 6
S Hilfe bei Galgenmännchen Spiele- und Multimedia-Programmierung 4
M 'Mensch ärgere Dich nicht' - Hilfe! Spiele- und Multimedia-Programmierung 12
K Hilfe bei Grafikeinbindung in einem Spiel Spiele- und Multimedia-Programmierung 6
H Ich benötige Hilfe [Noob] Spiele- und Multimedia-Programmierung 9
R Probleme mit Sound in Applikation. HILFE Spiele- und Multimedia-Programmierung 5
B Hilfe gesucht!! (bewegen von grafischen Objekten) Spiele- und Multimedia-Programmierung 3
A Othello ( reversi )-es fehlt noch automatischer farbwechsel Spiele- und Multimedia-Programmierung 12

Ähnliche Java Themen

Neue Themen


Oben