圣诞节,来棵Golang的圣诞树吧

news2024/11/17 19:53:03

一、前言

2022年的圣诞到啦,不知道大家都🐑了吗!博主已经挺进了决赛圈,希望可以继续稳如老狗!本来今天是想继续深挖一下git,但打开博客看到这个圣诞活动,还可以赢徽章,那我肯定要把他拿下啦!

二、创意名

宇宙超级无敌GoLang圣诞树!

显而易见就是用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")
}

最后再次祝大家圣诞快乐!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/112796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++基础之提高5

C提高编程 本阶段主要针对C泛型编程和STL技术做详细讲解&#xff0c;探讨C更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具&#xff0c;大大提高复用性 例如生活中的模板 一寸照片模板&#xff1a; PPT模板&#xff1a; 模板的特点&#xff1a; 模板不可以直…

Maven 运行性期间不报错

Maven 运行性期间不报错目录概述需求&#xff1a;设计思路实现思路分析1.正确引入maven问题2.编译maven 无问题3.运行出错了参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a…

第14章_MySQL事务日志

第14章_MySQL事务日志第14章_MySQL事务日志1. redo日志1.1 为什么需要REDO日志1.2 REDO日志的好处、特点1.3 redo的组成1.5 redo log的刷盘策略1.6 不同刷盘策略演示1.7 写入redo log buffer 过程1.8 redo log file1. 相关参数设置2. 日志文件组3. checkpoint1.9 redo log小结2…

python基础语法——变量和变量类型

文章目录变量命名规则使用变量和修改变量变量的类型整数 int浮点数 float字符串 string布尔动态类型特征变量命名规则 软性规则&#xff1a; 1.给变量命名的时候&#xff0c;尽量使用描述性的单词来表示&#xff0c;尽量通过名字来表现出变量的作用 2. 当我们使用一个单词描述…

实战讲解时区处理基于SimpleDateFormat和LocalDateTime

1 缘起 最近在做海外的项目&#xff0c; 需要根据时区转换时间&#xff0c;起初&#xff0c;项目使用的时区格式为{area}/{city}&#xff0c; 可直接使用SimpleDateFormat处理&#xff0c;后面由于要添加其他地区&#xff0c; 统一将时区改为UTC格式&#xff0c;此时&#xff…

AndroidQ兼容性适配指南

AndroidQ Android 10 中的隐私权变更 隐私权变更受影响的应用缓解策略✅分区存储 针对外部存储的过滤视图&#xff0c;可提供对特定于应用的文件和媒体集合的访问权限访问和共享外部存储中的文件的应用使用特定于应用的目录和媒体集合目录 了解详情✅增强了用户对位置权限的控…

Viewer.js点击按钮放大图片用法

1、Viewer.js点击按钮放大图片用法 <div onclick"getHideBig(hide_img_weight1)" id"btn_img_weight1">查看图片</div> <img src"tibet-3.jpg" id"hide_img_weight1" style"display: none;"/><script…

异常的认识 -(java)

文章目录前言1. 什么时异常&#xff1f;2. 异常的分类2.1 运行时异常/非受查异常2.2 编译时异常/受查异常3. 处理异常3.1 抛出异常3.2 声明异常3.3 try catch处理异常总结✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来&#xff01; 编程真是一件很奇妙的东西。你只是…

java 之 git 手把手教学

什么是git? Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;Java类、xml文件、html页面等&#xff09;&#xff0c;在软件开发过程中被广泛使用。 学完之后能干什么&#xff1f; Git 简介 Git 代码托管服务 Git 常用命令 git add前…

C++:STL:常用容器(上):vector

1&#xff1a;vector基本概念 功能&#xff1a;vector 数据结构和数组非常相似&#xff0c;也称为 单端数组. vector 与普通数组区别&#xff1a; 1&#xff1a; 数组是静态空间&#xff0c;而 vector 可以动态扩展 2&#xff1a; 动态扩展&#xff1a;并不是在原空间之后接新…

