Člověče nezlob se – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Člověče nezlob se – Java – Fórum – Programujte.comČlověče nezlob se – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Jenda
~ Anonymní uživatel
15 příspěvků
12. 5. 2011   #1
-
0
-

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(){

//}
}

Nahlásit jako SPAM
IP: 146.102.174.–
Reklama
Reklama
nervak0
Věrný člen
13. 5. 2011   #2
-
0
-

Vždyť to skoro máš. S čím si nevíš rady?

Nahlásit jako SPAM
IP: 213.211.51.–
Jenda
~ Anonymní uživatel
15 příspěvků
17. 5. 2011   #3
-
0
-

Jak začít novou hru, jak nadefinovat hráče, jak hejbat s figurkama :D Je toho hodně...

Nahlásit jako SPAM
IP: 146.102.32.–
nervak0
Věrný člen
17. 5. 2011   #4
-
0
-

Hra začíná figurkami v domečku a hodem kostkou.
Každý hráč má figurky, domeček a chlíveček určité barvy.
Figurky se po cestě posunují z aktuálního políčka na políčko o X pozic dále. Na cestě je vstupní a výstupní bod pro domeček a chlíveček.

Hráč háže kostkou a táhne figurkou, po vyčerpání hodů hraje další hráč.
Něco málo pravidel o počtu hodů a možnostech tahu.

Máš něco konkrétního, nebo počkáš další 4 dny, jestli to někdo udělá za tebe?

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 41 hostů

Podobná vlákna

Clovece — založil Tomas

Filtrovanie obsahu cez Selectu — založil JurY088

Java client server — založil Falcon1651

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý