# Guessing Game

An example of the guessing game picking a number between 1-100.

## Random umber

The `math/rand` standard library is used to generate the random number.

Note, you must seed the generator, for random this is easiest done using `time.Now().UnixNano()`. You can also seed the generator with a known value, such as a user id to get a deterministic random number.

``````rand.Seed(time.Now().UnixNano())
fmt.Println(rand.Intn(100))
``````

## Example Game

Here is the example guessing game

``````package main

import (
"fmt"
"math/rand"
"time"
)

// automatically called on start
func init() {
// new random seed
rand.Seed(time.Now().UnixNano())
}

func main() {
// variable to store guess
var guess int

// variable to store number of guesses
var count int

// pick number to guess, add 1 since Intn gives [0,99]
num := rand.Intn(100) + 1

fmt.Println(">> I'm thinking of a number between 1-100 << ")

// guessing loop
for {
// prompt user for guess
fmt.Print("Guess: ")
_, err := fmt.Scanf("%d", &guess)
if err == nil {
count += 1 // increment guess counter
if guess > num {
fmt.Println(" >> Too high ")
} else if guess < num {
fmt.Println(" >> Too low ")
} else {
fmt.Printf("Correct! It took you %d guesses!\n", count)
break
}
} else { // an error with input