猜谜游戏
简介:
根据输入的数字来判断猜高了还是猜低了,进而得出准确的数字
1.生成随机数
需要引入库"math/rand"
使用rand.Intn(maxNum)
来生成一个随机数,但是这样只能生成一次随机数,还需要引入新的库"time"
来生成种子rand.seed(time.Now().UnixNano())
,随后再使用rand.Intn(maxNum)
就可以生成多次随机数了,把这个随机数赋值给secretNumber
go
rand.seed(time.Now(),UnixNano())
secretNumber := rand.Intn(maxNum) //maxNum为自己设定的最大值
2.读取用户输入
引入"bufo"
,"os"
,"strconv"
,"strings"
go
reder := bufo.newReader(os.Stdin)
input,err := reader.ReadString('\n')
这样实现读取一行的功能,但是还多出来了一个换行符,还需要使用strings.TrimSuffix(input,'\n')
来去掉换行符,这样我们得到了读入的字符串,但是我们最终需要的是一个数字,所以我们还需要使用guess,err := strconv.Atoi(input)
把字符串转换成数字并赋值给guess
,这个就是用户输入的数字
3.实现判断逻辑
就是简单的把guess
的值与我们生成的随机数进行比较,使用ifelse
语句
go
if guess > secretNumber{
fmt.Println("Too large, try again!!")
}else if guess < secretNumber{
fmt.Println("Too small, try again!!")
}else fmt.Println("U are right")
4.实现循环
加在读入这一行的前面
go
for{
guess,err := reader.ReadString('\n')
.....
}
注意如果读入的内容不符合要求需要continue
重新读入,在猜对了以后break
退出循环
源代码:hi-hi.cn/go (来自课程内容)
在线词典
简介
根据输入的单词来给出相应的音标和注释,调用第三方的api来查询单词
抓包
笔者使用的是windows,谷歌浏览器
1.右键点击检查
2.选择network
3.输入文本点击翻译后,在中间ms区间那里鼠标滚轮上下滑动,出现下列界面
4.选择Request Method
中为Post
的dict
选项
5.Payload
和Preview
中界面与下图一致则说明操作正确了
6.复制代码(选择bash)
到这个链接:curlconverter.com/#go
在这里粘贴 选择go 将生成出的代码粘贴到编译器中
生成request body
构造一个结构体
go
type Dictrequest struct{
Transtype string `json:"trans_type"`
Source string `json:"source"`
UserID string `json:"user_id"`
}
解析response body
将preview中的json字段粘贴进去
效果 点击转换嵌套
完善输出
源代码:hi-hi.cn/go 成功执行
小结
这一章难度对于我来说实在是过大了,具体的内容也不是很理解,特别是抓包部分后面就听的一头雾水了,只能照着代码写,照着老师的操作来模仿,最后面这一部分还是没懂,只好把源代码贴上来了,不过搞了这么久最后也算成功运行了。