一、前言
2022年的圣诞到啦,不知道大家都🐑了吗!博主已经挺进了决赛圈,希望可以继续稳如老狗!本来今天是想继续深挖一下git,但打开博客看到这个圣诞活动,还可以赢徽章,那我肯定要把他拿下啦!
二、创意名
显而易见就是用go写的圣诞树啦。本想找找资源,结果发现圣诞树用go写的例子还挺少的,就自己动手搞一个~
三、效果展示
由于用的emoji所以还是有点歪,不过大概看上去还好,更是加入了灵魂星星~
四、实现步骤
主要三部分:
- 计算画图
- 找好看的输出包
- 随机数
计算画图
标准三角形,就不多说了,直接上结论
i ,y轴,代表层数,直接++
j, x轴, j -> j < i
k,画图处, k -> k <= i
输出包
github上找的emoji
https://github.com/kyokomi/emoji
随机数
使用math/rand随机生成苹果、糖果和树叶
五、编码实现
package main
import (
// 输出包
"fmt"
// emoji包
"github.com/kyokomi/emoji/v2"
// 随机数包
"math/rand"
)
// 利用随机数,随机生成苹果、糖果、树叶
func printer() {
num := rand.Int()
switch num % 5 {
case 1:
emoji.Printf(":apple:")
case 2:
emoji.Printf(":candy:")
default:
emoji.Printf(":leaves:")
}
}
func main() {
fmt.Println()
level := 10
// 圣诞树主体
for i := 0; i <= level; i++ {
for j := 0; j <= level-i; j++ {
fmt.Print(" ")
}
for k := 0; k <= i; k++ {
if i == 0 && k == 0 {
emoji.Printf(":star:")
} else {
printer()
}
fmt.Print("")
}
fmt.Println()
}
// 树干
for i := 0; i <= 3; i++ {
emoji.Printf(" :gift:")
emoji.Printf(":gift:")
emoji.Printf(":gift:")
fmt.Println()
}
fmt.Println(" ~圣诞快乐~ \n")
}
最后再次祝大家圣诞快乐!