猜谜游戏
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
maxNum := 100
r := rand.New(rand.NewSource(time.Now().UnixNano()))
secretNumber := r.Intn(maxNum)
fmt.Println("Please input your guess:")
var guess int
for {
_, err := fmt.Scanf("%d", &guess)
if err != nil {
fmt.Println("Invalid input. Please enter an integer value")
continue
}
fmt.Println("Your 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
}
}
}
解释:
这段Go代码是一个简单的猜数字游戏。程序开始时会生成一个随机的秘密数字,并提示玩家输入猜测的数字。玩家每次输入一个数字后,程序会告诉玩家这个数字是偏大还是偏小,直到玩家猜对为止。如果输入非数字或者在读取输入时出现错误,程序会提示玩家重新输入。玩家猜对秘密数字后,游戏结束并输出"Correct, you Legend!"。文章来源:https://www.toymoban.com/news/detail-536506.html
这个猜数字游戏的实现逻辑如下:文章来源地址https://www.toymoban.com/news/detail-536506.html
- 确定游戏的最大可猜测数字
maxNum
,在代码中设定为100。 - 使用
rand.NewSource(time.Now().UnixNano())
创建一个随机数生成器,并以当前时间的纳秒数作为种子,确保每次运行程序时生成的随机数是不同的。 - 使用随机数生成器的
Intn(maxNum)
方法生成一个0到maxNum-1
之间的随机整数作为秘密数字secretNumber
。 - 提示玩家输入猜测的数字,并使用
fmt.Scanf("%d", &guess)
读取玩家的输入。 - 进入游戏循环,循环中玩家可以反复输入猜测的数字直到猜对为止。
- 在每次循环中,首先读取玩家输入的内容并处理可能出现的错误。
- 使用
strconv.Atoi(input)
将输入的字符串转换为整数类型的猜测数字guess
。若输入的内容非数字,则提示玩家重新输入。 - 检查猜测数字
guess
与秘密数字secretNumber
的大小关系,并给出相应的提示信息。 - 如果猜测数字
guess
大于秘密数字secretNumber
,则提示玩家继续尝试,如果猜测数字小于秘密数字,则同样提示玩家继续尝试。 - 如果玩家猜对了秘密数字,输出"Correct, you Legend!",并结束游戏循环。
- 玩家猜对后,游戏结束,程序运行结束。
到了这里,关于猜谜游戏(Go实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!