Tetris w Pythonie

0

Cześć. Jest to mój pierwszy projekt wrzucony na GitHub i nie mam pojęcia na czym to polega. W każdym razie wydaje mi się, że można już pobrać pliki więc proszę o ocene kodu jak i gry. Użyłem bliblioteki PyGame.

https://github.com/nitroexe/tetris

0

z czego uczyles sie Pythona?

0

Tworząc różne projekty. Nie czytałem żadnej konkretniej książki czy tutoriala.

0

Jak na Pythona to za długi kod tego Tetrisa. Zobacz sobie np. http://joel-murielle.perso.sfr.fr/BCTetris.py :)

0

Nie mam pythona 2 ale zakładam, że jest to bardzo okrojona wersja tetrisa, ja chce stworzyć grę z większymi możliwościami i jak najbardziej czytelną. Mam też jedno pytanie, jak wyglądałby testy do tego kodu co zrobiłem? Każda funkcja, którą stowrzyłem powinna mieć test?

0

Nie jestem specem od pythona i chyba nie mam na tyle skilla żeby odpalić tą grę :C

a3ad1eecb6.png

1
        elif block_type == 2:
            if self.block_rotation == 0:
                new = (a - 11, b, c + 11, d + 22)
                block_rotation = 1
            elif self.block_rotation == 1:
                new = (a + 11, b, c - 11, d - 22)
                block_rotation = 0
        elif block_type == 3:
            if self.block_rotation == 0:
                new = (a - 11, b, c - 13, d - 2)
                block_rotation = 1
            elif self.block_rotation == 1:
                new = (a + 11, b, c + 13, d + 2)
                block_rotation = 0
        elif block_type == 4:
            if self.block_rotation == 0:
                new = (a + 2, b - 11, c, d + 11)
                block_rotation = 1
            elif self.block_rotation == 1:
                new = (a + 24, b + 13, c, d - 13)
                block_rotation = 2
            elif self.block_rotation == 2:
                new = (a - 2, b + 11, c, d - 11)
                block_rotation = 3
            elif self.block_rotation == 3:
                new = (a - 24, b - 13, c, d + 13)
                block_rotation = 0
        elif block_type == 5:
            if self.block_rotation == 0:
                new = (a - 11, b, c + 11, d - 24)
                block_rotation = 1
            elif self.block_rotation == 1:
                new = (a + 13, b, c - 13, d + 2)
                block_rotation = 2
            elif self.block_rotation == 2:
                new = (a + 11, b, c - 11, d + 24)
                block_rotation = 3
            elif self.block_rotation == 3:
                new = (a - 13, b, c + 13, d - 2)
                block_rotation = 0
        elif block_type == 6:
            if self.block_rotation == 0:
                new = (a + 13, b - 11, c, d + 11)
                block_rotation = 1
            elif self.block_rotation == 1:
                new = (a + 11, b + 13, c, d - 13)
                block_rotation = 2
            elif self.block_rotation == 2:
                new = (a - 13, b + 11, c, d - 11)
                block_rotation = 3
            elif self.block_rotation == 3:
                new = (a - 11, b - 13, c, d + 13)
                block_rotation = 0
        elif block_type == 7:
            if self.block_rotation == 0:
                new = (a, b + 11, c - 24, d - 13)
                block_rotation = 1

Chyba nie wypiłem jeszcze tyle, żeby dochodzić do czego to służy i co to robi.

0

Wg mnie odrobina komentarzy w kodzie by nie zaszkodziła ;)

0

@anonimowy masakra, ale zebyś sam sobie to uświadomił wprowadź małe modyfikacje:

  • plansza NxM gdzie N i M są ustalane przy uruchomieniu programu.
  • liczba kolorów klocków zadawana przy uruchomieniu programu, powiedzmy w zakresie 1-100000 kolorów.
    To żeby oduczyć cię hardkodowania wartości i robienia drabinek ifów.
  • wysokość/szerokość klocków zadawana parametrami P i K przy starcie programu, żeby nie było tak, że zrobię planszę 1000x1000 i będę ją układał z mega małych klocków przez pół dnia. Niech się klocki odpowiednio skalują. Najlepiej by było jakby klocki w ogóle się generowały losowo, ale wtedy gra mogłaby być za trudna.
0

@Shalom
Ale to ma być normalny tetris. Nie chce wprowadzać takich modyfikacji.

@n0name_l
Gdy gracz chce obrócic blok to w zależności od bloku (block_type) i akutalnej rotacji zmienia pozycje jego kwadratów tworząc blok w innej pozycji.

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