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