小兔子在终端给大家拜年啦

news2025/1/17 1:34:13

小兔子在终端给大家拜年啦

    • 前言
    • 创作过程
      • 小兔子模型制作
      • 实现思路
      • 代码
    • 小结

耐心和持久胜过激烈和狂热。

哈喽大家好,我是陈明勇,本文分享的内容是 使用 Go 语言实现小兔子在终端给大家拜年。如果觉得作品有趣,不妨点个赞,如果本文有错误的地方,欢迎指出!

前言

使用 Go 语言创作,没有想到好的创意,最后打算在终端动态打印小兔子,给大家拜年!
先来看看效果图:
在这里插入图片描述

创作过程

小兔子模型制作

在这里插入图片描述

大部分的时间,都花在了画兔子图案的工作上。创建一个 txt 文档,在文档里通过特殊符号,一步一步将模型搭好,然后附上一副春节对联。

实现思路

整个动态过程是由几个不同的图案依次打印而成,一共有 7 个图案。起初我是将这 7 个图案放到 txt 文件里,然后通过读取文件,分割图案,最后打印图案,这样做的好处是图案和代码分开了,降低图案与代码间的耦合度。

到最后,为了减少文件操作,将图案放到代码里,用字符串变量接收。

代码

package main

import (
	"fmt"
	"os"
	"os/exec"
	"time"
)

var r1 = "\n                    /\\   /\\" +
	"\n                   /  : /  |" +
	"\n                  :   :`  /" +
	"\n                   \\     ." +
	"\n                    \\   :." +
	"\n                    .`     `." +
	"\n                   :     0   \\" +
	"\n                 ..`          ;" +
	"\n             . `           `.¯" +
	"\n           .`                :" +
	"\n        .`                   ." +
	"\n      .`                     :" +
	"\n     .    Happy New Year     ." +
	"\n    .                     .`" +
	"\n .. `                  .`" +
	"\n:  ``             ;.  `、" +
	"\n`..`._____________::____)"

var r2 = "\n                        /\\   /\\" +
	"\n                       /  : /  |" +
	"\n                      :   :`  /" +
	"\n                       \\     ." +
	"\n                        \\   :." +
	"\n                        .`     `." +
	"\n                       :     0   \\" +
	"\n                     ..`          ;" +
	"\n                 . `           `.¯" +
	"\n               .`                :" +
	"\n            .`                   ." +
	"\n          .`                     :" +
	"\n         .    Happy New Year     ." +
	"\n        .                     .`" +
	"\n     .. `                  .`" +
	"\n    :  ``             ;.  `、" +
	"\n    `..`._____________::____)"
var r3 = "\n                            /\\   /\\" +
	"\n                           /  : /  |" +
	"\n                          :   :`  /" +
	"\n                           \\     ." +
	"\n                            \\   :." +
	"\n                            .`     `." +
	"\n                           :     0   \\" +
	"\n                         ..`          ;" +
	"\n                     . `           `.¯" +
	"\n                   .`                :" +
	"\n                .`                   ." +
	"\n              .`                     :" +
	"\n             .    Happy New Year     ." +
	"\n            .                     .`" +
	"\n         .. `                  .`" +
	"\n        :  ``             ;.  `、" +
	"\n        `..`._____________::____)"
var r4 = "\n                                /\\   /\\" +
	"\n                               /  : /  |" +
	"\n                              :   :`  /" +
	"\n                               \\     .                 ________________" +
	"\n                                \\   :.                |  喜  辞  旧  岁 |" +
	"\n                                .`     `.              ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" +
	"\n                               :     0   \\" +
	"\n                             ..`          ;" +
	"\n                         . `           `.¯" +
	"\n                       .`                :" +
	"\n                    .`                   ." +
	"\n                  .`                     :" +
	"\n                 .    Happy New Year     ." +
	"\n                .                     .`" +
	"\n             .. `                  .`" +
	"\n            :  ``             ;.  `、" +
	"\n            `..`._____________::____)"
