package mainimport ("fmt""math/rand""time"
)func main() {maxNum := 100r := rand.New(rand.NewSource(time.Now().UnixNano()))secretNumber := r.Intn(maxNum)fmt.Println("Please input your guess:")var guess intfor {_, 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!"。
这个猜数字游戏的实现逻辑如下:
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
,则提示玩家继续尝试,如果猜测数字小于秘密数字,则同样提示玩家继续尝试。本文发布于:2024-02-03 03:27:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170690205648356.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |