Untitled
unknown
plain_text
2 years ago
3.8 kB
4
Indexable
import pygame import random kolor_niebieski = (0, 0, 255) kolor_czerwony = (255, 0, 0) screen = pygame.display.set_mode((1000, 700)) zegar = pygame.time.Clock() grafika_tlo = pygame.image.load('tlo.png') grafika_jablko = pygame.image.load('jablko.png') class Kwadrat(): bok = 50 def __init__(self, kolumna, wiersz, kolor = None, grafika = None): self.kolumna = kolumna self.wiersz = wiersz self.kolor = kolor self.grafika = grafika def polozenie(self): return list([self.kolumna, self.wiersz]) def rysuj(self): print(f"self.grafika = {self.grafika}") if self.grafika == None: pygame.draw.rect(screen, self.kolor, (self.kolumna * self.bok, self.wiersz * self.bok, self.bok, self.bok)) else: screen.blit(self.grafika, (self.kolumna * self.bok, self.wiersz * self.bok, self.bok, self.bok)) class Snake(): def __init__(self): self.dlugosc = 2 self.tablica = [] self.tablica.append(Kwadrat(0, 0, kolor_niebieski)) self.tablica.append(Kwadrat(0, 1, kolor_niebieski)) self.kierunek = [1, 0] self.poprzedni_kierunek = [1, 0] def update(self, jedzenie): nowa_glowa = self.tablica[-1].polozenie() nowa_glowa[0] += self.kierunek[0] nowa_glowa[1] += self.kierunek[1] self.poprzedni_kierunek = self.kierunek if jedzenie.polozenie() == nowa_glowa: print("teraz bede jadl") jedzenie.kolumna = random.randint(0, 19) jedzenie.wiersz = random.randint(0, 13) else: print("teraz nie jem") self.tablica.pop(0) self.tablica.append(Kwadrat(nowa_glowa[0], nowa_glowa[1], kolor_niebieski)) def rysuj(self): for kwadrat in self.tablica: kwadrat.rysuj() class Plansza(): def __init__(self): self.snake = Snake() kolumna = random.randint(0, 19) wiersz = random.randint(0, 13) self.jedzenie = Kwadrat(kolumna, wiersz, None, grafika_jablko) def update(self): glowa = self.snake.tablica[-1].polozenie() 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.tablica) - 1): if glowa == self.snake.tablica[i].polozenie(): print("Zderzenie z samym soba") return -1 self.snake.update(self.jedzenie) def rysuj(self): if self.update() == -1: return -1 self.snake.rysuj() self.jedzenie.rysuj() plansza = Plansza() while 1: # wylacza okienko gry po klijnieciu X'a events = pygame.event.get() for event in events: if event.type == pygame.QUIT: break #obsluga klawiatury if event.type == pygame.KEYDOWN: if event.key == pygame.K_DOWN: if plansza.snake.poprzedni_kierunek != [0, -1]: plansza.snake.kierunek = [0, 1] if event.key == pygame.K_UP: if plansza.snake.poprzedni_kierunek != [0, 1]: plansza.snake.kierunek = [0, -1] if event.key == pygame.K_LEFT: if plansza.snake.poprzedni_kierunek != [1, 0]: plansza.snake.kierunek = [-1, 0] if event.key == pygame.K_RIGHT: if plansza.snake.poprzedni_kierunek != [-1, 0]: plansza.snake.kierunek = [1, 0] screen.blit(grafika_tlo, (0, 0)) if plansza.rysuj() == -1: break pygame.display.update() zegar.tick(2) input()
Editor is loading...