Zdravím... potřeboval bych pomoct... sem amatér a mám naprogramovat tuto hru... tak trochu sem začal ale nevím si rady co dál... nechtěl by se někdo přidat a pomoct mi :) tady je zatím to co mám... chce to posunovat figurky atd atd... :)
public class Gui {
private JFrame hlavniOknoFrame;
private JButton tlacitko1;
private JButton tlacitko2;
private JMenuBar listaMenuBar;
private JMenu souborMenu;
private JMenu souborZobrazit;
private JMenu napovedaMenu;
private JMenuItem pravidlaMenuItem;
private JMenuItem novaHra;
private JMenuItem konecHry;
private JMenuItem oProgramuMenuItem;
private HraciDeska hraciDeska;
private OknoSPravidly oknoSPravidly;
private JDialog hraciDeskaDialog;
private Vysledky zobrazVysledky;
private JMenuItem zobrazitVysledky;
private JLabel hozenoKostkou;
private JButton tlacitko3;
private HerniSystem herniSystem;
private Checkbox zaskrtavatko1;
private Checkbox zaskrtavatko2;
private Checkbox zaskrtavatko3;
private Checkbox zaskrtavatko4;
/**
* Konstruktor, ktery propojí grafiku a logiku, inicializuje grafické komponenty
* @return
* @ param hra logika
*/
public Gui( HerniSystem herniSystem) {
this.herniSystem = herniSystem;
initMenu();
init();
}
private void initMenu () {
listaMenuBar = new JMenuBar();
//menu Hra
souborMenu = new JMenu("Hra");
souborMenu.setMnemonic(KeyEvent.VK_S);
listaMenuBar.add(souborMenu);
//menu Mapoveda
napovedaMenu = new JMenu("Napoveda");
listaMenuBar.add(napovedaMenu);
//menu Zobrazit
souborZobrazit = new JMenu("Zobrazit");
souborMenu.setMnemonic(KeyEvent.VK_Z);
listaMenuBar.add(souborZobrazit);
//nova hra
novaHra = new JMenuItem("Nova hra");
novaHra.setAccelerator(KeyStroke.getKeyStroke("ctrl N"));
souborMenu.add(novaHra);
//rozdelovac
souborMenu.addSeparator();
//ukonceni hry
konecHry = new JMenuItem("Konec hry");
konecHry.setAccelerator(KeyStroke.getKeyStroke("ctrl Q"));
konecHry.addActionListener(new KonecHry());
souborMenu.add(konecHry);
//pravidla hry
pravidlaMenuItem = new JMenuItem("Pravidla hry");
pravidlaMenuItem.addActionListener(new Pravidla());
pravidlaMenuItem.setAccelerator(KeyStroke.getKeyStroke("ctrl P"));
napovedaMenu.add(pravidlaMenuItem);
//o programu
oProgramuMenuItem = new JMenuItem("O programu");
oProgramuMenuItem.addActionListener(new OProgramu());
oProgramuMenuItem.setAccelerator(KeyStroke.getKeyStroke("ctrl O"));
souborZobrazit.add(oProgramuMenuItem);
//rozdelovac
souborZobrazit.addSeparator();
//zobrazeni vysledku
zobrazitVysledky = new JMenuItem("Vysledky");
zobrazitVysledky.setAccelerator(KeyStroke.getKeyStroke("ctrl L"));
zobrazitVysledky.addActionListener(new ZobrazeniVysledku());
souborZobrazit.add(zobrazitVysledky);
}
/**
* Metoda inicializuje a propojuje jednotlive komponenty GUI
*/
private void init() {
hlavniOknoFrame = new JFrame();
hlavniOknoFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
hlavniOknoFrame.setTitle("Clovece");
hlavniOknoFrame.setLayout(new GridLayout(2, 1));
hlavniOknoFrame.setSize(500,250);
hlavniOknoFrame.setJMenuBar(listaMenuBar);
// okno s hrací deskou
hraciDeska = new HraciDeska();
hraciDeskaDialog = new JDialog();
hraciDeskaDialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
hraciDeskaDialog.setTitle("Hrací deska");
hraciDeskaDialog.add(hraciDeska, BorderLayout.CENTER);
hraciDeskaDialog.setLocation(400,200);
hraciDeskaDialog.pack();
hraciDeskaDialog.setVisible(true);
//tlacitko1
tlacitko1 = new JButton();
tlacitko1.setText("Hodit kostku");
tlacitko1.addActionListener(new HodKostkou());
hlavniOknoFrame.add(tlacitko1);
//tlacitko2
tlacitko2 = new JButton();
tlacitko2.setText("Posuň figurku");
tlacitko2.addActionListener(new PosunFigurku());
hlavniOknoFrame.add(tlacitko2);
//JLabel
hozenoKostkou = new JLabel();
hozenoKostkou.setText("0");
hlavniOknoFrame.add(hozenoKostkou);
//tlacitko3
tlacitko3 = new JButton();
tlacitko3.setText("Další figurka");
//tlacitko3.setFont(Font());
hlavniOknoFrame.add(tlacitko3);
//zaskrtavatko zluty
zaskrtavatko1 = new Checkbox("Zluty");
hlavniOknoFrame.add(zaskrtavatko1);
//zaskrtavatko cerveny
zaskrtavatko2 = new Checkbox("Cerveny");
hlavniOknoFrame.add(zaskrtavatko2);
//zaskrtavatko zeleny
zaskrtavatko3 = new Checkbox("Zeleny");
hlavniOknoFrame.add(zaskrtavatko3);
//zaskrtavatko modry
zaskrtavatko4 = new Checkbox("Modry");
hlavniOknoFrame.add(zaskrtavatko4);
}
/**
* Metoda, která zviditelnuje GUI
* @param viditelnost GUI
*/
public void setVisible(boolean viditelnost) {
hlavniOknoFrame.setVisible(viditelnost);
}
/*
* Třída která volá informace o programu z menu
*/
private class OProgramu implements ActionListener {
public void actionPerformed(ActionEvent evt) {
JOptionPane.showMessageDialog(null,
"<html><body><h2>Hra Člověče nezlob se<h2>" +
"<p><i>Verze: duben 2011</i></p>" +
"</body></html>");
}
}
/*
* Zpracovani jednotlivych prikazu a zapis do logu
*/
public void zpracujPrikaz(String radek) {
FileWriter vystupZn = null;
try {
vystupZn = new FileWriter("vysledky.txt", true);
} catch (IOException ex) {
System.out.println("Chyba pri zapisu");
}
}
/*
* Ukonceni hry
*/
private class KonecHry implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
/*
* Třída která volá vysledky z menu
*/
private class ZobrazeniVysledku implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
zobrazVysledky = new Vysledky("/zdroje/vysledky.txt");
zobrazVysledky.setVisible(true);
}
}
/*
* Třída která volá pravidla hry z menu
*/
private class Pravidla implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
oknoSPravidly = new OknoSPravidly("/zdroje/Pravidla.txt");
oknoSPravidly.setVisible(true);
}
}
/*
* Třída která tiskne tlacitko
*/
private class PosunFigurku implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
hraciDeska.posunObrazekFigurky(0, 1);
//hraciDeska.paintAll();
//hraciDeskaDialog.setLocation(200,400);
hraciDeskaDialog.pack();
hraciDeskaDialog.setVisible(true);
}
}
private class HodKostkou implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
int hozeno = herniSystem.hodKostkou();
hozenoKostkou.setText(String.valueOf(hozeno));
}
}
}
_______________________
public class HraciDeska extends JComponent{
/**
* Datové atributy
*/
private Dimension[] body;
private Icon deska;
private Graphics g;
protected void paintComponent(Graphics g) {
this.g = g;
super.paintComponent(g);
if (deska != null) {
deska.paintIcon(this, g, 0, 0);
//zdne se urcuje tvar a size bodu
g.setColor(Color.RED);
for(int i=0; i<4; i++)
g.fillOval(body[i].width, body[i].height, 23, 23);
g.setColor(Color.GREEN);
for(int i=4; i<8; i++)
g.fillOval(body[i].width, body[i].height, 23, 23);
g.setColor(Color.BLUE);
for(int i=8; i<12; i++)
g.fillOval(body[i].width, body[i].height, 23, 23);
g.setColor(Color.YELLOW);
for(int i=12; i<16; i++)
g.fillOval(body[i].width, body[i].height, 23, 23);
g.setColor(Color.BLACK);
for(int i=16; i<100; i++)
g.fillOval(body[i].width, body[i].height, 5, 5);
}
}
/**
* Konstruktor, který zobrazí hrací desku a upozorní hráče
*/
public HraciDeska() {
body = new Dimension[100];
for(int i=0; i<100; i++)
body[i] = new Dimension();
body[0].setSize(27, 594);
body[1].setSize(27, 594);
body[2].setSize(65, 545);
body[3].setSize(65, 594);
body[4].setSize(27, 500);
body[5].setSize(27, 450);
body[6].setSize(100, 450);
body[7].setSize(100, 500);
body[8].setSize(550, 500);
body[9].setSize(500, 500);
body[10].setSize(550, 450);
body[11].setSize(500, 450);
body[12].setSize(29, 15);
body[13].setSize(29, 50);
body[14].setSize(100, 15);
body[15].setSize(100, 50);
body[16].setSize(10, 50);
body[17].setSize(10, 100);
URL cestaKPlanku = this.getClass().getResource("/zdroje/deska.jpg");
if (cestaKPlanku == null) {
JOptionPane.showMessageDialog(null, "Obrázek nenalezen nenalezen", "Chyba pri nacitani planku", JOptionPane.ERROR_MESSAGE);
this.setPreferredSize(new Dimension(100,100));
}
else {
deska = new ImageIcon(cestaKPlanku);
this.setPreferredSize(new Dimension(deska.getIconWidth(),deska.getIconHeight()));
}
}
public void posunObrazekFigurky(int id, int kam) {
body[0].setSize(200,200);
body[15].setSize(0,0);
paintComponent(g);
}
}
______________________
public class HerniSystem {
int[] poziceFigurek;
int hraje;
int pocetHracu;
public HerniSystem () {
hraje = 0;
pocetHracu = 4;
poziceFigurek = new int[16];
for (int i=0; i<16; i++)
poziceFigurek[i]=-1;
}
public int hodKostkou() {
Random random = new Random();
int hozeno = random.nextInt();
if (hozeno<0) hozeno*=-1;
hozeno = hozeno % 6 + 1;
return hozeno;
}
// private int posunFigurku(){
//}
}
Příspěvky odeslané z IP adresy 146.102.174.–
Jenda