annotate src/gomatrix.go @ 59:48e46bfe97fa

kaigo: pre-release eraline.
author pyon@macmini
date Wed, 12 Aug 2020 19:57:58 +0900
parents 1b293bb0a011
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
1 package main
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
2
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
3 import (
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
4 "flag"
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
5 "fmt"
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
6 "math/rand"
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
7 "runtime"
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
8 "time"
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
9 )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
10
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
11 func main() {
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
12 sw := flag.Int( "w", 40, "screen width" )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
13 sl := flag.Int( "s", 100, "interval" )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
14 flag.Parse()
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
15
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
16 s := "0123456789abcdefghijkemnopqrstuvwxyzABCDEFGHIJKEMNOPQRSTUVWXYZ!@#$%&*|;:.,=+-/"
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
17 n := len( s )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
18 r := 0
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
19 for i := 1 ; ; i++ {
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
20 r = rand.Intn( n )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
21 fmt.Printf( "%s ", random_color( s[r] ) )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
22 if i == *sw {
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
23 for t := 0; t < *sl; t++ {
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
24 time.Sleep( time.Millisecond )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
25 }
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
26 fmt.Println()
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
27 i = 0
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
28 }
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
29 }
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
30 }
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
31
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
32 func random_color( s byte ) string {
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
33 if runtime.GOOS == "windows" {
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
34 return string( s )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
35 }
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
36 // black, red, green yellow, blue, magenta, cyan, white
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
37 c := [...]int{ 30, 31, 32, 33, 34, 35, 36, 37 }
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
38 r := rand.Intn( len( c ) )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
39 return fmt.Sprintf( "\x1b[%dm%c\x1b[0m", c[r], s )
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
40 }
1b293bb0a011 add gomatrix.
pyon@macmini
parents:
diff changeset
41