欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Go語言實現(xiàn)猜謎游戲

 更新時間:2023年09月13日 10:24:45   作者:fashia  
這篇文章主要為大家詳細介紹了如何基于Go語言實現(xiàn)猜謎游戲,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習

一、程序要實現(xiàn)效果:

1.程序首先生成一個0-100的隨機整數(shù)。

2.提示玩家進行猜測。

3.每次玩家需要輸入一個數(shù)字,程序?qū)嬖V玩家輸入的數(shù)字與生成的數(shù)字的大小關系,并且讓玩家再次猜測。

4.如果猜對了,則會告訴玩家勝利并退出程序。

二、思路分析:

  1. 由于要產(chǎn)生0-100的隨機整數(shù)(且每次運行程序產(chǎn)生的數(shù)字都不同),所以使用當前的時間(UnixNano)作為種子來初始化隨機數(shù)生成器(rand)。
  2. 使用隨機數(shù)生成器生成一個在0到maxNum之間的隨機整數(shù),作為要猜測的秘密數(shù)字(secretNumber)。
  3. 提示用戶輸入他們的猜測。

  4. 創(chuàng)建一個從標準輸入(os.Stdin)讀取的緩沖讀取器(bufio.NewReader)。

  5. 進入一個無限循環(huán),直到用戶猜對秘密數(shù)字為止。

  6. 在每次循環(huán)中,首先嘗試從緩沖讀取器中讀取一行輸入,如果讀取過程中發(fā)生錯誤,則打印錯誤信息并跳過本次循環(huán)。

  7. 去除輸入字符串兩端的回車和換行符。

  8. 嘗試將輸入字符串轉(zhuǎn)換為整數(shù),如果轉(zhuǎn)換失敗(即輸入的不是整數(shù)),則打印錯誤信息并跳過本次循環(huán)。

  9. 如果轉(zhuǎn)換成功,打印用戶的猜測。

  10. 根據(jù)用戶的猜測和秘密數(shù)字的大小關系,給出相應的提示。

  11. 如果用戶猜對了秘密數(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)容。因此,如果我們不去除它們,將導致程序無法正確解析用戶的輸入,并可能導致意外的行為或錯誤。

2.嘗試將輸入字符串轉(zhuǎn)換為整數(shù),如果轉(zhuǎn)換失?。摧斎氲牟皇钦麛?shù)),則打印錯誤信息并跳過本次循環(huán)。這段思路是什么意思?

答:在Go語言中,對于輸入的處理都是按照字符串進行的,比如我輸入97,其實是輸入數(shù)字字符“97”。

到此這篇關于基于Go語言實現(xiàn)猜謎游戲的文章就介紹到這了,更多相關Go猜謎游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Golang語言如何高效拼接字符串詳解

    Golang語言如何高效拼接字符串詳解

    最近在做性能優(yōu)化,有個函數(shù)里面的耗時特別長,看里面的操作大多是一些字符串拼接的操作,而字符串拼接在 golang 里面其實有很多種實現(xiàn),下面這篇文章主要給大家介紹了關于Golang語言如何高效拼接字符串的相關資料,需要的朋友可以參考下
    2021-11-11
  • mac下安裝golang框架iris的方法

    mac下安裝golang框架iris的方法

    這篇文章主要介紹了mac下安裝golang框架iris的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Skywalking-go自動監(jiān)控增強使用探究

    Skywalking-go自動監(jiān)控增強使用探究

    這篇文章主要介紹了Skywalking-go自動監(jiān)控增強使用深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Go語言輕松實現(xiàn)郵件發(fā)送通知功能的完全指南

    Go語言輕松實現(xiàn)郵件發(fā)送通知功能的完全指南

    在現(xiàn)代 Web 應用中,郵件通知是一個不可或缺的功能,本文將深入解析一個基于 Go 語言 smtp 協(xié)議和 email 庫的郵件發(fā)送工具,需要的可以了解下
    2025-04-04
  • Go語言實現(xiàn)UDP協(xié)議及TCP通訊

    Go語言實現(xiàn)UDP協(xié)議及TCP通訊

    這篇文章介紹了Go語言實現(xiàn)UDP協(xié)議及TCP通訊的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Golang如何快速刪除map所有元素

    Golang如何快速刪除map所有元素

    這篇文章主要介紹了Golang如何快速刪除map所有元素問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Golang使用gvm進行版本控制的安裝使用教程

    Golang使用gvm進行版本控制的安裝使用教程

    這篇文章主要為大家介紹了Golang使用gvm進行版本控制的安裝使用教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 詳解Go語言各種常見類型的默認值和判空方法

    詳解Go語言各種常見類型的默認值和判空方法

    本文主要介紹了詳解Go語言各種常見類型的默認值和判空方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 通過Golang實現(xiàn)無頭瀏覽器截圖

    通過Golang實現(xiàn)無頭瀏覽器截圖

    在Web開發(fā)中,有時需要對網(wǎng)頁進行截圖,以便進行頁面預覽、測試等操作,本文為大家整理了Golang實現(xiàn)無頭瀏覽器的截圖的方法,感興趣的可以了解一下
    2023-05-05
  • go語言優(yōu)雅地處理error工具及技巧詳解

    go語言優(yōu)雅地處理error工具及技巧詳解

    這篇文章主要為大家介紹了go語言優(yōu)雅地處理error工具及技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11

最新評論