用户猜数字游戏

package main

import (
   "fmt"
 "math/rand" "time")

func GetNum(randSlice []int, num int) {
   randSlice[0] = num / 1000 //取千位
  randSlice[1] = num % 1000 / 100 //取百位
  randSlice[2] = num % 100 / 10 //取百位
  randSlice[3] = num % 10 //取个位

}

func createNum(p *int) {

   //设置种子
  rand.Seed(time.Now().UnixNano())

   var num int
   for {
      num = rand.Intn(10000) //一定是四位数
  if num >= 1000 {
         break
  }
   }

   *p = num

}

//游戏
func onGame(randSlice []int) {

   var num int //
 //定义一个用户输入的数字保存到切片里
  keySlice := make([]int, 4)

   for {

      for {
         fmt.Println("请输入一个四位数字")
         fmt.Scan(&num)
         if 999 < num && num < 10000 {
            break
  }
         fmt.Println("你输入的数字不符合要求")
      }

      GetNum(keySlice, num) //用户输入的数字保存到切片里

  n := 0
  for i := 0; i < 4; i++ {

         if keySlice[i] > randSlice[i] {
            fmt.Printf("第%d位大了一点\n", i+1)

         } else if keySlice[i] > randSlice[i] {
            fmt.Printf("第%d位小了一点\n", i+1)
         } else {
            fmt.Printf("第%d位猜对了\n", i+1)
            n++
         }
      }

      if n == 4 {
         fmt.Println("全部猜对了~~~")
      }

   }

}

func main() {
   //定义一个随机数
  var randNum int
   //生产一个4位的随机数
  createNum(&randNum)

   //定义一个切片

  randSlice := make([]int, 4)
   //保存四位数的每一位
  GetNum(randSlice, randNum)

   //开始游戏
  onGame(randSlice)

}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!