圣诞节来了,教你用各种编程语言手写一棵圣诞树(下)

简介: 圣诞节来了,教你用各种编程语言手写一棵圣诞树(下)

python


提供一种最简单的python实现方法,哈哈!不喜勿喷!


image.png


源代码如下:

height = 5
stars = 1
for i in range(height):
    print((' ' * (height - i)) + ('*' * stars))
    stars += 2
print((' ' * height) + '|')

也可以使用简单的图形库Turtle来实现,就像下面这样子。原理也很简单,参照前面最简单的实现方法,加载图形库后把原有的*使用绿色的方块代替,在各个角和顶部采用红色圆形代替,树干用棕色方块代替即可,最后在适当润色一下。



image.png


源代码:

import turtle
screen = turtle.Screen()
screen.setup(800,600)
circle = turtle.Turtle()
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
circle.up()
square = turtle.Turtle()
square.shape('square')
square.color('green')
square.speed('fastest')
square.up()
circle.goto(0,280)
circle.stamp()
k = 0
for i in range(1, 17):
    y = 30*i
    for j in range(i-k):
        x = 30*j
        square.goto(x,-y+280)
        square.stamp()
        square.goto(-x,-y+280)
        square.stamp()
    if i % 4 == 0:
        x = 30*(j+1)
        circle.color('red')
        circle.goto(-x,-y+280)
        circle.stamp()
        circle.goto(x,-y+280)
        circle.stamp()
        k += 2
    if i % 4 == 3:
        x = 30*(j+1)
        circle.color('yellow')
        circle.goto(-x,-y+280)
        circle.stamp()
        circle.goto(x,-y+280)
        circle.stamp()
square.color('brown')
for i in range(17,20):
    y = 30*i
    for j in range(3):
        x = 30*j
        square.goto(x,-y+280)
        square.stamp()
        square.goto(-x,-y+280)
        square.stamp()
turtle.exitonclick()

当然还有另外一种实现方式,是一种动态的效果。


image.png


下面是源代码:

from turtle import *
import random
import time
n = 80.0
speed("fastest")
screensize(bg='seashell')
left(90)
forward(3*n)
color("orange", "yellow")
begin_fill()
left(126)
for i in range(5):
    forward(n/5)
    right(144)
    forward(n/5)
    left(72)
end_fill()
right(126)
color("dark green")
backward(n*4.8)
def tree(d, s):
    if d <= 0: return
    forward(s)
    tree(d-1, s*.8)
    right(120)
    tree(d-3, s*.5)
    right(120)
    tree(d-3, s*.5)
    right(120)
    backward(s)
tree(15, n)
backward(n/2)
for i in range(200):
    a = 200 - 400 * random.random()
    b = 10 - 20 * random.random()
    up()
    forward(b)
    left(90)
    forward(a)
    down()
    if random.randint(0, 1) == 0:
            color('tomato')
    else:
        color('wheat')
    circle(2)
    up()
    backward(a)
    right(90)
    backward(b)
time.sleep(60)


JAVA


这款JAVA版本的圣诞树和前面Python版本类似,不同的地方在于此版本引用的较多的素材和动态效果,在点击了左上角的按钮为ON之后开始播放音乐,圣诞树也开始闪烁变化。


image.png


这里放出作者的github链接,作者为[codeXiaoMing]:

https://github.com/codeXiaoMing/christmasTree/tree/master

大家学会了吗?快去编译打包一下发给朋友吧!

相关文章
|
7月前
|
C语言
每天一道C语言编程练习(5):尼科彻斯定理
每天一道C语言编程练习(5):尼科彻斯定理
53 0
|
7月前
|
存储 XML JavaScript
圣诞节到了,用代码给对象写一颗圣诞树吧
JS是JavaScript的缩写,它是一种广泛使用的编程语言。JavaScript通常用于在web页面中添加动态内容、交互式特效和用户体验增强等功能。它是一种脚本语言,可以在浏览器中直接运行,也可以与服务器端进行交互。JavaScript可以用于创建复杂的应用程序,包括网页、手机应用、桌面应用以及游戏等。它具有广泛的应用领域,并且拥有大量的开发资源和社区支持。
181 4
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
|
程序员 Python
Python编程 圣诞树教程 (附代码)程序员的浪漫
Python编程 圣诞树教程 (附代码)程序员的浪漫
1237 0
|
程序员 Python
【圣诞节限定】教你用Python画圣诞树,做个浪漫的程序员
最近在各大社交平台看到好多圣诞树,看到大佬们画的圣诞树一个比一个精致,我也特别想尝试画一棵特别的圣诞树。下面是我画的一棵简易的圣诞树,虽然和网络上大佬们的圣诞树相比不是很精致,但是对于萌新们来说,画这样一棵简易的圣诞树还是非常轻松的。 ps:重要的不是圣诞树,重要的是你的心意哦~
259 0
【圣诞节限定】教你用Python画圣诞树,做个浪漫的程序员
|
程序员 C语言
c 语言实现链表反转(超详细,有手就行)
我们在对数组进行反转的时候,通常定义俩个指针,一个指向首元素,一个指向尾元素,然后借助一个中间变量,将俩者交换,然后首元素++;尾元素--;重复操作直到头元素大于等于尾元素。
c 语言实现链表反转(超详细,有手就行)
|
C语言 C++
圣诞节来了,教你用各种编程语言手写一棵圣诞树(上)
圣诞节来了,教你用各种编程语言手写一棵圣诞树(上)
圣诞节来了,教你用各种编程语言手写一棵圣诞树(上)
|
Python
学Python 函数从青铜到王者
学Python 函数从青铜到王者
190 0
学Python 函数从青铜到王者
再学一道算法题: 井字棋
再学一道算法题: 井字棋
|
C语言 C++
小伙子用C语言写出绽放的玫瑰花,成功表白C++代码女神!
小伙子用C语言写出绽放的玫瑰花,成功表白C++代码女神!
5178 0