• 一、场景
  • 二、分析
  • 三、代码
  • 四、运行结果
  • 五、延伸

一、场景

随机生成 2 个数,在这 2 个数中随机结果数字。然后我们键盘录入,猜测这个结果数字是几。

二、分析

需要完成这些操作,我们需要知道的知识点:

  • 1、随机数获取函数
  • 2、键盘录入函数
  • 3、打印(格式化打印)函数

三、代码

package mainimport ("fmt""math/rand""time"
)func main() {//结果数值的取值范围guessArray := [2][2]int64{{10, 20}, //最小值取值范围为[10, 20){30, 80}, //最大值取值范围为[30, 80)}guessResult := make([]int64, 0) //我们需要猜测的数字范围var i int64for i = 0; i < 2; i++ { //循环取出最小、最大值min := guessArray[i][0]max := guessArray[i][1]randNumber := genRangeNumber(min, max, i)guessResult = append(guessResult, randNumber) //把随机出来的结果追加到我们需要猜测的数字中}//生成结果数据guessMin := guessResult[0]guessMax := guessResult[1]resultNumber := genRangeNumber(guessMin, guessMax, 999) //在[guessMin, guessMax)中随机生成答案数字//先提示一下猜测范围fmt.Printf("数字范围在:[%d, %d) \n", guessMin, guessMax)//编写一个for死循环:一直猜测结果,直到猜对为止var inputNumber int64guessNumber := 0 //记录猜测的次数for {//开始猜测了fmt.Println("请输入数字:")fmt.Scanln(&inputNumber)if inputNumber > resultNumber {fmt.Printf("大了,数字范围:(%d, %d)\n", guessMin, inputNumber)guessMax = inputNumber //把猜测是最大值设置为输入的值guessNumber++continue //跳出循环}if inputNumber < resultNumber {fmt.Printf("小了,数字范围:(%d, %d)\n", inputNumber, guessMax)guessMin = inputNumber //把猜测是最小值设置为输入的值guessNumber++continue //跳出循环}guessNumber++break //跳出循环}fmt.Printf("恭喜您:猜测了 [ %d ] 次就成功猜到了,正确答案是:%d", guessNumber, resultNumber)
}/*** 生成两个数字[min, max)之间的随机数* @param min 最小值* @param max 最大值* @param i 为了随机,加上循环i,保证唯一*/
func genRangeNumber(min, max, i int64) int64 {//println(time.Now().Unix())     //打印:1609232986//println(time.Now().UnixNano()) //打印:1609232986276977000rand.Seed(time.Now().UnixNano() + i) //给一个时间戳的种子,否则每次生成都是一样的值randNum := rand.Int63n(max - min)randNum = min + randNumreturn randNum
}

四、运行结果

五、延伸

我们可以完善一下我们的代码:

  • 1、输入的数字类型校验
  • 2、输入的数字范围校验:不能小于猜测的最小值,并且不能大于等于猜测的最大值

