Mercurial > mercurial > hgweb_golang.cgi
diff src/gomatrix.go @ 26:1b293bb0a011
add gomatrix.
author | pyon@macmini |
---|---|
date | Sat, 02 Feb 2019 10:35:24 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/gomatrix.go Sat Feb 02 10:35:24 2019 +0900 @@ -0,0 +1,41 @@ +package main + +import ( + "flag" + "fmt" + "math/rand" + "runtime" + "time" +) + +func main() { + sw := flag.Int( "w", 40, "screen width" ) + sl := flag.Int( "s", 100, "interval" ) + flag.Parse() + + s := "0123456789abcdefghijkemnopqrstuvwxyzABCDEFGHIJKEMNOPQRSTUVWXYZ!@#$%&*|;:.,=+-/" + n := len( s ) + r := 0 + for i := 1 ; ; i++ { + r = rand.Intn( n ) + fmt.Printf( "%s ", random_color( s[r] ) ) + if i == *sw { + for t := 0; t < *sl; t++ { + time.Sleep( time.Millisecond ) + } + fmt.Println() + i = 0 + } + } +} + +func random_color( s byte ) string { + if runtime.GOOS == "windows" { + return string( s ) + } + // black, red, green yellow, blue, magenta, cyan, white + c := [...]int{ 30, 31, 32, 33, 34, 35, 36, 37 } + r := rand.Intn( len( c ) ) + return fmt.Sprintf( "\x1b[%dm%c\x1b[0m", c[r], s ) +} +