预先封装数据的思路.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方法进行数据的封装.--经常使用 * 表单的哪 ...
随机推荐
- Kotlin 对象表达式和对象声明
Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类. 对象表达式 通过对象表达式实现一个匿名内部类的对象用于方法的参数中: window.ad ...
- OpenGL.tutorial06键盘和鼠标
1.这个图是用 Excel画的 简单示意图(单元格边框,视图-->网格线) 1.1.中间的 正立方体 处于 X/Y/Z轴的中心,边长为2 ZC:代码中 原版是 人物在 (0,0,5)处,水平夹角 ...
- Js原生封装选项卡组件
class MyTab extends HTMLElement{ //创建一个类名MyTab constructor(){ //构造函数 super(); //指向父类构造函数,必须要有的 const ...
- Python 文件的基本操作
打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读: 不存在则创建:存在则只追加内容:] "+" 表示可 ...
- BaseDao封装
1.lombok 1) 在pom.xml中导入依赖 <!--导入lombok--> <!-- https://mvnrepository.com/artifact/org.proje ...
- maven构建web项目,用jetty测试的配置pom.xml
maven构建web项目,用jetty测试的配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...
- python django连接错误
提示: connection.alias,django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0 ...
- C语言实现过滤ASCII在0~127范围内的字符,并去除重复的字符
#include <stdio.h> #include <string.h> /* 1.以字符串作为参数 2.找出ASCII在1~127范围内的字符 3.去掉重复字符 */ i ...
- play framework 笔记
@main("Hello")调用 main.scala.hmtl,页面名称 Hello conf/routes 文件定义了映射规则 参数的传递入口在 controller 的方法中 ...
- 基于VC++的网络扫描器设计与实现
本文正文其实是自己的毕业论文,现在搬上来有两个原因. 一是之前大学的文档都放在百度网盘上,大概去年的时候百度网盘改版搞得不太稳定,文件夹移动次数一多里边就会有一些文件丢失了,也没有很在意.但前几天看申 ...