Code cây thông Noel bằng Python – Merry Christmas Python

Một giáng sinh an lành đang đến, là Coder bạn có thể tự thiết kế cho mình Noel bằng Python để tăng bạn bè hoặc người thân. Nếu bạn không có thời gian, có thể dùng các Code sưu tầm dưới đây. Mỗi Code Python Noel có một thiết kế riêng nhưng đều mang đặc điểm chung là có cây thông Noel với tuyết rơi.

Code cây thông Noel bằng Python sẽ sử dụng thư viện Turtle để vẽ, do đó bạn cần import Turtle vào nhé.

Nếu bạn vẫn chưa biết sử dụng Python hãy đọc Seri bài viết về Python trên AnonyViet để có kiến thức nền nhé. Sau đó bạn dễ dàng thực thi các Code python Merry Christmas bên dưới:

Vẽ cây thông Noel với vòng lặp For

Với kiến thức Python cơ bản, bạn có thể vẽ cây thông Noel với vòng lặp For cực kỳ đơn giản. Đây là Full Code:

# Function to draw a Christmas tree with a given height
def draw_tree(height):
  # Loop through each row of the tree
  for i in range(1, height + 1):
    # Print the spaces before the asterisks on each row
    for j in range(height - i):
      print(" ", end="")
    # Print the asterisks on each row
    for j in range(2 * i - 1):
      print("*", end="")
    # Move to the next line
    print()
# Call the function to draw a tree with a height of 5
draw_tree(5)

Ở dòng cuối chỗ: draw_tree(5), thay số 5 thành số khác để thay đổi chiều cao của cây thông Noel bằng Python nhé.

Kết quả nè:

    *
   ***
  *****
 *******
*********

Code python cây thông Noel với bầu trời đầy sao

code cay thong noel python

from turtle import *
from random import randint


def create_rectangle(turtle, color, x, y, width, height):
    turtle.penup()
    turtle.color(color)
    turtle.fillcolor(color)
    turtle.goto(x, y)
    turtle.pendown()
    turtle.begin_fill()

    turtle.forward(width)
    turtle.left(90)
    turtle.forward(height)
    turtle.left(90)
    turtle.forward(width)
    turtle.left(90)
    turtle.forward(height)
    turtle.left(90)

    # fill the above shape
    turtle.end_fill()
    # Reset the orientation of the turtle
    turtle.setheading(0)


def create_circle(turtle, x, y, radius, color):
    oogway.penup()
    oogway.color(color)
    oogway.fillcolor(color)
    oogway.goto(x, y)
    oogway.pendown()
    oogway.begin_fill()
    oogway.circle(radius)
    oogway.end_fill()


BG_COLOR = "#0080ff"

oogway = Turtle()
# set turtle speed
oogway.speed(2)
screen = oogway.getscreen()
# set background color
screen.bgcolor(BG_COLOR)
# set tile of screen
screen.title("Merry Christmas")
# maximize the screen
screen.setup(width=1.0, height=1.0)

y = -100
# create tree trunk
create_rectangle(oogway, "red", -15, y-60, 30, 60)

# create tree
width = 240
oogway.speed(10)
while width > 10:
    width = width - 10
    height = 10
    x = 0 - width/2
    create_rectangle(oogway, "green", x, y, width, height)
    y = y + height

# create a star a top of tree
oogway.speed(1)
oogway.penup()
oogway.color('yellow')
oogway.goto(-20, y+10)
oogway.begin_fill()
oogway.pendown()
for i in range(5):
    oogway.forward(40)
    oogway.right(144)
oogway.end_fill()

tree_height = y + 40

# create moon in sky
# create a full circle
create_circle(oogway, 230, 180, 60, "white")
# overlap with full circle of BG color to make a crescent shape
create_circle(oogway, 220, 180, 60, BG_COLOR)

