import turtle #tuodaan turtle-kirjasto
import random #tuodaan satunnaisluku-kirjasto

#Apumuuttujien esittelyt
screenx = 10  #ruudun x-akselin suuntainen alkuleveys
screeny = 10  #ruudun y-akselin suuntainen alkuleveys

px = 0   #pelaajan alkukoordinaatti x-akselin suhteen
py = -250  #pelaajan alkukoordinaatti y-akselin suhteen

x = 0  #pallon sijainti x-koordinaatin suhteen
y = -200  #pallon sijainti y-koordinaatin suhteen

dx = random.randint(3,8)  #arvotaan muuttujalle dx arvo 3-8 väliltä
dy = random.randint(5,8)  #arvotaan muuttujalle dy arvo 5-8 väliltä

#Pelialueen luominen
wn = turtle.Screen()  #luodaan ikkuna-objekti
wn.title("Brick Breaker")  #ikkunaan otsikko
wn.bgcolor("black")  #ikkunan taustavärin asettaminen
wn.setup(screenx, screeny)  #asetetaan ikkunan koko muuttujien avulla
wn.tracer(2)

tiles1 = []  #luodaan taulukko johon talletetaan 1. rivin tiilet
tiles2 = []  #luodaan taulukko johon talletetaan 2. rivin tiilet
tiles3 = []  #luodaan taulukko johon talletetaan 3. rivin tiilet

tilesholder = [tiles1, tiles2, tiles3]  #luodaan taulukko jonne talletaan rivi-taulukot

for tiles in tilesholder:       #luodaan päätaulukon jokaiseen alkioon 23 kpl objekteja
    for i in range(23):         #luodaan 23 kpl objekteja jokaiseen tiles taulukkoon
        tiles.append(turtle.Turtle())  #append -> lisää uuden alkion listan viimeiseksi

posx = -28    #1. tiilen x-koordinaatin alkuarvo
posy = 150   #1. tiilen y-koordinaatin alkuarvo

for tiles in tilesholder:
    posx = -28
    for tile in tiles:
        tile.speed(0)
        tile.color("red")
        tile.penup()
        tile.shape("square")
        tile.setpos(posx*10, posy)
        posx += 2.5
    posy += 50

#Pelaaja-objektin luominen
player = turtle.Turtle()  #luodaan pelaa-objekti
player.penup()  # nostetaan kynä ilmaan
player.speed(0)  #animaation nopeus
player.color("blue") #asetaan väri
player.shape("square")  #asetetaan objektille muoto
player.shapesize(0.5, 5, 5)  #muokataan alkuperäisen neliön muotoa
player.setpos(px, py)  #asetetaan x- ja y-koordinaatit muuttujien avulla

#Pallo-objektin luominen
ball = turtle.Turtle()  #luodaan pallo-objekti
ball.penup()  #nostetaan kynä ilmaan
ball.speed(0)  #animaation nopeus
ball.color("yellow")  #pallon väri
ball.shape("circle")  #pallon muoto
ball.setpos(x, y)  #asetetaan pallon sijainti muuttujien avulla


#Mailan liikkumiseen tarvittavat funktiot
def right():
    px = player.xcor()
    px += 50
    player.setpos(px, py)

def left():
    px = player.xcor()
    px -= 50
    player.setpos(px, py)

wn.listen()
wn.onkeypress(left, "Left")
wn.onkeypress(right, "Right")

dscreenx = 5
dscreeny = 5

#Pääsilmukka

while True:
    screenx += dscreenx  #kasvatetaan ikkunan x-koordinaatin arvoa
    screeny += dscreeny  #kasvatetaan ikkunan y-koordinaatin arvoa
    if screenx > 600 and screeny > 600:
        dscreenx = 0
        dscreeny = 0

    if ball.xcor() > 280 or ball.xcor() < - 280:
        dx = -dx
    if ball.ycor() > 280 or ball.ycor() < -280:
        dy = -dy

    if ball.xcor() < player.xcor() +70 and ball.xcor() > player.xcor() -70 and ball.ycor() <= player.ycor() + 10:
        dy = -dy
    
    x = ball.xcor()
    x += dx
    y = ball.ycor()
    y += dy
    ball.setpos(int(x), int(y))
    
    wn.setup(screenx, screeny)
    wn.update()






    
