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

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

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

哈喽大家好,我是陈明勇,本文分享的内容是 使用 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 命令,达到清屏的效果。

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

小兔子在终端给大家拜年啦相关推荐

  1. 极光推送 请检查参数合法性_极光小课堂 | 极光推送在人脸识别终端管理系统中的应用...

    项目背景 最近开发的一款人脸识别终端管理系统,主要包括运营平台.企业后台管理系统.APP 端.智能人脸识别终端模块. 下图是系统的架构图: 其中各个模块之间都需要即时通讯,比如: APP 端用户注册完 ...

  2. AR的未来在哪 天猫AR“拜年”互动指明方向

    年关将至,发红包.收红包成为了大家热议的话题.当各大品牌正在思考怎样给消费者带来红包创意时,天猫年货节把红包玩出了新花样,把天猫超市的快递盒子和红包玩出了AR互动线上新花样. 消费者在天猫年货节购物后 ...

  3. 查看jdk安装路径,实现多个java jdk的共存,安装java19后终端乱码的解决

    查看jdk安装路径, 在windows上实现多个java jdk的共存解决办法, 安装java19后终端乱码的解决 目录 一.查看jdk(java开发工具包)安装路径的方法 二.在windows上实现 ...

  4. linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效

    博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 6  文章- 2  评论- 2 < ...

  5. 终端(terminal)、tty、shell、控制台(console)、bash之间的区别与联系

    1.终端(terminal) 终端(termimal)= tty(Teletypewriter, 电传打印机),作用是提供一个命令的输入输出环境,在linux下使用组合键ctrl+alt+T打开的就是 ...

  6. Python 修改终端输入字体颜色值

    #!/bin/sh # Python 在终端中修改字体的颜色值 需要在字体中输入开头部分添加\033[x;x;xm 结尾部分添加\033[0m # x 对应下面的内容 ""&quo ...

  7. Ubuntu 系统 在终端中过滤log 特殊的信息

    使用命令 grep 例如某个log 日志信息太多,使用终端过滤 grep -rni "过滤字段"  文件路径(这个拖着文件放进去即可)

  8. Ubuntu 系统通过终端打开AndroidStudio工具

    一般我们通过终端进入到下载android 的目录自己都记得把找到androidstudio 的目录(cd 进入到这个目录) 如果不知道怎么复制这个路径可以ctrl + l 上面会显示路径的然后在复制即 ...

  9. Ubuntu系统打开终端的方法

    1 自己经常使用的 到相应的文件里面鼠标右键 点击打开终端这个方法和windows系统下使用git终端一样 2 使用快捷键Ctrl+Alt+t 3 在左上角的搜索里面搜索终端然后打开即可

最新文章

  1. Python的XML-RPC学习
  2. LNMP架构详解(1)——了解架构的基本信息
  3. 如何查看已安装的CentOS版本信息
  4. linux服务器配置https访问
  5. Django与CSRF 、AJAX
  6. 工作33:page值不能修改
  7. throws java_基于Java中throw和throws的区别(详解)
  8. 用JSLint+Ant检验HTML代码
  9. Deployment vs ReplicationController in Kubernetes
  10. java下载配置步骤_Java环境构建-JDK下载,安装和配置步骤
  11. 【韦东山嵌入式Linux】Linux命令进阶笔记
  12. 百度Apollo5.0控制模块代码学习(七)MPC控制
  13. 华为服务器 修改为传统模式,电脑设置成服务器模式
  14. 基于uniapp的QQ小程序开发(前端篇)
  15. 微信小程序-区分版本:开发版、体验版和正式版
  16. 高中计算机上册知识总结怎么写,高中计算机总结范文
  17. setPositiveButton,setNegativeButton,setNeutralButton各代表什么意思
  18. Qt总结(六)-- 图表数据曲线
  19. 论文笔记Improving Multi-hop Knowledge Base Question Answering by Learning Intermediate Supervision Signa
  20. Windows 反消息钩子(1)

热门文章

  1. 谈用户裂变,社群裂变的重要性
  2. m4a怎么转换成mp4?一个简单好用的操作教程分享
  3. 微软的surface pro5充电指示灯亮,但充不进去电的原因
  4. 深圳-数据岗位面试不完全记录(回忆版)
  5. Unity3D中Quaternion.Euler方法解析
  6. 物联网实战项目 免费领取!手把手教你如何从0搭建智慧家居中的视频监控系统
  7. 电脑wps可以语音录入吗_懒人用技巧—使用Word录音实现语音录入文字(口读文字,Word为您写文字)...
  8. sm4加密和sm3加密
  9. 让你效率飞起的右键工具——超级右键
  10. 分段函数sgnx的C语言程序,几个重要的分段函数