2026. június 15., hétfő

Biliárdasztal pythonban

A biliárdasztal megrajzolásához. A program létrehozza az asztal zöld posztóját, a falakat, a lyukakat és a kezdő háromszögben elhelyezett golyókat is.
-----------
import turtle
import math

# Beállítások
ablak = turtle.Screen()
ablak.title("Biliárdasztal Python-nal")
ablak.bgcolor("black")
ablak.setup(width=900, height=550)

# Rajzoló teknőc
t = turtle.Turtle()
t.speed(0)
t.hideturtle()

# Asztal pozíciója és méretei
asztal_szelesseg = 700
asztal_magassag = 350
x_kezdo = -asztal_szelesseg / 2
y_kezdo = asztal_magassag / 2

# 1. Asztal posztó
t.penup()
t.goto(x_kezdo, y_kezdo)
t.pendown()
t.color("#0E5E24") # Sötétzöld posztó szín
t.begin_fill()
for _ in range(2):
    t.forward(asztal_szelesseg)
    t.right(90)
    t.forward(asztal_magassag)
    t.right(90)
t.end_fill()

# 2. Asztal keret és lyukak rajzolása
t.color("#5C3A21") # Fa keret színe
vastagsag = 30
t.penup()
t.goto(x_kezdo - vastagsag, y_kezdo + vastagsag)
t.pendown()
t.begin_fill()
for _ in range(2):
    t.forward(asztal_szelesseg + (2 * vastagsag))
    t.right(90)
    t.forward(asztal_magassag + (2 * vastagsag))
    t.right(90)
t.end_fill()

# Lyukak (fekete körök a 4 sarokban és oldalt)
lyuk_sugar = 20
lyukak_pozicioi = [
    (x_kezdo, y_kezdo), (x_kezdo + asztal_szelesseg/2, y_kezdo), (x_kezdo + asztal_szelesseg, y_kezdo),
    (x_kezdo, y_kezdo - asztal_magassag), (x_kezdo + asztal_szelesseg/2, y_kezdo - asztal_magassag), (x_kezdo + asztal_szelesseg, y_kezdo - asztal_magassag)
]

for x, y in lyukak_pozicioi:
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.color("black")
    t.begin_fill()
    t.circle(lyuk_sugar)
    t.end_fill()

# 3. Golyók lerakása a jobb oldalon
golyo_sugar = 10
golyo_szinek = ["yellow", "blue", "red", "purple", "orange", "green", "brown", "black"]

# Háromszög csúcsának koordinátái
csucs_x = x_kezdo + (asztal_szelesseg * 0.75)
csucs_y = y_kezdo - (asztal_magassag / 2)

sorok = 5
kezdo_tav = 2.5 * golyo_sugar

for sor in range(sorok):
    sor_x = csucs_x + (sor * golyo_sugar * math.sqrt(3))
    sor_kezdo_y = csucs_y - (sor * golyo_sugar)
    for i in range(sor + 1):
        t.penup()
        t.goto(sor_x, sor_kezdo_y + (i * 2 * golyo_sugar))
        t.pendown()
        
        # Véletlenszerű szín választása a golyóknak
        idx = (sor + i) % len(golyo_szinek)
        t.color(golyo_szinek[idx])
        
        t.begin_fill()
        t.circle(golyo_sugar)
        t.end_fill()

# Fehér golyó a bal oldalon (kezdő golyó)
t.penup()
t.goto(x_kezdo + (asztal_szelesseg * 0.25), y_kezdo - (asztal_magassag / 2))
t.pendown()
t.color("white")
t.begin_fill()
t.circle(golyo_sugar)
t.end_fill()

# Az ablak nyitva tartása
turtle.done()
------------


Nincsenek megjegyzések:

Megjegyzés küldése