欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Go語言實現(xiàn)在終端繪制小兔子

 更新時間:2023年01月13日 14:19:57   作者:陳明勇  
這篇文章主要為大家詳細介紹了如何利用Go語言實現(xiàn)在終端繪制小兔子來給大家拜個早年,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下

前言

思來想去,使用 Go 語言創(chuàng)作,沒有想到好的創(chuàng)意,最后打算在終端動態(tài)打印小兔子,給大家拜年!

先來看看效果圖:

創(chuàng)作過程

小兔子模型制作

大部分的時間,都花在了畫兔子圖案的工作上。創(chuàng)建一個 txt 文檔,在文檔里通過特殊符號,一步一步將模型搭好,然后附上一副春節(jié)對聯(lián)。

實現(xiàn)思路

整個動態(tài)過程是由幾個不同的圖案依次打印而成,一共有 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)
	}
}

首先,使用七個字符串變量,保存七個不同的圖案,用于后續(xù)打印。

其次,將七個字符串變量放入字符串切片里,后續(xù)易于操作。

接下來,循環(huán)遍歷切片,打印圖案。

打印圖案之前,先通過 exec.Command 函數(shù),執(zhí)行 cls 命令,達到在 windows 系統(tǒng)上清屏的效果。cls 的缺點就是清屏時會閃屏,而上面注釋掉的一行代碼是通過終端控制符進行清屏,基本上不閃爍,適用于 linux 終端,在 windows 的命令行模式下清屏無效。同時 cls 命令和終端控制符在碼上掘金上也沒有看到清屏的效果,如果讀者有好的方法,請多多指教!

打印一個圖案之后,延時 0.5 秒后打印下一個圖案,讓肉眼可觀察到整個過程。

小結(jié)

動一動手指,讓小兔子在終端給大家拜年,簡單又有趣。

除了動手制作圖案以外,本次創(chuàng)作遇到最大困難是如何在終端清屏時不閃爍。通過打印 \033c 終端控制符進行清屏,基本上不閃爍,但是此操作在 windows cmd 終端下不起作用,無奈只能通過執(zhí)行 cls 命令,達到清屏的效果。但是碼上掘金上面,兩種方式都沒有達到清屏效果。

到此這篇關(guān)于利用Go語言實現(xiàn)在終端繪制小兔子的文章就介紹到這了,更多相關(guān)Go語言終端繪制兔子內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何為Go中的無限循環(huán)添加時間限制

    詳解如何為Go中的無限循環(huán)添加時間限制

    在 Go 語言的開發(fā)過程中,我們有時需要在后臺執(zhí)行長時間運行的任務,例如監(jiān)聽或輪詢某些資源,這篇文章將通過一個實例詳細介紹如何為 Go 語言中的無限循環(huán)設置時間限制,保證程序的健壯性和可控性,需要的朋友可以參考下
    2024-04-04
  • GPT回答:go語言和C語言切片對比

    GPT回答:go語言和C語言切片對比

    這篇文章主要為大家介紹了GPT回答:go語言和C語言切片對比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • go語言日志實現(xiàn)詳解(打印日志、日志寫入文件和日志切割)

    go語言日志實現(xiàn)詳解(打印日志、日志寫入文件和日志切割)

    golang內(nèi)置了log包,實現(xiàn)簡單的日志服務,下面這篇文章主要給大家介紹了關(guān)于go語言日志實現(xiàn)(打印日志、日志寫入文件和日志切割)的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • GoAdminGroup/go-admin的安裝和運行的教程詳解

    GoAdminGroup/go-admin的安裝和運行的教程詳解

    這篇文章主要介紹了GoAdminGroup/go-admin的安裝和運行的教程詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 簡單談談Golang中的字符串與字節(jié)數(shù)組

    簡單談談Golang中的字符串與字節(jié)數(shù)組

    這篇文章主要給大家介紹了關(guān)于Golang中字符串與字節(jié)數(shù)組的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Golang具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • go?sync?Waitgroup數(shù)據(jù)結(jié)構(gòu)實現(xiàn)基本操作詳解

    go?sync?Waitgroup數(shù)據(jù)結(jié)構(gòu)實現(xiàn)基本操作詳解

    這篇文章主要為大家介紹了go?sync?Waitgroup數(shù)據(jù)結(jié)構(gòu)實現(xiàn)基本操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Go語言反射reflect.Value實現(xiàn)方法的調(diào)用

    Go語言反射reflect.Value實現(xiàn)方法的調(diào)用

    本文主要介紹了Go語言反射reflect.Value實現(xiàn)方法的調(diào)用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Go構(gòu)建器模式構(gòu)建復雜對象方法實例

    Go構(gòu)建器模式構(gòu)建復雜對象方法實例

    本文介紹了構(gòu)建器模式,如何通過構(gòu)建器對象構(gòu)建復雜業(yè)務對象的方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Go之接口型函數(shù)用法

    Go之接口型函數(shù)用法

    這篇文章主要介紹了Go之接口型函數(shù)用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 淺析go中Ticker,Timer和Tick的用法與區(qū)別

    淺析go中Ticker,Timer和Tick的用法與區(qū)別

    在go面試的時候,面試官經(jīng)常會問time包的Ticker,Timer以及Tick的區(qū)別,一般在超時控制的時候用的比較多,今天就跟隨小編一起來詳細學一下這幾個的區(qū)別吧
    2023-10-10

最新評論