• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

01_Go游戏-猜数字

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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("无效的输入")
        }
    }
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Dubbo-go 发布 1.5 版,朝云原生迈出关键一步发布时间:2022-07-10
下一篇:
开启Go学习之旅:开发环境搭建发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap