`
package main
import (
"fmt"
"math/rand"
)
func main() {
maxNum := 100
secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
}
import "math/rand" 导入了 math/rand 包,该包提供了生成随机数的函数。
fmt.Println("The secret number is ", secretNumber) 打印出生成的随机数。
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
maxNum := 100
rand.Seed(time.Now().UnixNano())
secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
}
rand.Seed(time.Now().UnixNano()) 设置随机数种子。rand.Seed() 函数接受一个整数作为种子,并根据种子生成伪随机数序列。在这里,我们使用当前时间的纳秒部分作为种子,以确保每次运行程序时都会生成不同的随机数序列。
这段代码的作用与前一个例子相同,它生成一个介于 0 和 100 之间的随机数,并将其打印到控制台。与前一个例子不同的是,它使用了当前时间作为随机数种子,以确保每次运行程序时都会生成不同的随机数序列。这样做可以增加随机性,并避免在多次运行程序时生成相同的随机数。
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main() {
maxNum := 100
rand.Seed(time.Now().UnixNano())
secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
fmt.Println("Please input your guess")
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString('\n')
if err != nil {
fmt.Println("An error occured while reading input. Please try again", err)
return
}
input = strings.Trim(input, "\r\n")
guess, err := strconv.Atoi(input)
if err != nil {
fmt.Println("Invalid input. Please enter an integer value")
return
}
fmt.Println("You guess is", guess)
}
import "bufio" 导入了 bufio 包,该包提供了缓冲读取功能。import "fmt" 导入了 fmt 包,该包提供了与输入和输出相关的函数。import "math/rand" 导入了 math/rand 包,该包提供了生成随机数的函数。import "os" 导入了 os 包,该包提供了操作系统功能。import "strconv" 导入了 strconv 包,该包提供了字符串与基本数据类型之间的转换函数。import "strings" 导入了 strings 包,该包提供了字符串操作函数。
reader := bufio.NewReader(os.Stdin) 创建一个用于读取用户输入的 bufio.Reader 对象。
input, err := reader.ReadString('\n') 从标准输入读取用户输入的内容,直到遇到换行符('\n')。读取的内容存储在 input 变量中,并通过 err 检查是否发生了错误。
input = strings.Trim(input, "\r\n") 去除输入字符串中的换行符('\r' 和 '\n'),使用 strings 包的 Trim 函数进行处理。
guess, err := strconv.Atoi(input) 将输入字符串转换为整数,并将结果存储在 guess 变量中。如果转换过程中出现错误,err 将被设置为非空值。
fmt.Println("You guess is", guess) 打印用户猜测的数字。
这段代码的作用是生成一个介于 0 和 100 之间的随机数,并要求用户输入猜测的数字。程序将读取用户的输入,并将其转换为整数类型。最后,程序将打印出用户猜测的数字。
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main() {
maxNum := 100
rand.Seed(time.Now().UnixNano())
secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
fmt.Println("Please input your guess")
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString('\n')
if err != nil {
fmt.Println("An error occured while reading input. Please try again", err)
return
}
input = strings.Trim(input, "\r\n")
guess, err := strconv.Atoi(input)
if err != nil {
fmt.Println("Invalid input. Please enter an integer value")
return
}
fmt.Println("You guess is", guess)
if guess > secretNumber {
fmt.Println("Your guess is bigger than the secret number. Please try again")
} else if guess < secretNumber {
fmt.Println("Your guess is smaller than the secret number. Please try again")
} else {
fmt.Println("Correct, you Legend!")
}
}
guess, err := strconv.Atoi(input) 将输入字符串转换为整数,并将结果存储在 guess 变量中。
fmt.Println("You guess is", guess) 打印用户猜测的数字。
if guess > secretNumber { ... } else if guess < secretNumber { ... } else { ... } 根据用户的猜测结果进行比较和输出。
- 如果用户猜测的数字大于 secretNumber,则打印提示信息 "Your guess is bigger than the secret number. Please try again"。
- 如果用户猜测的数字小于 secretNumber,则打印提示信息 "Your guess is smaller than the secret number. Please try again"。
- 如果用户猜测的数字等于 secretNumber,则打印提示信息 "Correct, you Legend!",表示猜测正确。
这段代码的作用是生成一个介于 0 和 100 之间的随机数,并要求用户输入猜测的数字。程序将读取用户的输入,并将其转换为整数类型。然后,程序将比较用户的猜测结果与生成的随机数,并根据比较结果输出相应的提示信息。如果猜测正确,则输出 "Correct, you Legend!"。如果猜测不正确,则输出提示信息指示用户继续尝试。
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main() {
maxNum := 100
rand.Seed(time.Now().UnixNano())
secretNumber := rand.Intn(maxNum)
// fmt.Println("The secret number is ", secretNumber)
fmt.Println("Please input your guess")
reader := bufio.NewReader(os.Stdin)
for {
input, err := reader.ReadString('\n')
if err != nil {
fmt.Println("An error occured while reading input. Please try again", err)
continue
}
input = strings.Trim(input, "\r\n")
guess, err := strconv.Atoi(input)
if err != nil {
fmt.Println("Invalid input. Please enter an integer value")
continue
}
fmt.Println("You guess is", guess)
if guess > secretNumber {
fmt.Println("Your guess is bigger than the secret number. Please try again")
} else if guess < secretNumber {
fmt.Println("Your guess is smaller than the secret number. Please try again")
} else {
fmt.Println("Correct, you Legend!")
break
}
}
}
for循环可以让人进行多次猜测。