python
提供一种最简单的python实现方法,哈哈!不喜勿喷!
源代码如下:
height = 5 stars = 1 for i in range(height): print((' ' * (height - i)) + ('*' * stars)) stars += 2 print((' ' * height) + '|')
也可以使用简单的图形库Turtle来实现,就像下面这样子。原理也很简单,参照前面最简单的实现方法,加载图形库后把原有的*使用绿色的方块代替,在各个角和顶部采用红色圆形代替,树干用棕色方块代替即可,最后在适当润色一下。
源代码:
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()
当然还有另外一种实现方式,是一种动态的效果。
下面是源代码:
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之后开始播放音乐,圣诞树也开始闪烁变化。
这里放出作者的github链接,作者为[codeXiaoMing]:
https://github.com/codeXiaoMing/christmasTree/tree/master
大家学会了吗?快去编译打包一下发给朋友吧!