// For more tutorials: https://blog.learngoprogramming.com // // Copyright © 2018 Inanc Gumus // Learn Go Programming Course // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ // package main import ( "fmt" "math/rand" "os" "strconv" "time" ) const ( maxTurns = 5 // less is more difficult usage = `Welcome to the Lucky Number Game! 🍀 The program will pick %d random numbers. Your mission is to guess one of those numbers. The greater your number is, harder it gets. Wanna play? (Provide -v flag to see the picked numbers.) ` ) func main() { rand.Seed(time.Now().UnixNano()) args := os.Args[1:] if len(args) != 1 { fmt.Printf(usage, maxTurns) return } var verbose bool if args[0] == "-v" { verbose = true } guess, err := strconv.Atoi(args[0]) if err != nil { fmt.Println("Not a number.") return } if guess < 0 { fmt.Println("Please pick a positive number.") return } for turn := 0; turn < maxTurns; turn++ { n := rand.Intn(guess + 1) if verbose { fmt.Printf("%d ", n) } if n == guess { switch rand.Intn(3) { case 0: fmt.Println("🎉 YOU WIN!") case 1: fmt.Println("🎉 YOU'RE AWESOME!") case 2: fmt.Println("🎉 PERFECT!") } return } } msg := "%s Try again?\n" switch rand.Intn(2) { case 0: fmt.Printf(msg, "☠️ YOU LOST...") case 1: fmt.Printf(msg, "☠️ JUST A BAD LUCK...") } }