猜谜游戏
使用 Golang 构建一个猜数字游戏,在这个游戏里面,程序首先会生成一个介于1到100之间的随机整数,然后提示玩家进行猜测,生成随机数需要用到 math/rand 包,如果不设置随机数种子,则每次都会产生相同的随机数,因此具体代码如下: package main import ( "fmt" "math/rand" "time" ) func main(){ maxNum := 100 rand.Seed(time.Now().UnixNano()) secretNumber := rand.Intn(maxNum) } 接下来提示用户输入猜测数字,读取用户猜测数字,这里通过 fmt.Scanf() 函数来实现,需要注意的是如果 %d 后面不加 \n,则会出现异常,可能原因是由于在缓冲区中存在上一次输入留下的换行符(\n) `fmt.Println("Please input your guess") var input int
_, err := fmt.Scanf("%d\n", &input) guess := input // 异常检测 if err != nil { fmt.Println("An error occured while reading input. Please try again", err) continue } if err != nil { fmt.Println("Invalid input. Please enter an integer value") continue }` 如果猜测错误,我们要让玩家重新猜测,因此需要将猜测的主体代码都放到循环中,同时完成判断猜测是否正确的逻辑代码
在线词典
1.准备) 首先打开:彩云小译-网页翻译-文献翻译-在线翻译 查询一个单词,通过调用第三方的 API 查询到单词的翻译并打印出来。 在这个项目里面,学习如何用 go 语言来发送 HTTP 请求、解析 json,学习了如何使用代码生成来提高开发效率 2.抓包 要用到的 API 是彩云在线翻译。 点击翻译,浏览器会发送一系列请求,找到查询单词的请求。这是一个 HTTP 的 post 的请求(相当复杂),请求的 header 是一个 json,里面有两个字段,代表要翻译的语言和查询的单词,source就是要查询的词。API 的返回结果里面会有 Wiki 和 dictionary 两个字段。需要用的结果主要在 dictionary.Explanations 字段里面,其他字段里面还包括音标等信息。