预先封装数据的思路.md
预先封装数据的思路.md
最近有两位同学开发开发了用程序在线竞猜数字的小游戏,可以通过以下两个网址去玩:
bbaa的游戏 http://bbaass.tk/math/
codetiger的游戏 http://www.codetiger.win/extra/index.php
以bbaa的游戏为例,是猜1-10000之间的一个数字,第一猜5000,和之后的每一次猜5000,
你需要发送的数据总是一样的,所以可以预先把数据封装起来备用,直觉上觉得可以节约极其少量的时间。
比如你第一猜5000,你需要发送的数据格式下:
{"Send": "Aaswer", "useranme": "codegay", "math": "5000"}
后来你第二次猜5000,你还是需要发送如下数据:
{"Send": "Aaswer", "useranme": "codegay", "math": "5000"}
依此类推第三次猜5000,只要数字相同,需要发送的数据都是相同的:
{"Send": "Aaswer", "useranme": "codegay", "math": "5000"}
那干脆就先把所有可能需要发送的数据先封装起来备用咯,python3代码如下:
- apiurl = "http://bbaass.tk/math/"
- name = "codegay"
- cmin = 0
- cmax = 10001
- data = {r: {'send': 'Answer', 'username': name, 'math': str(r)} for r in range(cmin, cmax)}
用法:
猜5000 == 调用 data[5000]
猜2003 == 调用 data[2003]
同样的思路继续往底层发散:
底层HTTP库需要处理和拼接的数据都是一样的,硬件网卡需要发送的数据都是一样的,
所以可以考虑在更底层的方面封装好数据。甚至定制专门用于发送数据的硬件。
我自己做不到,脑补一下还是感觉很嗨,虽然即使能做得到也没有什么卵用。
预先封装数据的思路.md的更多相关文章
- 关于TornadoFx和Android的全局配置工具类封装实现及思路解析
原文地址: 关于TornadoFx和Android的全局配置工具类封装实现及思路解析 - Stars-One的杂货小窝 目前个人开发软件存在设置页面,可以让用户自定义些设置,但我发现,存储数据的代码逻 ...
- JSP-07-使用JavaBean封装数据
7.1 常命包名 Dao 包中的接口(NewsDao)以及类(NewsDaoImpl)注意负责和数据操作相关的事情. Service 包中的接口和类对dao的方法进行封装和调用,注意负责和业务逻辑相关 ...
- json和xml封装数据、数据缓存到文件中
一.APP的通信格式之xml xml:扩展标记语言,可以用来标记数据,定义数据类型,是一种允许用户对自己标记语言进行定义的源语言.XML格式统一,扩平台语言,非常适合数据传输和通信,业界公认的标准. ...
- xml方式封装数据方法
1.xml方式封装数据方法 2.demo <?php xml方式封装数据方法 /** * [xmlEncode description] * @param [type] $code [descr ...
- 关于js渲染网页时爬取数据的思路和全过程(附源码)
于js渲染网页时爬取数据的思路 首先可以先去用requests库访问url来测试一下能不能拿到数据,如果能拿到那么就是一个普通的网页,如果出现403类的错误代码可以在requests.get()方法里 ...
- 关于双重for循环封装数据问题
1.问题描述 在使用双重for循环进行封装数据时出现一个问题,就是有的数据封装上了,有的数据未封装上,找了很久原因: for (A a:ListA) { for (B b: ListB) { if(a ...
- http中使用json封装数据的性能测试
http中使用json封装数据的性能测试 一个项目使用json封装数据,接口例如: 客户端发送: POST /list.do HTTP/1.1 Host: zoomi.com.cn ...
- Programming With Objective-C---- Encapsulating Data ---- Objective-C 学习(三) 封装数据
Programming with Objective-C Encapsulating Data In addition to the messaging behavior covered in t ...
- 7.Struts2框架封装数据
Struts2框架提供了很强大的数据封装的功能,不再需要使用Servlet的API完成手动封装了!! 第一种方式:属性驱动 > 提供对应属性的set方法进行数据的封装.--经常使用 * 表单的哪 ...
随机推荐
- [Database] 不知道表名和字段查找值=1234的数据.
--如果表比较大,时间会比较长 DECLARE @searchValue NVARCHAR(50) SET @searchValue='1234' DECLARE @t TABLE ( rowNu ...
- (详细)华为V9 DUK-AL20的usb调试模式在哪里打开的方法
当我们使用PC通过数据线链接到安卓手机的时候,如果手机没有开启USB开发者调试模式,PC则没办法成功识别我们的手机,有时我们使用的一些功能较好的软件好比以前我们使用的一个软件引号精灵,老版本就需要打开 ...
- vue2 inheritAttrs、attrs和attrs和listeners使用
inheritAttrs.attrs和attrs和listeners使用场景: 组件传值,尤其是祖孙组件有跨度的传值. (1)inheritAttrs 属性说明:https://cn.vuejs.or ...
- 多组图自动无限循环(swiper轮播)
前两天的一个项目中遇到多组图片无限轮播,当时采用了swiper 但是没有解决让它无限轮播.今天再次尝试了一下发现是自己的样式写错了.今天在这里写一下,为了给自己一个警醒不要犯同样的错误 首先先引入一下 ...
- 【转】PO/POJO/BO/DTO/VO的区别
PO :persistent object持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中 ...
- 【转载】MessageFormat.format方法
MessageFormat.format方法实例 public static void main(String[] args) { String a= "aaa"; String ...
- node.js安装express模块应用服务框架
1.创建工程文件夹case-04 2.在终端窗口进入文件夹目录,并输入:npm init,并一路回车,最后看到在case-04文件夹里自动生成了package.json 文件 3.打开vscode,进 ...
- 我的第一个Angular2应用
1需要具备的基本前端基础:HTML.CSS.JavaScript.为了实现对项目包的管理,推荐使用npm NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题:官网先下 ...
- element 树形菜单加title
<script src="//unpkg.com/vue/dist/vue.js"></script><script src="//unpk ...
- Python_Mix*匿名函数,sorted,filter,map,递归函数,二分法查找
lambda匿名函数(函数名统一都叫lambda) 为了解决简单的需求而设计的一句话函数 语法: lambda 参数 返回值 n = lambda a,b: max(a,b) ret = n(9,4) ...