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.

50 lines
929 B

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++
}
}
}
}