hi,
ich bereite ein Schachspiel vor(nur Anzeige) erstmal...
nach dem Klassendiagramm unten...
was muss ich alles machen, damit das Brett richtig angezeigt wird?
Weiß nicht wie es bei getSpielfeld weitergeht und so...beim zeichnen weiß ich auch nicht wie es genau geht...
hier mal der Code der zwei Klassen
Schach(Spiel)
und Spielfeld(Figur kommt später)
Ich hoffe ihr könnt mir weiterhelfen
ich bereite ein Schachspiel vor(nur Anzeige) erstmal...
nach dem Klassendiagramm unten...
was muss ich alles machen, damit das Brett richtig angezeigt wird?
Weiß nicht wie es bei getSpielfeld weitergeht und so...beim zeichnen weiß ich auch nicht wie es genau geht...
hier mal der Code der zwei Klassen
Schach(Spiel)
Java:
package schach;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Schach extends JPanel implements ActionListener
{
static final int Schwarz = 0;
static final int Weiß = 1;
private Image Bild[];
private String log;
public JTextField field;
public JFrame spielfeld;
protected String vorname;
private JPanel panel;
public Container container;
private JMenuBar menueLeiste;
private JMenu datei, spielmodus, hilfe;
private JMenuItem neuesSpiel, beenden, anleitung, spielregeln;
public JLabel anDerReihe;
public JTextArea spielregelnText;
public Image offScrImage;
int Brett[][];
int AktiveFigur[] = { -1, -1 };
int nPlayer = Weiß; // Welcher Spieler soll beginnen?
public Schach()
{
panel = new JPanel(new GridLayout(1,1));
spielfeld = new JFrame("Schach");
setLayout(new BorderLayout());
container = spielfeld.getContentPane();
field = new JTextField();
field.setSize(100,100);
field.setEditable(false);
menueLeiste = new JMenuBar();
panel.add(field);
// Andra
datei = new JMenu("Datei");
spielmodus = new JMenu("Spielmodus");
hilfe = new JMenu("Hilfe");
neuesSpiel = new JMenuItem("Neues Spiel");
beenden = new JMenuItem("Beenden");
ActionListener newGame = new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
neuesSpiel();
}
};
neuesSpiel.addActionListener(newGame);
ActionListener exit = new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
getOptionMsg();
}
};
beenden.addActionListener(exit);
anleitung = new JMenuItem("Anleitung");
anleitung.addActionListener(this);
spielregeln = new JMenuItem("Spielregeln");
spielregeln.addActionListener(this);
spielregeln = new JMenuItem("Spielregeln");
spielregeln.addActionListener(this);
// Andra ENDE
// Menüelemente hinzufügen
menueLeiste.add(datei);
menueLeiste.add(hilfe);
menueLeiste.add(spielmodus);
// Untermenüelemente hinzufügen
datei.add(neuesSpiel);
datei.add(beenden);
hilfe.add(anleitung);
hilfe.add(spielregeln);
// Layout und Größe festlegen
spielfeld.setJMenuBar(menueLeiste);
spielfeld.setSize(new Dimension(600,600));
spielfeld.add(this);
spielfeld.add(panel, BorderLayout.SOUTH);
spielfeld.setVisible(true);
spielregelnText = new JTextArea();
}
public void paintComponent(Graphics g) {
Dimension d = getSize();
offScrImage = createImage(d.width, d.height);
Graphics og = offScrImage.getGraphics();
int xoff = d.width / 8;
int yoff = d.height / 8;
// Zeichnet Muster der schwarzen/weißen Quadrate
for (int c = 0; c < 8; ++c) {
for (int r = 0; r < 8; ++r) {
if ((c + r) % 2 == 0) {
og.setColor(Color.gray);
} else {
og.setColor(Color.white);
}
og.fillRect(xoff * c, yoff * r, xoff, yoff);
/* Zeichne jedes Bild auf Brett */
int nPiece = Brett[r][c];
if (nPiece >= 0) {
og.drawImage(Bild[nPiece], c * xoff, r * yoff, this);
}
}
}
g.drawImage(offScrImage, 0, 0, this.getWidth(), this.getHeight(), this);
}
public void getOptionMsg() // Andra
{
Object[] options = {"Spiel wirklich beenden?"};
int response = JOptionPane.showConfirmDialog(spielfeld, options);
switch (response)
{
case -1:
return;
case 0:
System.exit(0);
break;
case 1:
return;
case 2:
return;
default:
// Bei Fehler
JOptionPane.showMessageDialog(null, "FEHLER ! " + response);
}
}
public void neuesSpiel() // Andra
{
vorname = JOptionPane.showInputDialog(spielfeld,"Bitte gib deinen Namen ein", "Spieler");
getSpielfeld();
zeigeEintrag();
}
private JFrame getSpielfeld() {
return spielfeld;
}
public void zeigeEintrag() // Andra
{
field.setText("Hallo " + vorname);
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
public static void main(String[] args)
{
new Schach();
}
}
und Spielfeld(Figur kommt später)
Java:
package schach;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class Spielfeld implements MouseListener{
static final int BauerS = 0;
static final int TurmS = 1;
static final int SpringerS = 2;
static final int LaeuferS = 3;
static final int DameS = 4;
static final int KoenigS = 5;
static final int BauerW = 6;
static final int TurmW = 7;
static final int SpringerW = 8;
static final int LaeuferW = 9;
static final int DameW = 10;
static final int KoenigW = 11;
int Brett[][];
private Image Bild[];
static final int Leer = -1;
public Image offScrImage;
public void getSpielFeld() {
Spielfeld spielfeld = new Spielfeld();
Bild = new Image[12];
String[] bilder = new String[]{"BauerS","TurmS","SpringerS","LaeuferS","DameS","KoenigS",
"BauerW","TurmW","SpringerW","LaeuferW","DameW","KoenigW"};
for(int i = 0; i < 12; i++) {
Bild[i] = Toolkit.getDefaultToolkit().getImage(getClass().getResource( bilder[i] + ".gif"));
}
// Erstelle Brett mit 8 x 8 = 64 Feldern
Brett = new int[8][8];
for (int i = 0; i < 8; ++i)
for (int j = 0; j < 8; ++j)
// alle Felder sind am Anfang leer...
Brett[i][j] = Leer;
// bis auf:
Brett[0][0] = TurmS; // schwarze Spielfiguren
Brett[0][1] = SpringerS;
Brett[0][2] = LaeuferS;
Brett[0][4] = DameS;
Brett[0][3] = KoenigS;
Brett[0][5] = LaeuferS;
Brett[0][6] = SpringerS;
Brett[0][7] = TurmS;
Brett[1][0] = BauerS;
Brett[1][1] = BauerS;
Brett[1][2] = BauerS;
Brett[1][3] = BauerS;
Brett[1][4] = BauerS;
Brett[1][5] = BauerS;
Brett[1][6] = BauerS;
Brett[1][7] = BauerS;
Brett[7][0] = TurmW; //weiße Spielfiguren
Brett[7][1] = SpringerW;
Brett[7][2] = LaeuferW;
Brett[7][4] = DameW;
Brett[7][3] = KoenigW;
Brett[7][5] = LaeuferW;
Brett[7][6] = SpringerW;
Brett[7][7] = TurmW;
Brett[6][0] = BauerW;
Brett[6][1] = BauerW;
Brett[6][2] = BauerW;
Brett[6][3] = BauerW;
Brett[6][4] = BauerW;
Brett[6][5] = BauerW;
Brett[6][6] = BauerW;
Brett[6][7] = BauerW;
addMouseListener(this);
}
private void addMouseListener(Spielfeld spielfeld) {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
Ich hoffe ihr könnt mir weiterhelfen