Go语言实现猜数字小游戏

 更新时间:2020年10月26日 11:32:23   作者:南柯钓鱼  
这篇文章主要为大家详细介绍了Go语言实现猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

利用Go语言实现一个四位数字,而且不重复的猜数字游戏,解题思路是先利用rand随机函数产生一个四位数,然后通过切片进行引用传递,设定用户可以输入的数字,最后分别遍历切片四位数字与产生的四位数是否相同

package main
 
import "fmt"
import(
 "math/rand"
 "time"
)
 
func CreateNum(p *int){
 //设置种子
 rand.Seed(time.Now().UnixNano())
 
 var num int
 for{
 num=rand.Intn(10000)//四位数
 if num>=1000{
 break
 }
 }
 //fmt.Println("num=",num)
 *p=num
}
func GetNum(s []int,num int){
 s[0]=num/1000  //取千位
 s[1]=num%1000/100 //取百位
 s[2]=num%100/10 //取十位
 s[3]=num%10  //取个位
}
func OnGame(randSlice []int){
 var num int
 keySlice:=make([]int,4)
 for{
 for{
 fmt.Printf("请输入一个四位数:")
 fmt.Scan(&num)
 
 if 999<num&&num<10000{
 break
 }
 fmt.Println("输入的数不符合要求...")
 }
 //fmt.Println("num=",num)
 GetNum(keySlice,num)
 //fmt.Println("keySlice=",keySlice)
 n:=0
 for i:=0;i<4;i++{
 if keySlice[i]>randSlice[i]{
 fmt.Printf("第%d位大了一点\n",i+1)
 }else if keySlice[i]<randSlice[i]{
 fmt.Printf("第%d位小了一点\n",i+1)
 }else{
 fmt.Printf("第%d位猜对了\n",i+1)
 n++
 }
 }
 if n==4{
 fmt.Println("恭喜您!全部猜对了!")
 break //跳出最外层循环
 }
 }
}
func main(){
 fmt.Println("******欢迎进入猜数字游戏******")
 
 var randNum int
 CreateNum(&randNum)
 
 //fmt.Println("randNum=",randNum)
 
 randSlice:=make([]int,4) //保留四位数字的每一位
 GetNum(randSlice,randNum) //切片是引用传递
 //fmt.Println("randSlice=",randSlice)
 OnGame(randSlice)
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Golang TCP网络编程的具体实现

    Golang TCP网络编程的具体实现

    go语言是一门功能强大的编程语言,它提供了众多的网络编程库,其中包括tcp/ip,本文主要介绍了Golang TCP网络编程的具体实现,具有一定的参考价值,感兴趣的可以来了解一下
    2024-06-06
  • OpenTelemetry-go的SDK使用方法详解

    OpenTelemetry-go的SDK使用方法详解

    这篇文章主要介绍了OpenTelemetry-go的SDK使用方法,OpenTelemetry帮我们实现了相应语言的SDK,所以我们只需要进行调用即可,本文根据官方文档实例讲解,需要的朋友可以参考下
    2022-09-09
  • Go项目与Docker结合实现高效部署深入探究

    Go项目与Docker结合实现高效部署深入探究

    在现代软件开发中,使用Docker部署应用程序已经成为一种标准实践,本文将深入探讨如何将Go项目与Docker结合,实现高效、可靠的部署过程,通过详细的步骤和丰富的示例,你将能够迅速掌握这一流程
    2023-12-12
  • golang json性能分析详解

    golang json性能分析详解

    json格式可以算我们日常最常用的序列化格式之一了,Go语言作为一个由Google开发,号称互联网的C语言的语言,自然也对JSON格式支持很好。下面这篇文章主要给大家详细分析介绍了golang json性能的相关资料,需要的朋友可以参考下。
    2018-02-02
  • SingleFlight模式的Go并发编程学习

    SingleFlight模式的Go并发编程学习

    这篇文章主要为大家介绍了SingleFlight模式的Go并发编程学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Go语言使用HTTP包创建WEB服务器的方法

    Go语言使用HTTP包创建WEB服务器的方法

    这篇文章主要介绍了Go语言使用HTTP包创建WEB服务器的方法,结合实例形式分析了Go语言基于HTTP包创建WEB服务器客户端与服务器端的实现方法与相关注意事项,需要的朋友可以参考下
    2016-07-07
  • Go语言底层原理互斥锁的实现原理

    Go语言底层原理互斥锁的实现原理

    这篇文章主要介绍了Go语言底层原理互斥锁的实现原理,Go sync包提供了两种锁类型,分别是互斥锁sync.Mutex和读写互斥锁sync.RWMutex,都属于悲观锁,更多相关内容需要的朋友可以查看下面文章内容
    2022-08-08
  • 三种Golang数组拷贝的实现方式与性能分析

    三种Golang数组拷贝的实现方式与性能分析

    在 Golang 中,有多种方式可以进行数组的拷贝,本文将对其中的三种方式进行性能分析,并比较它们的优缺点,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-06-06
  • go使用支付宝沙箱实现支付宝支付的操作步骤

    go使用支付宝沙箱实现支付宝支付的操作步骤

    支付宝沙箱支付是支付宝提供的一个测试环境,用于开发者在不影响真实交易的情况下进行支付接口的开发和调试,本文给大家介绍了go使用支付宝沙箱实现支付宝支付的操作步骤,文中有详细的代码示例和图文供大家参考,需要的朋友可以参考下
    2024-03-03
  • Go语言开发必知的一个内存模型细节

    Go语言开发必知的一个内存模型细节

    这篇文章主要为大家介绍了Go语言开发必知的一个内存模型细节详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论