Java 集合学习笔记:HashMap - 迭代器

Java 集合学习笔记&#xff1a;HashMap - 迭代器iteratorsHashIteratorhasNextnextNoderemoveKeyIteratorValueIteratorEntryIteratorspliteratorsHashMapSpliteratorgetFence 获取拆分器的右边界estimateSize 估计剩余元素的个数KeySpliterator1. trySplit 尝试拆分2. forEach…

AQS学习

1.1 AQS 简单介绍 AQS 的全称为&#xff08;AbstractQueuedSynchronizer&#xff09;&#xff0c;这个类在 java.util.concurrent.locks 包下面。 AQS 是一个用来构建锁和同步器的框架&#xff0c;使用 AQS 能简单且高效地构造出应用广泛的大量的同步器&#xff0c; 比如我们提…

多协议标签交换MPLS(计算机网络-网络层)

目录 MPLS 的优势 MPLS 首部的位置与格式 MPLS 首部的位置与格式 MPLS 转发等价类 MPLS 的优势 MPLS 的真正优点在于它的流量管理能力&#xff1a;提供沿多条路径转发分组的能力&#xff0c;并能灵活地为某些流量指定其中的一条路径 这种能力被称为显示路由&#xff0c;其…

占道经营出店摆摊监测识别 python

占道经营出店摆摊监测识别通过python基于yolov7网络架构深度学习模型&#xff0c;对现场画面中检测到出店摆摊违规经营或者流动商贩占道经营时&#xff0c;立即抓拍告警同步后台。OpenCV基于C实现&#xff0c;同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV…

【Django】第四课 基于Django超市订单管理系统开发

概念 本文在上一文之上&#xff0c;针对管理员&#xff0c;经理&#xff0c;普通员工身份的用户操作订单管理模块功能。 功能实现 该功能也是业务功能模块&#xff0c;管理员不具备操作权限&#xff0c;普通员工需要对超市所合作的供应商进行进货&#xff0c;因此普通员工可…

数据结构与算法——Java实现排序算法(二)

数据结构与算法——Java实现排序算法&#xff08;一&#xff09;_我爱布朗熊的博客-CSDN博客 七、希尔排序&#xff08;自我感觉有点难理解&#xff09; 为了解决直接插入排序所带来的弊端&#xff0c;我们接来下看一下希尔排序 希尔排序也是一种插入排序&#xff0c;简单插入排…

口罩佩戴监测系统 yolo

口罩佩戴监测系统通过yolo网络对现场画面人员口罩佩戴情况进行识别检测。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xff0c;用于实时进行目标检测。该算法将单个神经网络应用于完整的图像&#xff0c;然后将图像划分为多个区域&#x…

科技交流英语(2022秋)Unit 5 test

科技交流英语&#xff08;2022秋&#xff09;Unit 5 test 简介 由电子科技大学组织开设&#xff0c;授课教师为李京南、庞慧、刘兆林等5位老师。 课程介绍 英语广泛用于工程技术领域的国际交流。如何使用简洁的语言清楚地传递信息是工程师在国际舞台上常常面临的问题。本课…

ARM S5PV210 串行通信编程实战

一、串行通信编程实战1 1、整个程序流程分析 (1) 整个串口通信相关程序包含 2 部分&#xff1a;uart_init 负责初始化串口&#xff0c;uart_putc 负责发送一个字节。 2、串口控制器初始化关键步骤 (1) 初始化串口的 Tx 和 Rx 引脚所对应的GPIO&#xff08;查原理图可知 Rx 和…

【数列分段DP】膜拜

P1564 膜拜 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意&#xff1a; 思路&#xff1a; 这是个经典模型&#xff1a;数列分段DP&#xff0c;在其他地方也出现过&#xff1a;(150条消息) 代码源每日一题div1 DP 数组划分_lamentropetion的博客-CSDN博客 这类DP模型核…