小兔子在终端给大家拜年啦
小兔子在终端给大家拜年啦
- 前言
- 创作过程
- 小兔子模型制作
- 实现思路
- 代码
- 小结
耐心和持久胜过激烈和狂热。
哈喽大家好,我是陈明勇,本文分享的内容是 使用 Go 语言实现小兔子在终端给大家拜年。如果觉得作品有趣,不妨点个赞,如果本文有错误的地方,欢迎指出!
前言
使用 Go 语言创作,没有想到好的创意,最后打算在终端动态打印小兔子,给大家拜年!
先来看看效果图:
创作过程
小兔子模型制作
大部分的时间,都花在了画兔子图案的工作上。创建一个 txt
文档,在文档里通过特殊符号,一步一步将模型搭好,然后附上一副春节对联。
实现思路
整个动态过程是由几个不同的图案依次打印而成,一共有 7 个图案。起初我是将这 7 个图案放到 txt
文件里,然后通过读取文件,分割图案,最后打印图案,这样做的好处是图案和代码分开了,降低图案与代码间的耦合度。
到最后,为了减少文件操作,将图案放到代码里,用字符串变量接收。
代码
package mainimport ("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.Stdoutcmd.Run()// 打印图案fmt.Printf("%s", rabbit)time.Sleep(time.Millisecond * 500)}
}
- 首先,使用七个字符串变量,保存七个不同的图案,用于后续打印。
- 其次,将七个字符串变量放入字符串切片里,后续易于操作。
- 接下来,循环遍历切片,打印图案。
- 打印图案之前,先通过
exec.Command
函数,执行cls
命令,达到在windows
系统上清屏的效果。cls
的缺点就是清屏时会闪屏,而上面注释掉的一行代码是通过终端控制符进行清屏,基本上不闪烁,适用于linux
终端,在windows
的命令行模式下清屏无效。同时cls
命令和终端控制符在码上掘金上也没有看到清屏的效果,如果读者有好的方法,请多多指教!
- 打印图案之前,先通过
- 打印一个图案之后,延时
0.5
秒后打印下一个图案,让肉眼可观察到整个过程。
小结
动一动手指,让小兔子在终端给大家拜年,简单又有趣。
除了动手制作图案以外,本次创作遇到最大困难是如何在终端清屏时不闪烁。通过打印 \033c
终端控制符进行清屏,基本上不闪烁,但是此操作在 windows cmd
终端下不起作用,无奈只能通过执行 cls
命令,达到清屏的效果。
新的一年,祝大家前兔似锦、谈兔不凡、颜值兔出、成绩兔出!
小兔子在终端给大家拜年啦相关推荐
- 极光推送 请检查参数合法性_极光小课堂 | 极光推送在人脸识别终端管理系统中的应用...
项目背景 最近开发的一款人脸识别终端管理系统,主要包括运营平台.企业后台管理系统.APP 端.智能人脸识别终端模块. 下图是系统的架构图: 其中各个模块之间都需要即时通讯,比如: APP 端用户注册完 ...
- AR的未来在哪 天猫AR“拜年”互动指明方向
年关将至,发红包.收红包成为了大家热议的话题.当各大品牌正在思考怎样给消费者带来红包创意时,天猫年货节把红包玩出了新花样,把天猫超市的快递盒子和红包玩出了AR互动线上新花样. 消费者在天猫年货节购物后 ...
- 查看jdk安装路径,实现多个java jdk的共存,安装java19后终端乱码的解决
查看jdk安装路径, 在windows上实现多个java jdk的共存解决办法, 安装java19后终端乱码的解决 目录 一.查看jdk(java开发工具包)安装路径的方法 二.在windows上实现 ...
- linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 6 文章- 2 评论- 2 < ...
- 终端(terminal)、tty、shell、控制台(console)、bash之间的区别与联系
1.终端(terminal) 终端(termimal)= tty(Teletypewriter, 电传打印机),作用是提供一个命令的输入输出环境,在linux下使用组合键ctrl+alt+T打开的就是 ...
- Python 修改终端输入字体颜色值
#!/bin/sh # Python 在终端中修改字体的颜色值 需要在字体中输入开头部分添加\033[x;x;xm 结尾部分添加\033[0m # x 对应下面的内容 ""&quo ...
- Ubuntu 系统 在终端中过滤log 特殊的信息
使用命令 grep 例如某个log 日志信息太多,使用终端过滤 grep -rni "过滤字段" 文件路径(这个拖着文件放进去即可)
- Ubuntu 系统通过终端打开AndroidStudio工具
一般我们通过终端进入到下载android 的目录自己都记得把找到androidstudio 的目录(cd 进入到这个目录) 如果不知道怎么复制这个路径可以ctrl + l 上面会显示路径的然后在复制即 ...
- Ubuntu系统打开终端的方法
1 自己经常使用的 到相应的文件里面鼠标右键 点击打开终端这个方法和windows系统下使用git终端一样 2 使用快捷键Ctrl+Alt+t 3 在左上角的搜索里面搜索终端然后打开即可
最新文章
- Python的XML-RPC学习
- LNMP架构详解(1)——了解架构的基本信息
- 如何查看已安装的CentOS版本信息
- linux服务器配置https访问
- Django与CSRF 、AJAX
- 工作33:page值不能修改
- throws java_基于Java中throw和throws的区别(详解)
- 用JSLint+Ant检验HTML代码
- Deployment vs ReplicationController in Kubernetes
- java下载配置步骤_Java环境构建-JDK下载,安装和配置步骤
- 【韦东山嵌入式Linux】Linux命令进阶笔记
- 百度Apollo5.0控制模块代码学习(七)MPC控制
- 华为服务器 修改为传统模式,电脑设置成服务器模式
- 基于uniapp的QQ小程序开发(前端篇)
- 微信小程序-区分版本:开发版、体验版和正式版
- 高中计算机上册知识总结怎么写,高中计算机总结范文
- setPositiveButton,setNegativeButton,setNeutralButton各代表什么意思
- Qt总结(六)-- 图表数据曲线
- 论文笔记Improving Multi-hop Knowledge Base Question Answering by Learning Intermediate Supervision Signa
- Windows 反消息钩子(1)
热门文章
- 谈用户裂变,社群裂变的重要性
- m4a怎么转换成mp4?一个简单好用的操作教程分享
- 微软的surface pro5充电指示灯亮,但充不进去电的原因
- 深圳-数据岗位面试不完全记录(回忆版)
- Unity3D中Quaternion.Euler方法解析
- 物联网实战项目 免费领取!手把手教你如何从0搭建智慧家居中的视频监控系统
- 电脑wps可以语音录入吗_懒人用技巧—使用Word录音实现语音录入文字(口读文字,Word为您写文字)...
- sm4加密和sm3加密
- 让你效率飞起的右键工具——超级右键
- 分段函数sgnx的C语言程序,几个重要的分段函数