Prosta gra w odnajdywanie

0

Muszę napisać projekt. Chce stworzyć prostą grę. Plansza składająca się z kafelków 8x8, by można je było po ciśnięciu odwrócić. Co mogę użyć? Jakie wzorce projektowe? Jakieś małe przykłady?

0

Chce zrobić "tablice" kafelków, ale nie mogę znaleźć tego w tym tutku. Może ktoś mi wskazać? Mam mało czasu, nie chce gotowca, ale chce dokładnego wskazania palcem gdzie mam szukać dokładnie.

0

Ja bym kafelki umieścił na jakimś panelu z GridLayout(8,8) i w tablicy JPanel[8][8]. Każdy kafelek należałby do klasy dziedziczącej po JPanel i zawierałby dwa obrazki: awers i rewers. Początkowo wyświetlane są awersy, po kliknięciu w kafelek wyświetlany jest rewers.

0

Ok, ale mam problem z stworzeniem samego kafelka. Tzn. algorytm postępowania mam już napisany. Dokładnie wiem co chce napisać, nie wiem tylko czego używać...

0

Coś takiego

class Kafelek extends JPanel
{
    BufferedImage awers = ...
    BufferedImage rewers = ...
    boolean fromFront = true;
    ...
    Kafelek()
    {
         addMouseListener(...);//kliknięcie zmienia wartość zmiennej fromFront i wywołuje repaint()
    }
    ...
    public void paintComponent(Graphics g)
    {
         super.paintComponent(g);
         if(fromFront)
         {
              g.drawImage(awers,0,0,null);
         } 
         else
         {
              g.drawImage(rewers,0,0,null);
         }  
    }
    ...
}
0

http://pastebin.com/wK1EjBai
http://pastebin.com/87q1mj52
Dlaczego to mi nie działa? Dokładnie to chodzi mi o linijkę:

public XOButton(){
        X = new ImageIcon(this.getClass().getResource("X.png"));
        O = new ImageIcon(this.getClass().getResource("O.png"));
        this.addActionListener((ActionListener) this); //ta linijka krzyczy blad
    }
0

Ja się nie dziwię, że kompilator krzyczy. Ta linijka nie ma żadnego sensu.

0

A możesz mi powiedzieć co mam zmienić? Jak to naprawić?
BTW. Chce wybierać wielkość planszy, muszę tworzyć nową klasę, czy można to w już istniejącej umieścić?

0

Skoro ta linijka jest zupełnie bez sensu, to nie potrafię się domyślić co chciałeś osiągnąć. Zatem nie mogę Ci doradzić co masz zmienić.

0

Ok, znalazłem błąd. Wracam do stargo pytania.

0

To znaczy, do którego?

0

No, że jakoś grę muszę zacząć. Więc tworze klase Menu od której się program zaczyna, czy tak jak już tutaj mam kod i tylko dodaje klase Menu?

0

Dodaj do głównego okna JMenuBar albo JToolBar. Przeczytaj jakiś tutorial na temat Swinga, np. ten: http://zetcode.com/gfx/java2d/

0

Raczej chce coś w rodzaju "nowego okna". Tzn. nie nowego, ale by dopiero po wybraniu opcji z menu sie przeniosło. Bo chce mieć możliwość wybrania wielkości planszy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1