You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"io"
|
|
|
|
"net/http"
|
|
|
|
"os"
|
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
banner := "shadow"
|
|
|
|
ascii, err := http.Get("https://git.01.kood.tech/root/public/raw/branch/master/subjects/ascii-art/" + banner + ".txt")
|
|
|
|
|
|
|
|
asciiBody, err := io.ReadAll(ascii.Body)
|
|
|
|
if err != nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
args := os.Args[1]
|
|
|
|
loopCount := 0
|
|
|
|
var newlinePos []int
|
|
|
|
var hasNewLine bool
|
|
|
|
asciiSplit := strings.Split(string(asciiBody), "\n")
|
|
|
|
for i := 0; i < 8; i++ {
|
|
|
|
for j := 0; j < len(args); j++ {
|
|
|
|
hasNewLine = false
|
|
|
|
if args[j] == '\\' && args[j+1] == 'n' {
|
|
|
|
newlinePos = append(newlinePos, j)
|
|
|
|
|
|
|
|
hasNewLine = true
|
|
|
|
fmt.Println()
|
|
|
|
break
|
|
|
|
}
|
|
|
|
fmt.Printf(string(asciiSplit[(int(args[j])-32)*8+(int(args[j])-32)+i+1]))
|
|
|
|
|
|
|
|
if j == len(args)-1 {
|
|
|
|
fmt.Println()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if i == 7 {
|
|
|
|
if hasNewLine == true {
|
|
|
|
i = -1
|
|
|
|
hasNewLine = false
|
|
|
|
args = args[newlinePos[loopCount*8]+2:]
|
|
|
|
loopCount++
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|