Untitled
unknown
plain_text
2 years ago
5.0 kB
4
Indexable
from turtle import * import keyboard #tracer(False) #speed(5) #hideturtle() gorna_sciana = 400 dolna_sciana = -400 lewa_sciana = -500 prawa_sciana = 500 punkty1 = 0 punkty2 = 0 class Gra: punkty1 = 0 punkty2 = 0 def __init__(self): self.paletka1 = Paletka(-400, 0, 50, 100) self.paletka2 = Paletka(400, 0, 50, 100) self.pilka = Pilka(0, 0, 50, 50) def rysuj(self): self.paletka2.rysuj() self.paletka1.rysuj() self.pilka.rysuj() def AI(self): if self.pilka.y > self.paletka2.y: self.paletka2.do_gory() elif self.pilka.y < self.paletka2.y: self.paletka2.do_dolu() def klawiatura(self): if keyboard.is_pressed('up'): self.paletka1.do_gory() elif keyboard.is_pressed('down'): self.paletka1.do_dolu() def pilka_update(self): a = self.pilka.przesun(self.paletka1, self.paletka2) if a == 1: self.punkty1 += 1 self.pilka = Pilka(0, 0, self.pilka.a, self.pilka.b) self.pilka.kierunek_x *= (-1) elif a == 2: self.punkty2 += 1 self.pilka = Pilka(0, 0, self.pilka.a, self.pilka.b) def loop(self): clear() self.pilka_update() self.rysuj() update() self.klawiatura() self.AI() class Figura: def __init__(self, x, y, a, b): self.x = x self.y = y self.a = a self.b = b def rysuj(self): penup() goto(self.x, self.y) pendown() for i in range(2): fd(self.a) rt(90) fd(self.b) rt(90) class Paletka(Figura): def do_gory(self): if self.y + 1 < gorna_sciana: self.y += 1 def do_dolu(self): if self.y - self.b - 1 > dolna_sciana: self.y -= 1 class Pilka(Figura): kierunek_x = -0.5 kierunek_y = 0.25 def czy_kolizja(self, paletka1, paletka2): # sprawdzenie kolizji z krancami planszy if self.y + self.kierunek_y >= gorna_sciana or self.y - self.b + self.kierunek_y <= dolna_sciana: self.kierunek_y *= (-1) if self.x + self.kierunek_x <= lewa_sciana: return 1 if self.x + self.a + self.kierunek_x >= prawa_sciana: return 2 # sprawdzenie kolizji z paletka1 # sprawdzenie kolizji prawego boku if paletka1.x + paletka1.a >= self.x and paletka1.y >= self.y - self.a and paletka1.y - paletka1.b <= self.y: if abs(paletka1.x + paletka1.a - self.x) <= abs(paletka1.y - (self.y - self.b)) or abs( paletka1.x + paletka1.a - self.x) <= abs(paletka1.y - paletka1.b - self.y): if self.y - self.a/2 > paletka1.y - 40: self.kierunek_y += 0.5 elif self.y - self.a/2 < paletka1.y - 60: self.kierunek_y -= 0.5 self.kierunek_x *= (-1) # sprawdzenie dolu i gory if paletka1.x <= self.x + self.a and paletka1.x + paletka1.a >= self.x and paletka1.y >= self.y - self.a and paletka1.y - paletka1.b <= self.y: if abs(paletka1.x + paletka1.a - self.x) > abs(paletka1.y - (self.y - self.b)) or abs( paletka1.x + paletka1.a - self.x) > abs(paletka1.y - paletka1.b - self.y): self.kierunek_y *= (-1) # sprawdzenie kolizji z paletka2 # sprawdzenie kolizji lewego boku if paletka2.x <= self.x + self.a and paletka2.y >= self.y - self.a and paletka2.y - paletka2.b <= self.y: if abs(paletka2.x - (self.x + self.a)) <= abs(paletka2.y - (self.y - self.b)) or abs( paletka2.x - (self.x + self.a)) <= abs(paletka2.y - paletka2.b - self.y): self.kierunek_x *= (-1) if self.y - self.a/2 > paletka1.y - 40: self.kierunek_y += 0.5 elif self.y - self.a/2 < paletka1.y - 60: self.kierunek_y -= 0.5 # sprawdzenie dolu i gory if paletka2.x >= self.x - self.a and paletka2.x + paletka2.a <= self.x and paletka2.y >= self.y - self.a and paletka2.y - paletka2.b <= self.y: if abs(paletka2.x - (self.x + self.a)) > abs(paletka2.y - (self.y - self.b)) or abs( paletka2.x - self.x) > abs((paletka1.y - paletka1.b) - self.y): self.kierunek_y *= (-1) return None def przesun(self, paletka1, paletka2): a = self.czy_kolizja(paletka1, paletka2) if a != None: return a self.x += self.kierunek_x self.y += self.kierunek_y return None """gra = Gra() while 1: gra.loop() """ write(f'{self.punkty1} : {self.punkty2}', font = ('Arial', 30, 'normal')) input()
Editor is loading...