• [GO]猜数字的小游戏


    随机生成四位数字,然后用户输入四位数字,然后根据提示一步步猜到随机数

    package main
    
    import (
        "math/rand"
        "time"
        "fmt"
    )
    
    func getNum(s[]int, n int) {
        s[0] = n / 1000
        s[1] = n % 1000 / 100
        s[2] = n % 100 / 10
        s[3] = n % 10
    }
    
    func InitData(ininum *int)  {
        rand.Seed(time.Now().UnixNano())
        var randomNum int
        for  {
            randomNum = rand.Intn(10000)
            if randomNum > 999{
                break
            }
        }
        *ininum = randomNum
    }
    
    func KeyNum(s []int, k *int)  {
        for {
            fmt.Println("请输入一个四位数字: ")
            var keynum int
            fmt.Scan(&keynum)
            if keynum > 999 && keynum < 10000 {
                getNum(s, keynum)
                *k = keynum
                break
            }
        }
    }
    
    func gussNum(s []int, k []int, p *int)  {
        var n int
        for i := 0; i < 4; i++  {
            if s[i] > k[i] {
                fmt.Printf("第%d小了一点
    ", i+1)
            }else if s[i] < k[i] {
                fmt.Printf("第%d大了一点
    ", i+1)
            }else {
                fmt.Printf("第%d猜对了
    ", i+1)
                n ++
            }
        }
        *p =n
    }
    
    func main()  {
        var InitNum int
        InitData(&InitNum)
        fmt.Println("InitNum is ", InitNum)
        InitNumSlice := make([]int, 4)
        getNum(InitNumSlice, InitNum)
        fmt.Println("InitNum Slice = ", InitNumSlice)
        var keynum int
        keyslice := make([]int, 4)
        var n int
        for  {
            n = 0
            KeyNum(keyslice, &keynum)
            gussNum(InitNumSlice, keyslice, &n)
            if n == 4{
                break
            }
        }
    }

    执行结果

    InitNum is  3124
    InitNum Slice =  [3 1 2 4]  //其实这里已经把答案打印出来了,可以在代码里将打印去掉
    请输入一个四位数字: 
    2222
    第1小了一点
    第2大了一点
    第3猜对了
    第4小了一点
    请输入一个四位数字: 
    3133
    第1猜对了
    第2猜对了
    第3大了一点
    第4小了一点
    请输入一个四位数字: 
    3134
    第1猜对了
    第2猜对了
    第3大了一点
    第4猜对了
    请输入一个四位数字: 
    3124
    第1猜对了
    第2猜对了
    第3猜对了
    第4猜对了
  • 相关阅读:
    flash做的按扭突然在页面上获取不到焦点之后
    收集 关于js的接口和 继承实现的代码例子
    从我丢失了;号 之后说开来去
    你真的会写JavaScript吗?
    json.js + jquery 在 ie7下 的 bug
    如何减少浏览器的repaint和reflow? [转]
    2012我们需要什么样的前的工程师
    JavaScript是否可实现多线程 — 深入理解JavaScript定时机制
    是时候了,我们需要前端架构师
    JS事件模型小结
  • 原文地址:https://www.cnblogs.com/baylorqu/p/9590581.html
Copyright © 2020-2023  润新知