package zukitchi import "strings" func Sleep(position int) []string { return compileFrames(position, sleep0, sleep1) } func compileFrames(position int, idle ...string) []string { var result = make([]string, len(idle)) for i, frame := range idle { result[i] = cutFirstAndListLineAndMove(frame, position) } return result } func cutFirstAndListLineAndMove(frame string, position int) string { position = position + 17 if position < 0 { position = 0 } if position > 35 { position = 35 } lines := strings.Split(frame, "\n") result := make([]string, 0, len(lines)) for _, line := range lines { result = append(result, strings.Repeat(" ", position)+line) } return strings.Join(result[1:len(result)-1], "\n") } // // j // k ▄ // i ▀ // l █ const sleep0 = ` ▄▄▄ ▄▄▄ █ █ █ █ ▀▄▄▄████▄▄ ▄▄███▄▄▄▀ ██▀ ▀▀▄▄▄▄▄▄▄▄███ ▀█▀ ██ ▄ ███▄ ▄████▄ ▄▀ ██▀▀█▀▀████▀▀█▀▀██▄ █▀▀█████▄███████▄▄█▄▄ ▄▄▀▀▀▀█▀▀ █ ▀▀▀▄ █ █ █ █ █ ▄▀▀▀▄▄▄▄█████▀▀▀▀▀█████▄ █ █ █▄▄▄▄█▀▀▀▀▀▀██████ ▀▀▀█ █ █ ██████ ██████ █ █ █ █▀▀▀▀███████ ███▄▄█ █ █ ▀▄▄▄▄███▀▀▀▀▀▀▀▀▀▀██████ █ █ ▀▀▀▀▀ █ █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀ ` const sleep1 = ` ▄▄▄ ▄▄▄ █ █ █ █ ▀▄▄▄█████▀▄▄ ▄▄▄▀████▄▄▄▀ ██▄ ███▀▀▀████▀ █▀ ██▄█▄████▄██████▄█ ███████████████████ ▄█▄▀ ▀▀█▄▄ ▄▄▀▀ █ █ ▀▀▀▀▄ █ ▄█▄▄▄▄█████▀▀▀▀▀███▄ █ █ ▄▀ ▄█▀▀▀▀▀▀██████ ▀██▄ █ █ █▄████ ██████ ██ █ █ █ ███▀▀███████ ██▄▀▀█ █ █ █▀ ▄██▀▀▀▀▀▀▀▀▀▀▄███ █ █ █ ▀▄▄▀ ▀███ █ █ ▄▄▄▄▄▄▄▄▄▄▄▄▄ ▀ █ █ ▄▄▀▀▀ ▀ █ █ ▀ ▀▀▄▄ █ ▀▀▀ ▀▀▀▀ ` //