Dame - Konzept vorhanden, fähigkeiten fehlen

wurmi86

Mitglied
Hallo Jungs und Mädels,

ich bastele gerade an einem einfachen Damespiel. Nix schick-schnöseliges. Einfach erstmal nur das basisding. Mensch gegen Mensch.
Mein stand ist folgender. Brett gezeichnet. Startaufstellung. Mausklicks mit Koordinaten abfangbar.

ich hab ein peinliches Problem. Ich bin ein Frischling in der visuellen Programmierung und weis noch nicht wie paint() so richtig funktioniert...
mein frage ist. wie verwende ich paint() (oder etwas anderes) um die ganze Geschichte neuzuzeichnen? Würde z.B. als Test ein Feld markieren(andere Farbe).

zur erklärung des Quelltextes:
paint() schaut nach, was in Brett.brett[][]steht. zeichnet es nach.(1 -schwarz feld, 0 weißes feld)
in Brett.steine[][] steht zunächst die startaufstellung.
ich hatte mir gedacht. beim klick auf ein feld wird in Brett.brett[][] eine 3 reingeschreiben. das soll mein paint() nochmal zeichnen


Java:
package dame;
import java.awt.*;
import java.awt.event.*;

public class dame extends Panel{
    void wStein(int x, int y,Graphics g){//grauer Stein
       g.setColor(Color.LIGHT_GRAY);
       g.fillOval(x*50,y*50,50,50);
       g.setColor(Color.BLACK);
       g.drawOval(x*50+5,y*50+5,40,40);
    }
    void rStein(int x, int y,Graphics g){//ROTER Stein
       g.setColor(Color.RED);
       g.fillOval(x*50,y*50,50,50);
       g.setColor(Color.BLACK);
       g.drawOval(x*50+5,y*50+5,40,40);
    }
    
    public void paint(Graphics g){
        for(int x=0;x<=7;x++){
            for(int y=0;y<=7;y++){
                if(Brett.brett[x][y]==0){
                    g.setColor(Color.WHITE);
                    g.fillRect(x*50,y*50,50,50);
                }

                else if(Brett.brett[x][y]==1){
                    g.setColor(Color.DARK_GRAY);
                    g.fillRect(x*50,y*50,50,50);
                }

                if(Brett.steine[x][y]==1) wStein(x,y,g);
                if(Brett.steine[x][y]==2) rStein(x,y,g);
            }
        }
    }

    public void spiel(Panel p){
       int wer = 1;
       while(spielregeln.istEnde()==false){

            System.out.println("Spieler "+wer+" ist am Zug");
            new MausAbfrage().mouseAction(p);
       }
    }

    public boolean handleEvent(Event e) {
         if (e.id == Event.WINDOW_DESTROY)
         System.exit(0);
         return super.handleEvent(e);
    }

    public static void main(String [] strg){
        Brett.brett_initialisieren();
        Brett.startaufstellung();
        
        Frame myFrame = new Frame();
        Panel p = new dame();
      //---------------------Frame
        myFrame.add(new dame());
        myFrame.add("Center",p);
        myFrame.setSize(500,500);
        myFrame.setVisible(true);
      //-----------Menu
        MenuBar myMenuBar = new MenuBar();
        Menu startMenu = new Menu("Start");
        myMenuBar.add(startMenu);
        myFrame.setMenuBar(myMenuBar);
        MenuItem m1 = new MenuItem("Neues Spiel beginnen");
        MenuItem m2 = new MenuItem("Spiel Verlassen");
        startMenu.add(m1);
        startMenu.add(m2);
        
        new MausAbfrage().mouseAction(p);
        myFrame.addWindowListener(new WindowAdapter(){//shcliessen
            public void windowClosing(WindowEvent we){
               System.exit(0);
            }
        });        
    }
}

auf anfrage kann ich auch die anderen klassen reinstellen/ schicken


ich hoffe mir kann geholfen werden.

MfG Wurmi
 

Marco13

Top Contributor
Mädels? Optimist :D

In der Hoffnung, dass das jetzt nicht zuuu sehr ein "Dämpfer" für deinen Enthusiasmus ist: Das ist ... so nicht so gut. Einerseits verwendest du AWT, was man als "veraltet" bezeichnen könnte. Mit Swing hat man mehr Möglichkeiten, und es ist moderner und flexibler.

Darüberhinaus: Die Methode "handleEvent(Event e)" ist NOCH veralteter als AWT. Schon seit Java 1.1 - also seit etwa 13 Jahren. Wo hast du das denn her? :noe:

Schau dir vielleicht mal ein Tutorial an, wie z.B. Malen in Swing Teil 1: der grundlegende Mechanismus - Byte-Welt Wiki, damit dürfen viele der ersten Fragen beantwortet werden, und auch wenn es "nix schick-schnöseliges" sein sollte kann man ja versuchen, es gleich "richtig" zu machen...
 

wurmi86

Mitglied
Hallo, danke für den hinweis, Marco13.

Und ich WETTE, da draussen auf der Welt gibt es irgendwo noch ein Mädel, welche sich den niederen Diensten der Informatik widmet. =)

Also das ist doch schon mal was. Dann stell ich mal die Bmühungen an AWT ein und konvertiere zu Swing.

Danke für den Link. Schätze mal das brignt mich weiter.

Bis dann werte WEIBLEIN und männlein. Und danke
ich meld, mich sobald ich problemchen hab.
 

Ähnliche Java Themen


Oben