Warcaby ruch piona za pomocą myszy.

Warcaby ruch piona za pomocą myszy.
diasdj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Witam wszystkich.
Próbuję napisać grę w warcaby. Planszę oraz pionki przetrzymuje w osobnych dwuwymiarowych tablicach.
Reprezentacja wygląda tak: [1,0,1,0,1,0,1,0] gdzie jedynką jest u mnie czarny kwadrat 30px, zero to kwadrat biały (mam 8 takich wektorów dla wszystkich 64 pól). Druga tablica zawierająca pionki wygląda podobnie: liczby 3,4,5 oznaczają kolejno jest pionek bialy ,jest pionek czarny, nie ma żadnego pionka.

Zupełnie nie wiem jak rozwiązać problem obsługi myszy. Chciałbym to zrobić tak, żeby zaznaczyć piona i później pole na które powinien wskoczyć.

Mój tok rozumowania: pobieram współrzędne wciśnięcia przycisku i kojarzę to w jakiś sposób z tablicą w której przechowuje położenia pionów. Później ewentualnie robię przesunięcie w tablicy i przerysuje plansze. Z tym, że nie mam niestety pomysłu jak to zrobić.

Może ma ktoś pomysł jak mógłbym to rozwiązać?
Bardzo proszę o ukierunkowanie, małą pomoc.

  • Rejestracja: dni
  • Ostatnio: dni
1

Jeśli pola mają tę samą wielkość można to chyba zrobic zwykłym dzieleniem

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

Po co dzielić? Zdarzenie myszy MouseEvent zawiera przecież informację w co kliknięto.

diasdj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Dobrze, jestem w stanie otrzymać współrzędne. Jak powiązać to z indeksami z tablicy położeń pionków?

KK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
0
bogdans napisał(a):

Po co dzielić? Zdarzenie myszy MouseEvent zawiera przecież informację w co kliknięto.

O to nie wiedziałem. A jak to uzyskać i w jakiej formie podaje informacje? ;)

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
me.getSource();

Pola powinny być pamiętane w dwuwymiarowej tablicy JButton[][] lub JPanel[][].

diasdj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Po wcisnięciu na piona otrzymuję już jego współrzędne w tablicy. Mam również współrzędne tablicy pola na który będzie wykonywany ruch. Zamieniam je miejscami w tablicy pionów.
i próbuję ją na nowo przerysować. Niestety mam problem, nic sie nie przerysowywuje. Bardzo bym prosił o pomoc. Swoje wypociny wrzuciłem na gita https://github.com/diasdj/Warcaby?source=c

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
1

Usuń pole rysujPoRuchu (i dwie instrukcje, które z niego korzystają).

diasdj
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Rzeczywiście działa :) Dziekuję bardzo.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.