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ć.
- Rejestracja:ponad 12 lat
- Ostatnio:prawie 12 lat
- Postów:16
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
- Rejestracja:ponad 12 lat
- Ostatnio:prawie 12 lat
- Postów:16
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:
- 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. - 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ć?
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
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.