当前位置: 首页 > news >正文

Go语言实现猜数字小游戏

目录

前言

一、设计思路

二、代码编写

2.1 产生随机数

2.2 用户输入数据

2.3  核心代码

三、 全部代码

四、效果图

总结


前言

最近在学习go语言,刚刚学完go语言的基础语法。编写了一个猜数字的小游戏来练习循环、分支语句、变量定义、输入输出等基础的go语言语法。为使今后的学习过程中更加对基础知识点掌握的更加牢固。


一、设计思路

     1. 首先程序随机生成一个100以内的整数,然后等待用户的输入。
     2. 如果用户输入的是一个整数则转到下一步,否则显示错误提示信息并重新输入。
     3. 如果用户输入的整数比随机数大,程序提示“Your guess is bigger than the secret number. Please try again”。
     4. 如果用户输入的整数比随机数小,程序提示“Your guess is smaller than the secret number. Please try again”。
     5. 如果用户输入的整数与随机数相同,程序提示“Correct, you Legend!”
     6. 如果用户猜的次数大于10次并且没有猜对,程序提示“The number of times has reached the upper limit. Game failed”。

二、代码编写

2.1 产生随机数

使用时间戳产生随机种子,得到一个随机生成的100以内的整数。

/**
	产生随机数
	*/
	maxNum := 100
	rand.Seed(time.Now().UnixNano())
	secretNumber := rand.Intn(maxNum)
	// fmt.Println("The secret number is ", secretNumber)
	fmt.Println("Please input your guess")

2.2 用户输入数据

\n是因为上一次输入会产生缓冲的空格,trim是去掉左右空格。atoi是将字符串转为整数以便于进行比较。

fmt.Scanf("%s \n", &input)
input = strings.Trim(input, "\r\n")

guess, err := strconv.Atoi(input)

2.3  核心代码

比较数字的大小。

if guess > secretNumber {
			fmt.Println("Your guess is bigger than the secret number. Please try again count=", count)
		} else if guess < secretNumber {
			fmt.Println("Your guess is smaller than the secret number. Please try again count=", count)
		} else {
			fmt.Println("Correct, you Legend!")
			break
		}

三、 全部代码

package main

import (
	"fmt"
	"math/rand"
	"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")

	/**
	输入猜的数进行比较
	*/

	var input string
	var count = 0
	for {

		fmt.Scanf("%s \n", &input)
		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)

		count = count + 1
		if guess > secretNumber {
			fmt.Println("Your guess is bigger than the secret number. Please try again count=", count)
		} else if guess < secretNumber {
			fmt.Println("Your guess is smaller than the secret number. Please try again count=", count)
		} else {
			fmt.Println("Correct, you Legend!")
			break
		}

		if count == 10 {
			fmt.Println("The number of times has reached the upper limit. Game failed")
			break
		}
	}
}

四、效果图

 当用户猜的次数超过10次时,会提示游戏失败,跳出循环。如下图:

 当输入非法字符时,会有相应的提示信息。如下图所示:

当用户在10次内猜对时,提示信息如下图所示:

 

总结

这就是本次练习的猜数字小游戏的全部代码及其演示过程。对于刚学习go语言的我来说对于基础知识点的掌握还是非常有帮助的。分享给大家一起学习,有什么需要完善的地方还请在评论区讨论交流。

相关文章:

  • 做网站530元/日本关键词热搜榜
  • 建网站在线支付怎么/如何优化网络
  • 微信公众号和网站建设方案/国际新闻最新消息10条
  • 贵阳网站建设套餐/网站生成器
  • 怎么做网站推广软件/网络营销技巧培训
  • 备案网站注意事项/搜索引擎优化指的是什么
  • 算法第十二期——BFS-判重
  • 机器学习实战4:基于马尔科夫随机场的图像分割(附Python代码)
  • 尚硅谷ES6李强笔记
  • 数据大佬的成长经验分享 | ​我的非典型数据分析之路
  • 使用动态输出打印内核的DEBUG信息
  • Vue3商店后台管理系统设计文稿篇(五)
  • 一次非典型的Netty内存泄露案例复盘
  • 测试开发——测试分类
  • 源码看CAF的线程调度框架
  • deap遗传算法 tirads代码解读
  • Himall商城ExpressDaDaHelper 取消订单(线上环境)
  • 【Linux系统】第四篇:Linux中编辑器vim的使用