zoukankan      html  css  js  c++  java
  • go语言基础之go猜数字游戏

    1、 产生一个随机的4位数

    示例1:

    package main
    
    import "fmt"
    import "math/rand"
    import "time"
    
    func CreatNum(p *int) {
    	//设置种子
    	rand.Seed(time.Now().UnixNano())
    
    	var num int
    	for {
    		num = rand.Intn(10000)
    		if num >= 1000 {
    			break
    		}
    	}
    
    	*p = num
    
    }
    
    func main() {
    	var randNum int
    
    	CreatNum(&randNum)
    	fmt.Println("randNum: ", randNum)
    }
    

    执行结果:

    randNum:  7676
    

      

     2、取出每一位数

    示例2:

    package main
    
    import "fmt"
    import "math/rand"
    import "time"
    
    func CreatNum(p *int) {
    	//设置种子
    	rand.Seed(time.Now().UnixNano())
    
    	var num int
    	for {
    		num = rand.Intn(10000)
    		if num >= 1000 {
    			break
    		}
    	}
    
    	*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 main() {
    	var randNum int
    
    	//产生一个4位的随机数
    	CreatNum(&randNum)
    	fmt.Println("randNum: ", randNum)
    
    	//取出每一位数
    	randSlice := make([]int, 4)
    
    	//保存这个4位数的每一位
    	GetNum(randSlice, randNum)
    	fmt.Println("randSlice = ", randSlice)
    }

    执行结果:

    randNum:  5139
    randSlice =  [5 1 3 9]
    

      

    3、逻辑处理

    示例3:

    package main //必须有个main包
    
    import "fmt"
    import "math/rand"
    import "time"
    
    func CreatNum(p *int) {
    	//设置种子
    	rand.Seed(time.Now().UnixNano())
    
    	var num int
    	for {
    		num = rand.Intn(10000) //一定是4位数
    		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("请输入一个4位数:")
    			fmt.Scan(&num)
    
    			// 999 < num < 10000
    			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位大了一点
    ", i+1)
    			} else if keySlice[i] < randSlice[i] {
    				fmt.Printf("第%d位小了一点
    ", i+1)
    			} else {
    				fmt.Printf("第%d位猜对了
    ", i+1)
    				n++
    			}
    		}
    
    		if n == 4 { //4位都猜对了
    			fmt.Println("全部猜对!!!")
    			break //跳出循环
    		}
    	}
    }
    
    func main() {
    	var randNum int
    
    	//产生一个4位的随机数
    	CreatNum(&randNum)
    	//fmt.Println("randNum: ", randNum)
    
    	randSlice := make([]int, 4)
    	//保存这个4位数的每一位
    	GetNum(randSlice, randNum)
    	//fmt.Println("randSlice = ", randSlice)
    
    	/*
    		n1 := 1234 / 1000 //取商
    		//(1234 % 1000) //取余数,结果为234   234/100取商得到2
    		n2 := 1234 % 1000 / 100
    		fmt.Println("n1 = ", n1)
    		fmt.Println("n2 = ", n2)
    	*/
    
    	OnGame(randSlice) //游戏
    
    }

    执行结果:

    请输入一个4位数:7146
    第1位猜对了
    第2位猜对了
    第3位大了一点
    第4位猜对了
    
    请输入一个4位数:7116
    第1位猜对了
    第2位猜对了
    第3位猜对了
    第4位猜对了
    全部猜对!!!
    

      

  • 相关阅读:
    C++下载IE缓存大文件
    C++网页数据流转为本地文件,URLDownloadToFile
    关于CLISTCTRL的删除和vector的删除,必须倒序删除
    字符串转为 时间。时间差,几天,几小时,几分
    MFCS删除文件夹,非空文件夹
    string的c_str();转换成的是const char*类型 string的c_str();转换成CString,虽然可用,但是意义不一样,变量string不能共用。
    对话框透明,控件不透明(控件显示背景图)
    执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper”的子请求时出错。
    ffmpeg使用示例
    js图片放大效果
  • 原文地址:https://www.cnblogs.com/nulige/p/10244688.html
Copyright © 2011-2022 走看看