当前位置: 首页 > news >正文

站酷设计网网站的seo

站酷设计网,网站的seo,手机网站栏目结构图,推进门户网站建设工作文章目录 程序介绍设置随机数读取用户输入实现判断逻辑实现游戏循环完整代码 程序介绍 首先生成一个介于1~100之间的随机数,然后提示玩家输入数字,并告诉玩家是猜对了还是猜错了,如果对了程序就结束,如果错了就提醒玩家是大了还是…

文章目录

      • 程序介绍
      • 设置随机数
      • 读取用户输入
      • 实现判断逻辑
      • 实现游戏循环
      • 完整代码

程序介绍

首先生成一个介于1~100之间的随机数,然后提示玩家输入数字,并告诉玩家是猜对了还是猜错了,如果对了程序就结束,如果错了就提醒玩家是大了还是小了,然后玩家继续输入。

设置随机数

maxNum := 100
rand.Seed(time.Now().UnixNano())  //修改随机数种子为当前时间戳
secretNumber := rand.Intn(maxNum)
  1. rand.Seed(seed int64):播种seed为随机数种子
  2. func time.Now() time.Time:获取当前时间
  3. func (time.Time).UnixNano() int64:将Time转成时间戳返回
  4. func rand.Intn(n int) int:设置一个随机数,随机数的范围为[0, n)

读取用户输入

这里用的是高并发输入,可以用简单的Scan进行输入。

fmt.Print("Guess a number between 1 and", maxNum, ": ")
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString('\n')
if err != nil {fmt.Println("An error occurred while reading input. Try again", err)return
input = strings.TrimSuffix(input, "\r\n") //去掉input末尾的回车换行符guess, err := strconv.Atoi(input)         //将input转换为整数
if err != nil {fmt.Print("Invalid input. Try again: ")return
fmt.Print("Your guess is ", guess, ". ")
  1. func (b *Reader) ReadString(delim byte) (string, error)ReadString一直在Reader* b中读取,直到读到delimdelim也会被读进去

  2. reader := bufio.NewReader(os.Stdin):将reader与标准输入流Stdin关联

    func NewReader(rd io.Reader) *ReaderNewReader返回一个具有默认缓冲区大小新的Reader

  3. input, err := reader.ReadString('\n'):从reader中读取,遇到'\n'就停止,把包括'\n'在内的内容放到字符串input中,错误信息返回到err

    func (b *Reader) ReadString(delim byte) (string, error)ReadString读取直到输入中第一次出现分隔符delim,返回一个字符串,其中包含delim之前的数据并包括delim。如果ReadString在找到分隔符之前遇到错误,它将返回在错误之前读取的数据和错误本身(通常是io.EOF)。

  4. input = strings.TrimSuffix(input, "\n"):因为读入的时候把回车符\r和换行符\n也读进来了,所以这一步是去掉换行符。只保留input中换行符之前的内容,不包括换行符。当然也可以使用

    func TrimSuffix(s, suffix string) stringTrimSuffix返回s,不包含所提供的后缀字符串。如果s没有以后缀结尾,则返回不变的s

  5. guess, err := strconv.Atoi(input):将字符串input转成整型存给guess

    func Atoi(s string) (int, error)Atoi相当于转换为int类型的ParseInt(s, 10,0)

实现判断逻辑

if guess > secretNumber {fmt.Print("Too Big! Try again: ")
} else if guess < secretNumber {fmt.Print("Too Small! Try again: ")
} else {fmt.Println("You got it!")break
}

一个简单的if分支语句,没什么好说的。

实现游戏循环

fmt.Println("Guess a number between 1 and ", maxNum, ": ")
reader := bufio.NewReader(os.Stdin)
for {input, err := reader.ReadString('\n')if err != nil {fmt.Println("An error occurred while reading input. Try again", err)continue}input = strings.TrimSuffix(input, "\r\n") //去掉input末尾的回车换行符guess, err := strconv.Atoi(input)         //将input转换为整数if err != nil {fmt.Print("Invalid input. Try again: ")continue}fmt.Print("Your guess is ", guess, ". ")if guess > secretNumber {fmt.Print("Too Big! Try again: ")} else if guess < secretNumber {fmt.Print("Too Small! Try again: ")} else {fmt.Println("You got it!")break}
}
  1. 上面只完成了用户的一次猜测,用户输入往后的部分改成循环即可完成,猜对记得跳出循环。
  2. 当输入错误的时候不要直接返回了,可以改为continue继续循环

完整代码

package mainimport ("bufio""fmt""math/rand""os""strconv""strings""time"
)func main() {// 设置随机数maxNum := 100rand.Seed(time.Now().UnixNano()) //修改随机数种子为当前时间戳secretNumber := rand.Intn(maxNum)fmt.Print("Guess a number between 1 and ", maxNum, ": ")reader := bufio.NewReader(os.Stdin)for {input, err := reader.ReadString('\n')if err != nil {fmt.Println("An error occurred while reading input. Try again", err)continue}input = strings.Trim(input, "\r\n") //去掉input末尾的换行符guess, err := strconv.Atoi(input)   //将input转换为整数if err != nil {fmt.Print("Invalid input. Try again: ")continue}fmt.Print("Your guess is ", guess, ". ")if guess > secretNumber {fmt.Print("Too Big! Try again: ")} else if guess < secretNumber {fmt.Print("Too Small! Try again: ")} else {fmt.Println("You got it!")break}}
}
http://www.hyszgw.com/news/12509/

相关文章:

  • 国外做的好的鲜花网站百度用户服务中心
  • 中国公司查询网站水果网络营销策划方案
  • 让别人做网站图片侵权全自动推广引流软件免费
  • 宝塔建站详细教程手机端竞价恶意点击能防止吗
  • rp网站做多大西安seo排名公司
  • 可信网站认证必须做百度app交易平台
  • 做网站要怎么备案济南网络推广公司电话
  • 做网站运营有前景吗seo网站建站
  • ftp上传安装wordpress重庆seo公司
  • 立网站系外贸seo网站建设
  • 个人简历制作seo基础视频教程
  • 合肥网站建设cnfg即时热榜
  • 网站ico设计yandex搜索入口
  • 天津网站定制关键词首页排名优化价格
  • 福州做网站销售公司软文代写发布
  • 做网站开发要学什么黄冈网站推广策略
  • wordpress装修模板制作搜索引擎优化seo
  • 付公司网站建设费用会计分录合肥seo管理
  • 网站建设和数据库维护关键字搜索引擎
  • 百度收录网站要多百度首页百度
  • 浙江和海建设集团网站郑州网站建设哪家好
  • 创美艺佳网站是谁做的泰州网站建设优化
  • 可以做笔记的网站国际新闻最新消息今天军事新闻
  • 在线资源搜索引擎西安百度推广优化托管
  • 牡丹区建设局网站seo网址优化靠谱
  • facebook 网站开发佐力药业股票
  • 网站首页怎么做平台宣传推广方案
  • 有趣网站之家站长友情链接
  • wordpress ftp 安装外贸网站优化公司
  • 外贸建站哪个好百度竞价广告的位置