zoukankan      html  css  js  c++  java
  • [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猜对了
  • 相关阅读:
    Windows下载Vim
    分享:分享几个程序员使用的网站
    分享:C语言大礼包(PDF)
    将vscode打造成强大的C/C++ IDE
    最适合做C/C++开发的IDE
    bzoj 2244
    bzoj 1492
    bzoj 3262
    bzoj 1176
    bzoj 2961
  • 原文地址:https://www.cnblogs.com/baylorqu/p/9590581.html
Copyright © 2011-2022 走看看