golang 猜数字小游戏相关推荐

  1. 1.12 实例:猜数字小游戏

    猜数字是一个经典的小游戏,程序先产生一个随机数,然后用户输入数字,程序将输入的数字与随机数进行对比,给出用户相应的提示信息. 本节实现了一个基于 IO 流的猜数字游戏,游戏中限制玩家游戏次数,游戏试玩 ...

  2. 第三次学JAVA再学不好就吃翔(part28)--猜数字小游戏

    学习笔记,仅供参考 面向对象 猜数字小游戏 随机生成一个1 ~ 100之间的数,我来猜是几: import java.util.Scanner;class GuessNumTest {public s ...

  3. 【iVX 初级工程师培训教程 10篇文拿证】03 事件及猜数字小游戏

    目录 [iVX 初级工程师培训教程 10篇文拿证]01 了解 iVX 完成新年贺卡 [iVX 初级工程师培训教程 10篇文拿证]02 数值绑定及自适应网站制作 [iVX 初级工程师培训教程 10篇文拿 ...

  4. java 做猜数字小游戏_Java Properties类:利用Properties类制作猜数字小游戏

    在学习Random类时我们制作过猜数字小游戏,学习了Properties类后,可以为此游戏添加保存得分记录功能 游戏规则: 玩家可以选择玩游戏还是查看得分 玩游戏: 首先玩家需要选择难度: 难度级别 ...

  5. 猜数字小游戏(随机生成’三剑客‘)

    大家好,我是一只励志要翻身的小牛,废话少说,下面就给大家介绍第一个C语言小游戏--猜数字小游戏! 文章目录 一.游戏规则 二.效果展示 三.游戏设计思路 四.游戏交互界面 1.创建游戏菜单 2.创建游 ...

  6. C++猜数字小游戏1.0.1版猜数字1.1---国庆特版(双人战斗版)

    (回忆上一篇开头--) 国庆在家,你觉得无聊吗???                                                                          ...

  7. 带登录页面的猜数字小游戏

    本内容包含:登录页面+注册页面+猜数字小游戏页面 登录页面:手机号+密码+校验码+随机校验码+登录按钮+注册 注册页面:手机号+密码+密码确认+注册按钮 游戏页面:标题(提示框)+输入框+猜一下+重置 ...

  8. 微信小程序开发实例:猜数字小游戏

    这学期选修了<微信小程序设计>这门通识课,最近准备把本学期的部分小作业整理一下. 一.案例描述 设计一个微信小程序,由后台生成一个0~100的随机整数,用户猜这个整数,并在输入框中输入用户 ...

  9. 初识JAVA:猜数字小游戏案例---系统产生一个1-100之间的随机数,猜出这个数是多少?

    package com.pku.wuyu.io; import java.util.IllegalFormatCodePointException; import java.util.Random; ...

  10. Vue3和码上掘金实现猜数字小游戏

    前言 Vue3.0 是2020年09月18日正式发布的,距现在两年多了!而且Vue3是默认的Vue版本了,功能也在不断完善和扩展中,比如焕然一新的 Composition API 语法.setup语法 ...

最新文章

  1. CVPR2020:基于层次折叠的跳跃式注意网络点云完成
  2. matlab 基础知识class lt; superclass_name
  3. 深入理解Java注解Annotation及自定义注解
  4. 引用“.NET研究”类型赋值为null与加速垃圾回收
  5. centos7.0改变用户创建目录组权限
  6. Celex Update CodeForces - 1358C(打表找规律)
  7. 【转】SPSite、SPWeb对象模型(转winos.cn)
  8. 面试精讲之面试考点及大厂真题 - 分布式专栏 21 限流不能乱用-系统限流最佳实践
  9. dnslog-server的概念
  10. Java 8 Comparator: 列表排序
  11. R语言——一元线性回归
  12. 武汉大学计算机2019转专业,武汉大学可以转专业吗,武汉大学新生转专业政策
  13. uwp浏览器java源码_在UWP应用程序中打开UWP
  14. C盘扩容-Win10
  15. 你想要的宏基因组-微生物组知识全在这(1909)
  16. 【问链-EOS公开课】第六课 什么是石墨烯技术?
  17. 如何实现服务注册与发现?
  18. 携号转网手机号归属地查询
  19. Matlab 的多种灰度归一化方法代码演示(可以直接运行)
  20. [Vue]学习笔记目录 【Vue2与Vue3完结】 (尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通)

热门文章

  1. android app唯一标识符,android 唯一识别码笔记
  2. python程序中name的作用_python编程中的if __name__ == '__main__': 的作用和原理
  3. 【PAT B1019/A1069】数字黑洞
  4. android 带边框的arc,极细边框(1px边框)实现方式
  5. java套接字实验总结,实验三、WINSOCK套接字编程实验报告
  6. mac 2k显示器字体发虚_亲身实践:Mac mini 搭配戴尔显示器体验
  7. 深度图像配准_【阅读笔记】深度学习在医学图像分析领域的综述
  8. 问题:双击Excel文件提示文件找不到,只打开程序不同时打开文件,但通过打开对话框却能打开文件。
  9. linux 上安装 Node.js和npm
  10. linuxt gogs搭建