# now add few stars in sky
oogway.speed(10)
number_of_stars = randint(20,30)
# print(number_of_stars)
for _ in range(0,number_of_stars):
    x_star = randint(-(screen.window_width()//2),screen.window_width()//2)
    y_star = randint(tree_height, screen.window_height()//2)
    size = randint(5,20)
    oogway.penup()
    oogway.color('white')
    oogway.goto(x_star, y_star)
    oogway.begin_fill()
    oogway.pendown()
    for i in range(5):
        oogway.forward(size)
        oogway.right(144)
    oogway.end_fill()

# print greeting message
oogway.speed(1)
oogway.penup()
msg = "Merry Christmas em iuuuuuuuu"
oogway.goto(0, -200)  # y is in minus because tree trunk was below x axis
oogway.color("white")
oogway.pendown()
oogway.write(msg, move=False, align="center", font=("Arial", 15, "bold"))

oogway.hideturtle()
screen.mainloop()

 Thiệp Giáng sinh người tuyết bằng Python

Code này sẽ vẽ người tuyết và có tuyết rơi với dòng chữ tùy ý. Bạn có thể dùng công cụ soạn thảo Python để đổi lại tên của mình theo ý muốn. Hãy convert python ra exe và gửi cho crush chắc hẵn người ấy sẽ rất yêu bạn đấy.

code thiep noel python

import turtle
import random
import time

width = height = 500

window = turtle.Screen()
window.setup(width, height)
window.bgcolor("sky blue")
window.title("Happy Holidays")

snowball_rate = 1, 3
snowball_size = 5, 15
wind_change = 1, 5
max_wind = 3


# Create all circle-shaped objects
def make_circle(turtle_name, x, y, size, colour):
    turtle_name.color(colour)
    turtle_name.penup()
    turtle_name.setposition(x, y)
    turtle_name.dot(size)


# Create new snowballs and store in list
list_of_snowballs = []


def make_snowball():
    snowball = turtle.Turtle()
    snowball.color("white")
    snowball.penup()
    snowball.setposition(random.randint(-2 * width, width / 2), height / 2)
    snowball.hideturtle()
    snowball.size = random.randint(*snowball_size)
    list_of_snowballs.append(snowball)


def move_snowball(turtle_name, falling_speed=1, wind=0):
    turtle_name.clear()
    turtle_name.sety(turtle_name.ycor() - falling_speed)
    if wind:
        turtle_name.setx(turtle_name.xcor() + wind)
    turtle_name.dot(turtle_name.size)


# Snowman: body
snowman = turtle.Turtle()
x_position = 0
y_positions = 75, 0, -100
size = 75
for y in y_positions:
    make_circle(snowman, x_position, y, size, "white")
    size = size * 1.5

# Snowman: buttons
button_seperation = 25
button_y_positions = [y_positions[1] - button_seperation,
                      y_positions[1],
                      y_positions[1] + button_seperation]
for y in button_y_positions:
    make_circle(snowman, x_position, y, 10, "black")

# Snowman: eyes
y_offset = 10
x_seperation = 15
for x in x_position - x_seperation, x_position + x_seperation:
    make_circle(snowman, x, y_positions[0] + y_offset, 20, "green")
    make_circle(snowman, x, y_positions[0] + y_offset, 10, "black")

# Snowman: nose
snowman.color("orange")
snowman.setposition(x_position - 10, y_positions[0] - y_offset)
snowman.shape("triangle")
snowman.setheading(200)
snowman.turtlesize(0.5, 2.5)

window.tracer(0)

# Ground
grass = turtle.Turtle()
grass.fillcolor("forest green")
grass.penup()
grass.setposition(-width / 2, -height / 2)
grass.begin_fill()
for _ in range(2):
    grass.forward(width)
    grass.left(90)
    grass.forward(70)
    grass.left(90)
grass.end_fill()

ground = turtle.Turtle()
for x in range(int(-width / 2), int(width / 2), int(width / 200)):
    make_circle(ground, x, -180, random.randint(5, 20), "white")

text = turtle.Turtle()
text.color("red")
text.penup()
text.setposition(-100, 170)
#chữ thứ 1
text.write("Happy Holidays", font=("Apple Chancery", 30, "bold"), align="center")
text.setposition(130, 140)
text.color("dark green")
#chữ thứ 3
text.write("AnonyViet", font=("Avenir", 30, "bold"), align="right")
text.color("black")
#chữ thứ 4
text.write(".com", font=("Avenir", 30, "normal"), align="left")
text.setx(50)
#chữ thứ 2
text.write("from", font=("Apple Chancery", 20, "bold"), align="right")
text.hideturtle()

time_delay = 0
start_time = time.time()
wind = 0
wind_delay = 5
wind_timer = time.time()
wind_step = 0.1
while True:
    if time.time() - start_time > time_delay:
        make_snowball()
        start_time = time.time()
        time_delay = random.randint(*snowball_rate) / 10

    for snowball in list_of_snowballs:
        move_snowball(snowball, wind=wind)
        if snowball.ycor() < -height / 2:
            snowball.clear()
            list_of_snowballs.remove(snowball)

    if time.time() - wind_timer > wind_delay:
        wind += wind_step
        if wind >= max_wind:
            wind_step = -wind_step
        elif wind <= 0:
            wind_step = abs(wind_step)

        wind_timer = time.time()
        wind_delay = random.randint(*wind_change) / 10

    window.update()

turtle.done()

Code Python cây thông nodel có tuyết rơi

Code Python bên dươi sẽ vẽ một cây thông Noel với các đèn xunh quanh và hiệu ứng tuyết rơi. Bạn cũng có thể thay đổi các dòng chữ trong hình thành chữ mình thích để gửi cho bạn bè và người nhân dịp giáng sinh.

code python merry christmas

import turtle
import random

web_based = True
# web_based = False

if web_based:
    i_scale = 1.5
    snow_size = 4
    snow_speed = 3
    draw_speed = 10
    rate_of_snow_balls = 6
else:
    i_scale = 1
    snow_size = 7
    snow_speed = 2
    draw_speed = 10
    rate_of_snow_balls = 2

width = 600 / i_scale
height = 600 / i_scale

screen = turtle.Screen()
if not web_based:
    screen.setup(width, height)
    screen.title("Happy Christmas from AnonyViet")


# screen.tracer(0)


def make_triangle(x, y, size, outline, triangle):
    triangle.hideturtle()
    triangle.penup()
    triangle.setposition(x, y)
    triangle.pensize(3)
    if outline:
        triangle.pendown()
    if not outline:
        triangle.fillcolor("forest green")
        triangle.begin_fill()
    triangle.setposition(x + size, y - size)
    triangle.setposition(x - size, y - size)
    triangle.setposition(x, y)
    if not outline:
        triangle.end_fill()


def make_ball(x, y, size, colour, ball):
    ball.hideturtle()
    ball.penup()
    ball.setposition(x, y)
    ball.color(colour)
    ball.dot(size)


def move_snow(snow):
    position = snow.position()
    snow.clear()
    make_ball(position[0], position[1] - snow_speed, snow_size, "white", snow)


def snow_fall():
    rand_make_snow = random.randint(0, rate_of_snow_balls)
    if rand_make_snow == 0:
        snow = turtle.Turtle()
        snow.hideturtle()
        snow.penup()
        list_of_snow.append(snow)
        make_ball(random.randint(-width / 2, width / 2), width / 2, snow_size,
                  "white", snow)
    for snow in list_of_snow:
        move_snow(snow)
        if snow.position()[1] <= -width / 2:
            snow.clear()
            list_of_snow.remove(snow)
            del snow
    screen.update()


# make tree (main part)
triangle_1 = turtle.Turtle()
triangle_1.speed(draw_speed)
outline = True
for repeat in range(2):
    make_triangle(0, width / 3, width / 6, outline, triangle_1)
    make_triangle(0, width / 4, width / 4, outline, triangle_1)
    make_triangle(0, width / 8, width / 3, outline, triangle_1)
    outline = False

screen.tracer(0)
stem = turtle.Turtle()
# white snowy ground
stem.penup()
stem.hideturtle()
stem.setposition(-width, -width / 3)
stem.color("white")
stem.begin_fill()
stem.setposition(width, -width / 3)
stem.setposition(width, -width / 2)
stem.setposition(-width, -width / 2)
stem.end_fill()
screen.update()

# tree stem
stem.color("brown")
stem.setposition(-width / 30, -width / 4.8)
screen.tracer(1)
stem.pendown()
stem.begin_fill()
stem.setposition(width / 30, -width / 4.8)
stem.setposition(width / 30, -3 * width / 8)
stem.setposition(-width / 30, -3 * width / 8)
stem.setposition(-width / 30, -width / 4.8)
stem.end_fill()

screen.bgcolor("sky blue")

# decorations: balls
screen.tracer(2)
ball_colours = ["red", "red", "red", "gold", "violet", "white"]
ball_positions = [(-width / 30, width / 4), (3 * width / 40, width / 5),
                  (-width / 20, width / 6), (width / 30, width / 9),
                  (-width / 12, width / 30), (width / 12, width / 24),
                  (-width / 9, -width / 20), (width / 8, -width / 15),
                  (0, -width / 6), (-width / 6, -width / 6),
                  (width / 5, -width / 7.5)
                  ]
for position in ball_positions:
    make_ball(position[0], position[1], 20 / i_scale,
              random.choice(ball_colours),
              turtle.Turtle())
    screen.update()

# snow is falling…
list_of_snow = []

screen.tracer(0)
for _ in range(50):
    snow_fall()

text_1 = turtle.Turtle()
text_1.hideturtle()
text_1.penup()
text_1.setposition(0, width / 2.7)
text_1.color("red")
# text_1.write("Merry Christmas", font=("Georgia", 30, "bold"), align="center")
text_1.write("Merry Christmas",
             font=("Apple Chancery", max(int(30 / i_scale), 15), "bold"),
             align="center")

for _ in range(25):
    snow_fall()

text_1.setposition(width / 60, -width / 2.18)
text_1.color("black")
# text_1.write("from", font=("Georgia", 20, "normal"), align="center")
text_1.write("from",
             font=("Apple Chancery", max(int(20 / i_scale), 10), "normal"),
             align="center")
if web_based:
    text_1.setposition(width / 6, -width / 2.14)
else:
    text_1.setposition(width / 7.5, -width / 2.14)
text_1.color("forest green")
# text_1.write("code", font=("Arial", 30, "normal"), align="center")
text_1.write("code", font=("Avenir", max(int(30 / i_scale), 15), "normal"),
             align="center")
# text_1.setposition(150, -280)
if web_based:
    text_1.setposition(width / 2.95, -width / 2.14)
else:
    text_1.setposition(width / 3.85, -width / 2.14)
text_1.color("black")
# text_1.write("today", font=("Arial", 30, "normal"), align="center")
text_1.write("today", font=("Avenir", max(int(30 / i_scale), 15), "normal"),
             align="center")

if web_based:
    for _ in range(200):
        snow_fall()
else:        
    while True:
        snow_fall()

turtle.done()

 

Bài viết đạt: 5/5 - (1 bình chọn)
Previous Post Next Post