Go에 크리스마스 트리 보이기

5216 단어 Go
이 글은 factory Advent Calendar 2018 Day25와 관련된 글입니다.
전날은 @yst_i의'다중 모듈 단순 예'.

개요


크리스마스라서 Go로 크리스마스 트리를 무럭무럭 키울 수 있는 도구를 만들었어요.
만약 Mac과 Linux에 Go 환경이 있다면, 다음 두 명령만으로 트리를 CLI 환경으로 보낼 수 있습니다.
go get github.com/gosagawa/xmastree
xmastree
크기와 속도를 지정할 수 있습니다.모니터의 크기만 허락하면 큰 나무를 만들 수 있다.
xmastree -size=20 -speed=40

해설


소스 여기 있어요.
https://github.com/gosagawa/xmastree
별일 없는 절차지만 제대로 하려면 상당한 노력이 필요할 것 같아요.

대응하는 일

  • 텍스트 색상 변경
  • 같은 곳에서 애니메이션
  • 이를 실현하기 위해 우리는 전의 서열을 사용했다.Windows라면 움직이지 않을 거예요.
  • Cli 명령 도구로서 크기와 속도
  • 를 선택적으로 지정할 수 있습니다.
  • TravisCI와 연동
  • readme에 Gif영상 올리기
  • 대처하기 전에 기진맥진한 일

  • 테스트
  • 문자는 즉시 출력되지만 테스트를 위해 문자열로 출력하는 것이 좋다
  • 코드를 쉽게 읽을 수 있음
  • 파라미터 주위 또는 표시 부분 지저분
  • 나무처럼 꾸며졌다.
  • 한 마디로 설명하다


    이번 도구를 실현하기 위해 "\033 [xxxA"(xxx의 부분은 임의의 숫자) 의 의미 시퀀스를 사용했습니다. 이것은 xxx 커서를 위로 돌려서 이것으로 써서 반복해서 묘사하는 것입니다.
        for i := 0; i < size; i++ {
            if i != 0 {
                fmt.Printf("\033[%vA", maxHeight)
            }
            tree := newTree(i*2+5, i+1, 2, maxHeight)
            tree.display()
            time.Sleep(time.Duration(speed) * time.Millisecond)
            maxWidth = tree.MaxWidth
        }
    
    또한 다음과 같이 상수로 정의하고 각 문자의 색깔은 전의순으로 설정한다
    const (
        // EscapeRed display red color
        EscapeRed = "\033[31m"
    
        // EscapeGreen  display green color
        EscapeGreen = "\033[32m"
    
        // EscapeYellow display Yellow color
        EscapeYellow = "\033[33m"
    
        // EscapeReset  reset color
        EscapeReset = "\033[0m"
    )
    

    총결산


    조그마한 물건이지만 잘하려면 힘들 것 같아요.시간을 쪼개서 이런 CLI 도구를 만드는 경기는 재미있을 것이다.
    메리 크리스마스!

    참고물, 초대받은 물건

  • golang에서 이스케이프 시퀀스 처리(텍스트 색상, 커서 이동)
  • [C언어] 명령줄의 크리스마스 트리
  • Github와 Qiita의 gif 형식의 애니메이션을 만드는 방법
  • 좋은 웹페이지 즐겨찾기