Untitled
unknown
plain_text
2 years ago
4.0 kB
7
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...