var r5 = "\n                                /\\   /\\" +
	"\n                               /  : /  |" +
	"\n                              :   :`  /" +
	"\n                               \\     .                 ________________" +
	"\n                                \\   :.                |  喜  辞  旧  岁 |" +
	"\n                                .`     `.              ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" +
	"\n                               :     0   \\         ____" +
	"\n                             ..`          ;       | 兔 |" +
	"\n                         . `           `.¯        | 跃 |" +
	"\n                       .`                :        | 龙 |" +
	"\n                    .`                   .        | 腾 |" +
	"\n                  .`                     :        | 辞 |" +
	"\n                 .    Happy New Year     .        | 旧 |" +
	"\n                .                     .`          | 岁 |" +
	"\n             .. `                  .`              ¯¯¯" +
	"\n            :  ``             ;.  `、" +
	"\n            `..`._____________::____)"
var r6 = "\n                                /\\   /\\" +
	"\n                               /  : /  |" +
	"\n                              :   :`  /" +
	"\n                               \\     .                 ________________" +
	"\n                                \\   :.                |  喜  辞  旧  岁 |" +
	"\n                                .`     `.              ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" +
	"\n                               :     0   \\         ____                ____" +
	"\n                             ..`          ;       | 兔 |               | 龙 |" +
	"\n                         . `           `.¯        | 跃 |               | 腾 |" +
	"\n                       .`                :        | 龙 |               | 虎 |" +
	"\n                    .`                   .        | 腾 |               | 跃 |" +
	"\n                  .`                     :        | 辞 |               | 贺 |" +
	"\n                 .    Happy New Year     .        | 旧 |               | 新 |" +
	"\n                .                     .`          | 岁 |               | 春 |" +
	"\n             .. `                  .`              ¯¯¯                  ¯¯¯" +
	"\n            :  ``             ;.  `、" +
	"\n            `..`._____________::____)"

var r7 = "\n                                /\\   /\\" +
	"\n                               /  : /  |" +
	"\n                              :   :`  /" +
	"\n                               \\     .                 ________________" +
	"\n                                \\   :.                |  喜  辞  旧  岁 |" +
	"\n                                .`     `.              ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯" +
	"\n                               :     0   \\         ____                ____" +
	"\n                             ..`          ;       | 兔 |               | 龙 |" +
	"\n                         . `           `.¯        | 跃 |       2       | 腾 |" +
	"\n                       .`                :        | 龙 |       0       | 虎 |" +
	"\n                    .`                   .        | 腾 |       2       | 跃 |" +
	"\n                  .`                     :        | 辞 |       3       | 贺 |" +
	"\n                 .    Happy New Year     .        | 旧 |               | 新 |" +
	"\n                .                     .`          | 岁 |               | 春 |" +
	"\n             .. `                  .`              ¯¯¯                  ¯¯¯" +
	"\n            :  ``             ;.  `、" +
	"\n            `..`._____________::____)"

func main() {
	rabbits := []string{r1, r2, r3, r4, r5, r6, r7}
	for _, rabbit := range rabbits {
                // 通过终端控制符进行清屏
		//fmt.Println("\033c")
		cmd := exec.Command("cmd", "/c", "cls")
		cmd.Stdout = os.Stdout
		cmd.Run()
		// 打印图案
		fmt.Printf("%s", rabbit)
		time.Sleep(time.Millisecond * 500)
	}
}

  • 首先,使用七个字符串变量,保存七个不同的图案,用于后续打印。
  • 其次,将七个字符串变量放入字符串切片里,后续易于操作。
  • 接下来,循环遍历切片,打印图案。
    • 打印图案之前,先通过 exec.Command 函数,执行 cls 命令,达到在 windows 系统上清屏的效果。cls 的缺点就是清屏时会闪屏,而上面注释掉的一行代码是通过终端控制符进行清屏,基本上不闪烁,适用于 linux 终端,在 windows 的命令行模式下清屏无效。同时 cls 命令和终端控制符在码上掘金上也没有看到清屏的效果,如果读者有好的方法,请多多指教!
  • 打印一个图案之后,延时 0.5 秒后打印下一个图案,让肉眼可观察到整个过程。

