使用者猜數字遊戲

sunny0901發表於2021-12-24
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 協議》,轉載必須註明作者和本文連結

相關文章