实现猜数字游戏代码


1 package main 2 3 import ( 4 "fmt" 5 "math/rand" 6 "time" 7 ) 8 9 func creatRandNum(p *int) { 10 // 设置随机种子 11 rand.Seed(time.Now().UnixNano()) 12 var num int 13 for { 14 num = rand.Intn(10000) //一定是4位数 15 if num >= 1000 { 16 break 17 } 18 } 19 *p = num 20 } 21 22 func getNum(randSlice []int, randNum int) { 23 randSlice[0] = randNum / 1000 24 randSlice[1] = randNum % 1000 / 100 25 randSlice[2] = randNum % 100 / 10 26 randSlice[3] = randNum % 10 27 } 28 29 func onGame(randSlice []int) { 30 var keyNum int 31 keySlice := make([]int, 4) 32 for { 33 for { 34 fmt.Println("请输入4位数字:") 35 fmt.Scan(&keyNum) 36 if keyNum > 999 && keyNum < 10000 { 37 break 38 } 39 fmt.Println("请输入正确的4位数字!") 40 } 41 fmt.Println("keyNum=", keyNum) 42 getNum(keySlice, keyNum) 43 fmt.Println("keySlice=", keySlice) 44 n := 0 45 for i := 0; i < 4; i++ { 46 if keySlice[i] > randSlice[i] { 47 fmt.Printf("第%d位大了一点\n", i+1) 48 } else if keySlice[i] < randSlice[i] { 49 fmt.Printf("第%d位小了一点\n", i+1) 50 } else { 51 fmt.Printf("第%d位猜对了\n", i+1) 52 n++ 53 } 54 } 55 if n == 4 { 56 fmt.Println("全部才对,猜对数字为", keyNum) 57 break 58 } 59 } 60 } 61 62 func main() { 63 var randNum int 64 65 // 产生一个4位的随机数 66 creatRandNum(&randNum) 67 fmt.Println("randNum=", randNum) 68 69 randSlice := make([]int, 4) 70 //获取各位的数字 71 getNum(randSlice, randNum) 72 fmt.Println("randSlice=", randSlice) 73 74 onGame(randSlice) 75 }