小结

动一动手指,让小兔子在终端给大家拜年,简单又有趣。

除了动手制作图案以外,本次创作遇到最大困难是如何在终端清屏时不闪烁。通过打印 \033c 终端控制符进行清屏,基本上不闪烁,但是此操作在 windows cmd 终端下不起作用,无奈只能通过执行 cls 命令,达到清屏的效果。

新的一年,祝大家前兔似锦、谈兔不凡、颜值兔出、成绩兔出!

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

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

相关文章

【学习笔记】决策树 (1.简介+基本构建思想)

简单问题引入 如何判断今天是什么季节?春天、夏天、秋天、冬天? 如果是我们的话,可以通过日期一下子知道今天的季节——“7月份,所以是夏天!”大概是这样的发言。 但如果不让你通过日期来判断呢?选择还是…

摸鱼快报:golang net/http中的雕虫小技

以后会开一个板块,摸鱼快报,快速记录这几周开发中雕虫小技, 也算一个错题集。1. 向开发环境localhost:3000种植cookie前端使用Create React App脚手架,默认以localhost:3000端口启动;后端使用golang-gin框架&#xff0…

python在多卡服务器中指定某块显卡允许程序 -- 本机为mac,服务器为Linux, nvidia

1 在pychram环境变量中设置 在pycharm端操作,操作步骤如下: (1)操作右上角:Edit Configurations... (2)在 Edit Configurations界面可以选择设置哪个程序的cuda,如图: (3&#xff0…

java基于ssm框架开发的视频论坛网站源码

简介 Java基于ssm开发的视频论坛网站,普通用户可以浏览视频搜索视频评论点赞收藏视频,关注用户。还可以浏览新闻,发布帖子到论坛。 演示视频 https://www.bilibili.com/video/BV15T4y1P7kk/?p2&share_sourcecopy_web&vd_sourceed0…

【阶段三】Python机器学习24篇:机器学习项目实战:XGBoost回归模型

本篇的思维导图: 项目实战(XGBoost回归模型) 项目背景 为了降低不良贷款率,保障自身资金安全,提高风险控制水平,银行等金融机构会根据客户的信用历史资料构建信用评分卡模型给客户评分。根据客户的信用得分,可以预估客户按时还款的可能性,并据此决定是否发放贷款…

DX-BT18 双模蓝牙模块介绍

DX-BT18双模蓝牙模块简介DX-BT18 双模蓝牙模块是深圳大夏龙雀科技有限公司专为智能无线数据传输而打造,遵循蓝牙4.2标准协议的双模蓝牙模块(Dual-Mode) 同时支持 BT3.0 Classic 和 BT4.2 BLE模式。 DX-BT18模块应用于无线数据传输领域&#x…

72.全卷积神经网络(FCN)及代码实现

语义分割是对图像中的每个像素分类。 全卷积网络(fully convolutional network,FCN)采用卷积神经网络实现了从图像像素到像素类别的变换 。 与我们之前在图像分类或目标检测部分介绍的卷积神经网络不同,全卷积网络将中间层特征图的…

【正点原子FPGA连载】 第十九章 LED灯闪烁实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十九章 LED灯闪…

聊聊Go与TLS 1.3

除了一些综述类文章和译文,我的文章选题多来源于实际工作和学习中遇到的问题。这次我们来聊聊近期遇到一个问题:如何加快基于TLS安全通信的海量连接的建连速度?TLS(Transport Layer Security)传输安全层的下面是TCP层,我们首先可能会想到的是…

【魅力开源】第4集:今天不讲ODOO,今天讲“中小企业的信息化如何做”

文章目录前言一、中小企业很重要二、企业全要素三、信息化逐步全面覆盖1. 信息化落地路径2. 消除信息孤岛是信息化的关键环节3. 中小企业信息化正在从产品市场向服务市场转变最后前言 在软件公司打补丁,我并不快乐 看到中小企业挣扎现状,让我痛苦 能够帮…

2023年最新黑马程序员Java微服务项目--学成在线

正式上线Java微服务项目《学成在线》 项目对程序员的重要性 不用播妞多说了吧 更重要的是 这次是完整!实战!企业级!项目! 划重点:全新发布!正式上线! 《学成在线》项目以在线教育业务为基础…

Spring AOP【用户登陆统一验证功能】

Spring AOP【用户登陆统一验证功能】🍎一. 用户登陆统一验证功能🍒1.1 用户登录验证的几种方法🍒1.2 创建前端页面🍒1.3 创建登陆方法和欢迎进入方法🍒1.4 自定义一个拦截器🍒1.5 验证拦截功能&#x1f349…

API--应用层之间的应用程序接口

API的前言互联网的应用特点是具有开放式的业务体系结构之一。关键的技术就是网络控制与应用层之间的应用程序接口--API。通过API接口很多问题便水到渠成,迎刃而解 。API到底是一种什么技术呢具有开放式的业务体系结构将是下一代网络的重要特征之一。其中&#xff0c…

干货 | APP和小程序在开发有什么区别?

随着互联网的不断进步,移动终端在生活中的应用也越来越多。 据工信部数据显示,截至2022年11月底,国内市场监测到的APP数量为272万款,其中App Store(中国区)的APP数量为136万款,本土第三方应用商店(主要是安…

数据库连接池监控的另类方案

如果这篇对你有帮助,还请麻烦转发。谢谢。数据库的连接池的监控的重要性假如,我们在公有云上存在一个数据库数据库实例X。公有云配置中已经说明X所支持的最大连接数是1000。如果数据库X的实际连接数达到了1000,那么,新的连接就无法…

输入的文本就能演奏一段爵士乐? #Riffusion

riff diffusion 是 stable diffusion 的微调模型,以生成频谱图图像来转换音乐。能产生更精准的声音模型叫:Riffusion。它能对音频进行剪辑处理,或者是无限地修改提示符。Riffusion图源:riffusion 官网频谱图频谱图是音频声波的视…

【超分综述】

A comprehensive review on deep learning based remote sensing image super-resolution methods (基于深度学习的遥感图像超分辨率方法综述) 卫星图像是地球科学领域各种应用的重要地理信息源。然而,由于光学和传感器技术的局限性以及传感器和设备更新的高成本&…

迅为i.MX8M Mini开发板debug调试方法(Qir trl RIL驱动不工作)

可能导致 Quectel RIL 操作失败的原因有很多。一些常见的原因如下所示,用于故障排除。 1 输入以下命令用于检查 ril daemon 的状态。如果未返回任何值,或者返回了 Stopped 或 Restarting 等 值而不是 Running,则表明 RIL 守护进程未运行。 ge…

时序预测 | Python实现Attention-TCN注意力机制时间卷积神经网络的多元时间序列预测

时序预测 | Python实现Attention-TCN注意力机制时间卷积神经网络的多元时间序列预测 目录 时序预测 | Python实现Attention-TCN注意力机制时间卷积神经网络的多元时间序列预测预测效果基本介绍环境配置程序设计模型效果参考资料预测效果 基本介绍 使用时间注意卷积神经网络进行…

2023版大数据学习路线图(适合自学)

随着信息产业的迅猛发展,大数据应用逐渐落地,行业人才需求量逐年扩大。大数据成为目前最具前景的高薪行业之一,大数据分析工程师、大数据开发工程师等大数据人才也成为市场紧缺型人才,薪资一涨再涨。很多人想要加入到大数据开发行…