zoukankan      html  css  js  c++  java
  • 01_Go游戏猜数字

    package main
    
    import (
        "fmt"
        "math/rand"
        "os"
        "time"
    )
    
    func initRandNum(p *int) {
        rand.Seed(time.Now().UnixNano())
        var num int
        for {
            num = rand.Intn(10000)
            if num >= 1000 {
                break
            }
        }
    
        *p = num
    }
    
    func initRandSlice(s []int, num int) {
        s[0] = num / 1000
        s[1] = num % 1000 / 100
        s[2] = num % 100 / 10
        s[3] = num % 10
    }
    
    func runGame(randSlice []int, userSlice []int) {
        var isRight bool = true
        for i := 0; i < len(userSlice); i++ {
            if userSlice[i] > randSlice[i] {
                fmt.Printf("第 %d 位猜大了\n", i)
                isRight = false
            } else if userSlice[i] < randSlice[i] {
                fmt.Printf("第 %d 位猜小了\n", i)
                isRight = false
            } else {
                fmt.Printf("第 %d 位猜对了\n", i)
            }
        }
    
        if isRight {
            fmt.Println("恭喜过关!")
            os.Exit(0)
        }
    }
    
    func main() {
        var randNum int
        randSlice := make([]int, 4)
        var userNum int
        userSlice := make([]int, 4)
    
        for {
            fmt.Println("************************************")
            fmt.Println(`
        欢迎来到猜数字游戏
        游戏要求:
        1. 请输入一个四位数;
        2. 不能输入非数字之外的字符
        3. 输入0退出游戏
        `)
            fmt.Println("************************************")
    
            initRandNum(&randNum)
            initRandSlice(randSlice, randNum)
            fmt.Printf("randSlice: %d\n", randSlice)
    
            fmt.Printf("请输入一个千位数字(0退出):")
            fmt.Scanln(&userNum)
            switch {
            case userNum >= 1000 && userNum <= 9999:
                initRandSlice(userSlice, userNum)
                runGame(randSlice, userSlice)
            case userNum == 0:
                os.Exit(1)
            default:
                fmt.Println("无效的输入")
            }
        }
    }
  • 相关阅读:
    正则表达式
    小弟新从csdn搬迁到博客园,欢迎大家关注
    做完牛腩新闻发布系统之后的收获(牛腩总结)
    ValidateRequest="false" 无效
    sql server小技巧-自动添加时间与主键自增长
    css初接触
    Spark的Rpct模块的学习
    插入排序
    选择排序
    冒泡排序
  • 原文地址:https://www.cnblogs.com/luwei0915/p/15440247.html
Copyright © 2011-2022 走看看