这一章节,我们巩固一下我们的所学,编写一个猜数字的小游戏。
游戏设计游戏流程图:
流程图

步骤说明
1、开始游戏、初始化,输入最大数字,初始化被猜数字2、输入要猜的数字3、是否正确判断,输出结果,错误则回到第2步骤,正确则继续往下执行4、打印正确结果5、游戏结束
go语言实现猜数字小游戏
还是在前面章节的go-first工程中编写代码,建立一个utils模块,创建一个猜游戏的guess_number.go文件编写代码,创建一个mod文件,如下图:
猜数字工具图
源码如下:
guess_number.go
package utilsimport ("bufio""fmt""math/rand""os""strconv""strings""time")//最大数字var maxNum = 100//猜数字游戏func GuessNum() {fmt.Println("请输入您要猜的数字,范围是0到100")reader := bufio.NewReader(os.Stdin)rand.Seed(time.Now().UnixNano())secretNumber := rand.Intn(maxNum)//玩的时候可以注释掉这行,我这里打开直观且容易理解一些fmt.Println("初始化被猜的数字是: ", secretNumber)for {input, err := reader.ReadString('\n')if err != nil {fmt.Println("读取有误,请重新输入", err)continue}input = strings.Trim(input, "\r\n")guess, err := strconv.Atoi(input)if err != nil {fmt.Println("输入有误,请输入一个整数")continue}fmt.Println("您猜的数字是: ", guess)if guess > secretNumber {fmt.Println("您猜的数字大于被猜的数字,请继续猜")} else if guess < secretNumber {fmt.Println("您猜的数字小于被猜的数字,请继续猜")} else {fmt.Println("恭喜您猜对了")break}}fmt.Println("游戏结束")}
go.mod
module com.test/utilsgo 1.22.3
go语言小游戏执行演示
编辑mod.go引入utils模块,如下图:
引入utils图
tips:大家也可以用之前章节说的命令进行加入
编辑hello.go文件,引入utils包,并调用utils模块下面猜字游戏方法,如下图:
引入utils图
vs终端执行依赖整理命令及运行命令
PS D:\work\workspace\go\go-first> go mod tidygo: found com.test/utils in com.test/utils v0.0.0-00010101000000-000000000000PS D:\work\workspace\go\go-first> go run .
代码运行结果图:
运行结果图
小游戏涉及到的go语言的标准库说明"bufio" Go语言标准库中的bufio提供了数据的缓冲读写功能,使得读写操作更加高效"fmt" Go语言中的fmt是一个格式化输入和输出数据。"math/rand" Go语言中的math/rand是一个随机数生成器"os" Go语言中的os提供了与操作系统进行交互的一些基本功能,使得程序能够更好地与操作系统进行通信和控制,在这里我们读取了控制台输入数据。"strconv" Go语言中的strconv实现了基本数据类型和字符串之间的转换"strings" Go语言中的strings是用于字符串相关操作"time" Go语言的time提供了用于时间处理的各种功能,包括时间的获取、解析、格式化、计算和时区处理等
这一章节到这里就结束了,下一章节我们继续巩固一下,编写一个go语言的取名系统吧