sapin

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2015 License: MIT Imports: 4 Imported by: 4

README ΒΆ

sapin

πŸŽ„ drawing a christmas tree in Go

GoDoc Build Status Coverage Status

Demo

http://sapin-as-a-service.appspot.com/

Usage

$ sapin --presents --size=5 --star --garlands=4 --color


$ sapin --size=3 --balls=4 --star --emoji


$ sapin --size=1
   *
  ***
 *****
*******
   |

$ sapin --size=2
      *
     ***
    *****
   *******
    *****
   *******
  *********
 ***********
*************
     |||
     |||

$ sapin --balls=4
                   *
                  ***
                 *****
                ****@**
                 *****
                *******
               *********
              ***********
             *************
              *****@**@**
             **********@**
            ********@******
           *@***************
          ****@**@***********
         *********************
           *@************@**
          *********@*********
         ***@**********@******
        ****************@******
       @************************
      @**************************
     *****************************
       *******@*****************
      ***********@***************
     *****************************
    *************************@*****
   *******************@*************
  **********@************************
 ***********************************@*
*****************@*********************
                 |||||
                 |||||
                 |||||
                 |||||
                 |||||

$ sapin -h
Usage:
  sapin [OPTIONS]

Application Options:
  -s, --size=     Size of the sapin (5)
      --balls=    Percent of balls (4)
      --garlands= Add some garlands (4)
  -c, --color     Colorize output
      --star      Add top star
  -e, --emoji     Use emojis
      --presents  Add presents

Help Options:
  -h, --help  Show this help mess

Install

$ go get github.com/moul/sapin/cmd/sapin

Run with docker

$ docker run moul/sapin
docker run moul/sapin --size=4 --garlands=2 --star --color --presents
              #
             ***
            *****
           *****~~
            **~~~
           *~~~***
          ~~~******
         ~~*********
        *************
         ***********
        *************
       ***************
      *@***************
     ***@************@**
    *@****************@**
      @****************
     *******************
    *****@***************
   ***********************
  ********@****************
 *****************@*********
*****************************
            |||||
            |||||   _8_8_
            |||||  |  |  |_8_
            |||||  |__|__|___|

License

MIT

Documentation ΒΆ

Index ΒΆ

Examples ΒΆ

Constants ΒΆ

This section is empty.

Variables ΒΆ

This section is empty.

Functions ΒΆ

This section is empty.

Types ΒΆ

type Sapin ΒΆ

type Sapin struct {
	Size int

	ColorOpts string
	// contains filtered or unexported fields
}

Sapin is the structure defining a sapin.

Example (Complex) ΒΆ
rand.Seed(42)
sapin := NewSapin(3)
sapin.AddBalls(4)
sapin.AddStar()
sapin.Emojize()
fmt.Println(sapin)
Output:

          πŸ’›
         πŸŽ„πŸŽ„πŸŽ„
        πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
       πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
        πŸŽ„πŸ”΄πŸŽ„πŸŽ„πŸŽ„
       πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸ”΄πŸŽ„
      πŸŽ„πŸŽ„πŸŽ„πŸ”΄πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
     πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
    πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸ”΄πŸŽ„πŸŽ„πŸŽ„
     πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
    πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸ”΄πŸŽ„πŸ”΄πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
   πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸ”΄
  πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
 πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„πŸŽ„
         πŸšͺπŸšͺπŸšͺ
         πŸšͺπŸšͺπŸšͺ
         πŸšͺπŸšͺπŸšͺ
Example (Fullballs) ΒΆ
sapin := NewSapin(3)
sapin.AddBalls(100)
fmt.Println(sapin)
Output:

          @
         @@@
        @@@@@
       @@@@@@@
        @@@@@
       @@@@@@@
      @@@@@@@@@
     @@@@@@@@@@@
    @@@@@@@@@@@@@
     @@@@@@@@@@@
    @@@@@@@@@@@@@
   @@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@
         |||
         |||
         |||
Example (Garlands) ΒΆ
rand.Seed(41)
sapin := NewSapin(3)
sapin.AddGarlands(4)
fmt.Println(sapin)
Output:

          *
         **~
        *~~**
       ~~****~
        ***~~
       **~~***
      *~~****~~
     ~~****~~***
    ***~~~~******
     **~~~~*****
    *~~****~~****
   ~~********~~***
  *************~~**
 ****************~~*
*******************~~
         |||
         |||
         |||
Example (Presents) ΒΆ
sapin := NewSapin(4)
sapin.AddPresents()
fmt.Println(sapin.String())
Output:

              *
             ***
            *****
           *******
            *****
           *******
          *********
         ***********
        *************
         ***********
        *************
       ***************
      *****************
     *******************
    *********************
      *****************
     *******************
    *********************
   ***********************
  *************************
 ***************************
*****************************
            |||||
            |||||   _8_8_
            |||||  |  |  |_8_
            |||||  |__|__|___|

func NewSapin ΒΆ

func NewSapin(size int) *Sapin

NewSapin returns a Sapin instance of the specified size.

func (*Sapin) AddBalls ΒΆ

func (s *Sapin) AddBalls(percent int)

func (*Sapin) AddGarlands ΒΆ

func (s *Sapin) AddGarlands(quantity int)

func (*Sapin) AddPresents ΒΆ

func (s *Sapin) AddPresents()

func (*Sapin) AddStar ΒΆ

func (s *Sapin) AddStar()

func (*Sapin) Colorize ΒΆ

func (s *Sapin) Colorize()

func (*Sapin) Emojize ΒΆ

func (s *Sapin) Emojize()

func (*Sapin) GetBodySize ΒΆ

func (s *Sapin) GetBodySize() int

func (*Sapin) GetLineSize ΒΆ

func (s *Sapin) GetLineSize(floor, line int) int

GetLineSize returns the size of the sapin for a specified floor and line.

func (*Sapin) GetMaxSize ΒΆ

func (s *Sapin) GetMaxSize() int

GetMaxSize returns the size of the widest part of the sapin.

func (*Sapin) String ΒΆ

func (s *Sapin) String() string

String returns the output of a sapin drawing. If the sapin is too small the result will be empty.

Directories ΒΆ

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL