目錄
一、程序要實現(xiàn)效果:
二、思路分析:
三、具體代碼
四、可能存在的疑問
一、程序要實現(xiàn)效果:
1.程序首先生成一個0-100的隨機整數(shù)。
2.提示玩家進行猜測。
3.每次玩家需要輸入一個數(shù)字,程序?qū)嬖V玩家輸入的數(shù)字與生成的數(shù)字的大小關(guān)系,并且讓玩家再次猜測。
4.如果猜對了,則會告訴玩家勝利并退出程序。
二、思路分析:
- 由于要產(chǎn)生0-100的隨機整數(shù)(且每次運行程序產(chǎn)生的數(shù)字都不同),所以使用當(dāng)前的時間(UnixNano)作為種子來初始化隨機數(shù)生成器(rand)。
- 使用隨機數(shù)生成器生成一個在0到maxNum之間的隨機整數(shù),作為要猜測的秘密數(shù)字(secretNumber)。
-
提示用戶輸入他們的猜測。
-
創(chuàng)建一個從標準輸入(os.Stdin)讀取的緩沖讀取器(bufio.NewReader)。
-
進入一個無限循環(huán),直到用戶猜對秘密數(shù)字為止。
-
在每次循環(huán)中,首先嘗試從緩沖讀取器中讀取一行輸入,如果讀取過程中發(fā)生錯誤,則打印錯誤信息并跳過本次循環(huán)。
-
去除輸入字符串兩端的回車和換行符。
-
嘗試將輸入字符串轉(zhuǎn)換為整數(shù),如果轉(zhuǎn)換失?。摧斎氲牟皇钦麛?shù)),則打印錯誤信息并跳過本次循環(huán)。
-
如果轉(zhuǎn)換成功,打印用戶的猜測。
-
根據(jù)用戶的猜測和秘密數(shù)字的大小關(guān)系,給出相應(yīng)的提示。
-
如果用戶猜對了秘密數(shù)字,打印恭喜信息并跳出循環(huán)。
三、具體代碼
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
}
}
}
四、可能存在的疑問
1.去除字符串兩端回車和換行符是什么意思?
答:在讀取用戶輸入時,通常需要去除字符串兩端的回車和換行符。這是因為這些字符通常是由于用戶在終端或命令行中按下Enter鍵而產(chǎn)生的,而不是用戶實際輸入的內(nèi)容。因此,如果我們不去除它們,將導(dǎo)致程序無法正確解析用戶的輸入,并可能導(dǎo)致意外的行為或錯誤。
2.嘗試將輸入字符串轉(zhuǎn)換為整數(shù),如果轉(zhuǎn)換失?。摧斎氲牟皇钦麛?shù)),則打印錯誤信息并跳過本次循環(huán)。這段思路是什么意思?文章來源:http://www.zghlxwxcb.cn/news/detail-707361.html
答:在Go語言中,對于輸入的處理都是按照字符串進行的,比如我輸入97,其實是輸入數(shù)字字符“97”。文章來源地址http://www.zghlxwxcb.cn/news/detail-707361.html
到了這里,關(guān)于Go語言實踐案例之猜謎游戲| 青訓(xùn)營的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!