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

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

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

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

相关文章
|
9月前
|
算法 Java
【洛谷算法题】P1000-超级玛丽游戏【入门1顺序结构】
【洛谷算法题】P1000-超级玛丽游戏【入门1顺序结构】
|
9月前
|
算法
【洛谷算法题】P1425-小鱼的游泳时间【入门1顺序结构】
【洛谷算法题】P1425-小鱼的游泳时间【入门1顺序结构】
|
2天前
|
设计模式 人工智能 前端开发
探索编程之美:从代码到艺术的转变
在数字时代的浪潮中,编程已不仅仅是技术操作的堆砌,它逐渐演变为一种创造性的艺术形式。本文将通过个人的技术感悟,探讨如何将编程从枯燥的代码编写转变为充满创造力和美感的艺术实践。我们将一同走进编程的世界,解锁那些隐藏在逻辑严谨与创新设计之间的秘密。
|
2月前
|
存储 XML JavaScript
圣诞节到了,用代码给对象写一颗圣诞树吧
JS是JavaScript的缩写,它是一种广泛使用的编程语言。JavaScript通常用于在web页面中添加动态内容、交互式特效和用户体验增强等功能。它是一种脚本语言,可以在浏览器中直接运行,也可以与服务器端进行交互。JavaScript可以用于创建复杂的应用程序,包括网页、手机应用、桌面应用以及游戏等。它具有广泛的应用领域,并且拥有大量的开发资源和社区支持。
75 3
|
2月前
|
存储 算法
代码汇总【数据结构与算法】【精致版】
代码汇总【数据结构与算法】【精致版】
76 1
|
9月前
|
算法
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
|
程序员 Python
Python编程 圣诞树教程 (附代码)程序员的浪漫
Python编程 圣诞树教程 (附代码)程序员的浪漫
1088 0
|
数据可视化 算法 Go
go语言|二叉树递归遍历,可能有你没见过的花样玩法
go语言|二叉树递归遍历,可能有你没见过的花样玩法
92 0
|
程序员 Python
【圣诞节限定】教你用Python画圣诞树,做个浪漫的程序员
最近在各大社交平台看到好多圣诞树,看到大佬们画的圣诞树一个比一个精致,我也特别想尝试画一棵特别的圣诞树。下面是我画的一棵简易的圣诞树,虽然和网络上大佬们的圣诞树相比不是很精致,但是对于萌新们来说,画这样一棵简易的圣诞树还是非常轻松的。 ps:重要的不是圣诞树,重要的是你的心意哦~
201 0
【圣诞节限定】教你用Python画圣诞树,做个浪漫的程序员
|
程序员 C语言
c 语言实现链表反转(超详细,有手就行)
我们在对数组进行反转的时候,通常定义俩个指针,一个指向首元素,一个指向尾元素,然后借助一个中间变量,将俩者交换,然后首元素++;尾元素--;重复操作直到头元素大于等于尾元素。
c 语言实现链表反转(超详细,有手就行)