Go语言流程控制06--猜数字游戏

package main

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

/*
·随机生成一个三位数
·让用户输入其猜想
·反馈给用户:猜大了,猜小了,猜对了
·如果没猜对就继续猜
·如果猜对了就退出游戏
·如果用户输入"-1"就直接退出游戏
*/

func GetRandom() int {
	/*获得随机数*/
	//n := rand.Intn(1000)
	//当前时间距离1970年0时所逝去的时间纳秒数
	seed := time.Now().UnixNano()
	//使用当前时间纳秒作为随机数种子
	myrandom := rand.New(rand.NewSource(seed))
	n := 100 + myrandom.Intn(900)
	//将结果随机数返回给调用者
	return n
}

func main() {

	//调用随机数获取随机数,得到随机数
	answer := GetRandom()
	START:
	var count int = 0
	for{
		//让用户输入猜想
		var guess int
		fmt.Println("骚年请输入你的猜想(100-999):-1=退出,-2=重新输入,0=重玩")
		fmt.Scan(&guess)

		/*看看用户是否要退出*/
		if guess == -1{
			break
		}else if guess == 0 {
			//continue
			goto START
		}else if guess == -2{
			//重新输入
			//跳过本次循环剩余部分,开始下一次循环
			continue
		}

		/*反馈给用户猜大了,猜小了,猜对了*/
		count ++
		if guess > answer{
			fmt.Printf("猜大了,共用了%d次\n",count)
		}else if guess < answer{
			fmt.Printf("猜小了,共用了%d次\n",count)
		}else {
			fmt.Printf("猜对了,共用了%d次\n",count)
			/*跳出循环*/
			break
		}
	}
	fmt.Println("GAMEOVER!")
}

  

猜你喜欢

转载自www.cnblogs.com/yunweiqiang/p/11788509.html