guess.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // guess - игра, в которой игрок должен угадать случайное число.
  2. package main
  3. import (
  4. "bufio"
  5. "fmt"
  6. "log"
  7. "math/rand"
  8. "os"
  9. "strconv"
  10. "strings"
  11. )
  12. func intInput(message string) int {
  13. reader := bufio.NewReader(os.Stdin)
  14. fmt.Println(message)
  15. input, err := reader.ReadString('\n')
  16. if err != nil {
  17. log.Fatal(err)
  18. }
  19. input = strings.TrimSpace(input)
  20. ret, err := strconv.Atoi(input)
  21. if err != nil {
  22. log.Fatal(err)
  23. }
  24. return ret
  25. }
  26. func main() {
  27. target := rand.Intn(100) + 1
  28. fmt.Println("I've chosen a random number berween 1 and 100.")
  29. fmt.Println("Can you guess it?")
  30. success := false
  31. for guesses := 0; guesses < 10; guesses++ {
  32. fmt.Println("You have", 10-guesses, "guesses left.")
  33. guess := intInput("Make a guess: ")
  34. if guess < target {
  35. fmt.Println("Oops. Your guess was LOW.")
  36. } else if guess > target {
  37. fmt.Println("Oops. Your guess was HIGH")
  38. } else {
  39. success = true
  40. fmt.Println("Good job! You guessed it!")
  41. break
  42. }
  43. }
  44. if !success {
  45. fmt.Println("Sorry, you didn't guess my number. It was:", target)
  46. }
  47. }