首页 > 其他分享 >Go语言 猜谜游戏+在线词典 2月摸鱼计划01

Go语言 猜谜游戏+在线词典 2月摸鱼计划01

时间:2024-02-03 18:02:15浏览次数:31  
标签:rand 01 err fmt Println 3.2 摸鱼 Go input

3.1猜谜游戏

3.1.2 生成随机数v2

package main

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

func main() {
	maxNum := 100
	rand.Seed(time.Now().UnixNano())
	secretNumber := rand.Intn(maxNum)
	fmt.Println("The secret number is ", secretNumber)
}

3.1.3 读取用户输入

package main
import (
	"bufio"
	"fmt"
	"math/rand"
	"os"
	"strconv"
	"strings"
	"time"
)

func main() {
	maxNum := 100
	rand.Seed(time.Now().UnixNano())
	secretNumber := rand.Intn(maxNum)
	fmt.Println("The secret number is ", secretNumber)

	fmt.Println("Please input your guess")
	reader := bufio.NewReader(os.Stdin)    //转成 只读 流
	input, err := reader.ReadString('\n')  //读取一行输入
	if err != nil {
		fmt.Println("An error occured while reading input. Please try again", err)
		return
	}
	input = strings.Trim(input, "\r\n")    //去掉换行符

	guess, err := strconv.Atoi(input)      //转换成数字
	if err != nil {                        //转换失败,则打印错误信息
		fmt.Println("Invalid input. Please enter an integer value")
		return
	}
	fmt.Println("You guess is", guess)
}

3.1.4 实现判断逻辑

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go

3.1.5 实现游戏循环

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_随机数_02

3.2 在线词典介绍

这个实例中我们将学习:

如何用Go语言发送http请求、解析JSON,还会学习如何使用代码生成提高效率

3.2.1 抓包

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_随机数_03

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_04

3.2.1 代码生成

想办法在Go里面发送这个请求!

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_05

有几个Header比较复杂 转义导致的编译错误

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_06

3.2.2 生成代码解读

转换成流 异常 ;

defer手动关闭流 defer会在函数结束之后 从下往上触发 防止泄露

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_07

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_08

3.2.3 生成request body

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_09

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_随机数_10

3.2.4 解析response body

点击“转换-嵌套” 生成的代码会紧凑一点

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_11

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_随机数_12

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_13

3.2.5 打印结果

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_14

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_15

3.2.6 完善代码

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_16

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_17


标签:rand,01,err,fmt,Println,3.2,摸鱼,Go,input
From: https://blog.51cto.com/u_16557322/9570033

相关文章

  • [THUSCH2017] 巧克力
    [THUSCH2017]巧克力题目描述「人生就像一盒巧克力,你永远不知道吃到的下一块是什么味道。」明明收到了一大块巧克力,里面有若干小块,排成\(n\)行\(m\)列。每一小块都有自己特别的图案,它们有的是海星,有的是贝壳,有的是海螺……其中还有一些因为挤压,已经分辨不出是什么图案了。......
  • [NOIP2011 提高组] 聪明的质监员
    原题链接首先要读懂题目啊:[Wj>=W]其实是一种bool表达,即大于等于时取1,小于时取0,然后再进行求和。根据要求出最小值大概可以猜测要运用二分,那么我们来判断单调性,首先W在所有矿石的最大最小值之间取值,W越小Y越大,W越大Y越小(观察和推理都很容易得到),那么Y是符合单调性的,即可以运用......
  • D. Good Trip
    D.GoodTripThereare$n$childreninaclass,$m$pairsamongthemarefriends.The$i$-thpairwhoarefriendshaveafriendshipvalueof$f_i$.Theteacherhastogofor$k$excursions,andforeachoftheexcursionsshechoosesapairofchildrenran......
  • [NOI2015] 品酒大会
    独立过了一道NOI的题,开心~我的做法是后缀数组+单调栈+st表,并没有用到并查集点击查看代码#include<bits/stdc++.h>usingnamespacestd;strings;intsa[300005],rk[20][300005],r[300005],n,w,h[300005],p[25],z[300005],st0[20][300005],st1[20][300005],f[600005];lo......
  • 【路由器】电信光猫中兴 F7010C 折腾记录
    目录问题描述解锁超管密码前言配置安卓抓包环境抓包获取超管密码IPv6配置光猫拨号改用SLAAC路由器配置wan6配置wan配置lan配置验证参考资料问题描述近期家里更新了千兆宽带,电信光猫换成了中兴F7010C,默认光猫拨号,安装人员不给改桥接,而且路由器还获取不到IPv6地址尝试过......
  • P2178 [NOI2015] 品酒大会 题解
    P2178[NOI2015]品酒大会题解纪念一下第一道完全自己想出来的紫NOI题。思路由于r相似有单调性的性质,题目中也提示了这一点,考虑按\(height_i\)从大到小把所有相邻的\(sa\)数组内两个后缀合并,用并查集维护,发现第一问的答案就是\[\sum_{i是并查集的根}\binom{size_i}{2}......
  • 【C++】力扣101-平方数之和
    给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2+b2=c 。使用双指针:#include<iostream>#include<math.h>usingnamespacestd;booljudge(longc){if(c<0)returnfalse;longa=0;longb=(int)sqrt(c);longsum=0;while......
  • Golang 开发Android服务--交叉编译
    Golang开发Android服务--交叉编译移动端主要arm架构,编译命令CGO_ENABLED=0GOOS=linuxGOARCH=armgobuild-ogo_promine.goCGO_ENABLED=0GOOS=linux,指定临时环境变量不影响其它编译,也可以设置为全局环境变量。AOSP查看版本信息getprop不传参数查看所有属性值ge......
  • go并发编程
    go的GMP并发模型,让go天然支持高并发,先了解一下GMP模型吧GMPG协程,M工作线程、P处理器,M必须持有P才可以执行GP维护着一个协程G队列,P依次将G调度到M中运行ifM0中G0发生系统调用,M0将释放P,冗余的M1获取P,继续执行P队列中剩余的G。(只要P不空闲就充分利用了CPU)G0系统调用结束后,如果......
  • 详解torch The “freeze_support()” line can be omitted if the programis not goin
    详解torchThe“freeze_support()”linecanbeomittediftheprogramisnotgoingtobefrozentoproduce在使用torch进行多进程编程时,我们可能会遇到一行代码freeze_support()。这行代码通常在Windows操作系统下使用,用于确保在运行多进程之前对Python解释器进行初始化。然......