java swing Tetris pomoc w zaprojektowaniu

0

Witam, chcę napisać grę tetris w javie w swingu. chciałbym prosić o pomysły w zaprojektowaniu jej i tylko zaprojektowaniu ;) gra na pewno będzie oparta o tablice dwu wymiarową wypełnioną odpowiednimi wartościami i za pomocą pętli for będzie plansza gry rysowana. jeżeli chodzi o klocki czyli tetrimino to będą mniejsze tablice 5x5 również z odpowiednimi wartościami. problem mój to pomysł jak wstawić tą mniejszą tablice w główną aby się klocek rysował i poruszał. pozdrawiam i serdecznie proszę o pomysły, nie interesują mnie gotowe kody tylko pomysły, sam chce to zaprogramować.

0

porównując, na dobrą sprawę nie wstawiaj jej wcale, dopiero gdy któraś z krawędzi dotrze do ustawionych już klocków, bądź do samego dołu tetrisa, wtedy dopiero wypełniasz w tym miejscu gdzie się zatrzymała tablica 5x5(a właściwie informacje w niej wypełnione, bo np punkt[0][0] nie musi być wypełniony klockiem) tablicę tą główną odpowiednimi wartościami, 5x5 rysujesz w trakcie poruszania się, ale nie potrzeba tutaj w ogóle łączyć w trakcie ruchu obu tablic

zanim w ogóle się wyświetli tablica to sprawdzasz, czy jest gdzie, czyli porównujesz każdy punkt tablicy 5x5 z miejscem w którym ma się zacząć wyświetlać, tą samą operację wykonujesz w momencie rotacji, czyli sprawdzasz, czy w ogóle taka rotacja jest możliwa

0

w jaki sposób taki klocek rysować w tej tablicy?? chodzi mi o ogólny pomysł nie kod

0

klocki możesz trzymać w tablicy List<Rectangle2D>, dodatkowo klasa Rectangle2D zawiera funkcje sprawdzające kolizję z innymi figurami.

0

dopiero doczytałem, że to ma być tablica dwuwymiarowa. ale po co utrudniac sobie zycie jak sa gotowe klasy?

0

a jak wstawiać klocki czyli mniejsza tablice do pola czyli wiekszej tablicy?? uzywać for-a i zamieniac wartosciami??

0

robisz metodę, która sprawdza czy po poruszeniu się Twojej tablicy 5x5 w prawo, w lewo, bądź w dół nie najadą klocki na narysowane już klocki w oknie tetrisa

pierwszy krok przy rysowaniu nowej figury:

  1. sprawdzasz czy można narysować figurę w oknie tetrisa, czy nie jest wypełnione okno tetrisa tak bardzo, że nie można nawet wstawić wylosowanej figury.
    1a. jeżeli nie da się to koniec gry.
  2. sprawdzasz czy jest możliwość poruszenia się figury w dół jeżeli tak to przesuwasz i powtarzasz krok 2,
    jeżeli nie to wypełniasz tą dużą tablicę dwuwymiarową wartościami z tablicy 5x5 i przechodzisz do kroku 1.

jak porównywać?

user image
co oznaczają cyferki 1,2?
1 - np kolor niebieski, będący częścią figury 4x1
2 - np kolor czerwony, będący częścią tej figury "z zakrętem na końcu"
lewy dolny punkt tablicy 5x5 licząc od dołu to (2,6) - napisałem na obrazku odwrotnie;p
więc porównujesz pkt głównej tablicy(2,5) z pkt(0,0)-licząc od dołu z tablicy 5x5 jeżeli chcesz poruszyć figurą w dół, jeżeli jest to sprawdzanie czy można nową figurę wstawić to porównujesz z punktem w którym ma być wstawiona
następnie robisz porównanie (3,5) z (1,0) i tak dwoma forami przelatujesz całą tablicę 5x5
wszystkie nie wypełnione pola wypełniasz np zerami, więc przy porównaniu masz if(tab1[1][0]>0&&tab2[2][5]>0)
jeżeli zwróci true to wypełniasz wszystkimi tab1>0 tab2, uwzględniając położenie, więc tab2[2][6]=tab[1][0], itd
jak wyświetlasz? przy przerysowaniu całości wyświetlasz wszystko to co jest większe od zera w tablicy tej dużej i wszystko to co jest większe od zera w tablicy małej uwzględniając znowu położenie małej, czyli pkt małej[0][0] wyświetlany jest w miejscu dużej(2,6), bez wypełniania dużej

nie wiem, czy w miarę klarownie to opisałem, zadaj jakieś dokładniejsze pytanie

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