Untitled
unknown
plain_text
2 years ago
4.0 kB
4
Indexable
import pygame import random kolor_niebieski = (0, 0, 255) kolor_czerwony = (255, 0, 0) kolor_czarny = (0, 0, 0) screen = pygame.display.set_mode((1000, 700)) zegar = pygame.time.Clock() class Kwadrat(): bok = 50 def __init__(self, kolumna, wiersz, kolor=kolor_czarny): self.kolumna = kolumna self.wiersz = wiersz self.kolor = kolor def rysuj(self): pygame.draw.rect(screen, self.kolor, (self.kolumna * self.bok, self.wiersz * self.bok, self.bok, self.bok)) class Snake(): def __init__(self): self.dlugosc = 2 self.polozenie = [[0, 0], [1, 0]] # przy zmianie dlugosci trzeba tutaj dodać kolejne elementy np [2, 0], [3, 0],[4, 0] dopóki piczba alementów nie będzie taka sama co dlugosc self.kierunek = [1, 0] self.jedzenie = jedzenie() def sprawdzanie(self): for i in range(len(self.polozenie)): if self.jedzenie.miejsce == self.polozenie[i]: self.jedzenie.a = random.randint(0, 13) self.jedzenie.b = random.randint(0, 19) self.jedzenie.miejsce = [[self.jedzenie.a, self.jedzenie.b]] return True return False def update(self): nowa_glowa = list(self.polozenie[-1]) nowa_glowa[0] += self.kierunek[0] nowa_glowa[1] += self.kierunek[1] if [self.jedzenie.a, self.jedzenie.b] == nowa_glowa: self.jedzenie.a = random.randint(0, 13) self.jedzenie.b = random.randint(0, 19) self.jedzenie.miejsce = [[self.jedzenie.a, self.jedzenie.b]] else: self.polozenie.pop(0) self.polozenie.append(nowa_glowa) print(self.jedzenie.b, self.jedzenie.a, nowa_glowa) class jedzenie(): def __init__(self): self.a = random.randint(0, 19) self.b = random.randint(0, 13) self.miejsce = [[self.a, self.b]] class Plansza(): def __init__(self): self.tablica = [] for i in range(14): wiersz = [] for j in range(20): wiersz.append(Kwadrat(j, i)) self.tablica.append(wiersz) self.snake = Snake() def update(self): for i in range(14): for j in range(20): self.tablica[i][j].kolor = kolor_czarny glowa = self.snake.polozenie[-1] if glowa[0] >= 20 or glowa[0] < 0 or glowa[1] >= 14 or glowa[1] < 0: print("!!!!! Uderzenie") return -1 for i in range(len(self.snake.polozenie)): x = self.snake.polozenie[i][0] y = self.snake.polozenie[i][1] self.tablica[y][x].kolor = kolor_niebieski self.tablica[self.snake.jedzenie.a][self.snake.jedzenie.b].kolor = kolor_czerwony self.snake.update() def rysuj(self): if self.update() == -1: return -1 for i in range(14): for j in range(20): self.tablica[i][j].rysuj() plansza = Plansza() # wylacza okienko gry po klijnieciu X'a events = pygame.event.get() for event in events: if event.type == pygame.QUIT: break if event.type == pygame.KEYDOWN: if event.key == pygame.K_DOWN: if plansza.snake.kierunek != [0, -1]: plansza.snake.kierunek = [0, 1] if event.key == pygame.K_UP: if plansza.snake.kierunek != [0, 1]: plansza.snake.kierunek = [0, -1] if event.key == pygame.K_LEFT: if plansza.snake.kierunek != [1, 0]: plansza.snake.kierunek = [-1, 0] if event.key == pygame.K_RIGHT: if plansza.snake.kierunek != [-1, 0]: plansza.snake.kierunek = [1, 0] screen.fill(kolor_czarny) if plansza.rysuj() == -1: break pygame.display.update() zegar.tick(2) input()
Editor is loading...