GO语言工程实践及课后作业 1 | 青训营

90 阅读1分钟

在这个课后作业中,我们将对给定的猜数字游戏进行改进,使用fmt.Scanf来简化代码实现。同时,我们会记录代码实现过程和文件路径。

1. 实现思路

猜数字游戏的目标是让用户猜测一个随机生成的秘密数字,直到猜中为止。用户每次猜测后,程序会根据猜测与秘密数字的大小关系给出提示。

2. 代码实现

以下是改进后的代码实现,使用fmt.Scanf来获取用户输入:

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	maxNum := 100
	rand.Seed(time.Now().UnixNano())
	secretNumber := rand.Intn(maxNum)

	fmt.Println("Welcome to the Guess the Number Game!")
	fmt.Println("I'm thinking of a number between 1 and", maxNum)

	var guess int
	for {
		fmt.Print("Please enter your guess: ")
		_, err := fmt.Scanf("%d", &guess)
		if err != nil {
			fmt.Println("Invalid input. Please enter an integer value.")
			continue
		}

		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("Congratulations! You guessed the correct number:", secretNumber)
			break
		}
	}
}

3. 结论

通过使用fmt.Scanf来获取用户输入,我们简化了代码并提高了用户体验。这个作业让我们更熟悉了Go语言的基本输入输出和流程控制。在工程实践中,我们可以继续优化代码结构、错误处理等方面,以使代码更加健壮和易于维护。这是最简单的一个作业。