预先封装数据的思路.md

python3

最近有两位同学开发开发了用程序在线竞猜数字的小游戏,可以通过以下两个网址去玩:

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代码如下:

  1. apiurl = "http://bbaass.tk/math/" 

  2. name = "codegay" 

  3. cmin = 0 

  4. cmax = 10001 


  5. data = {r: {'send': 'Answer', 'username': name, 'math': str(r)} for r in range(cmin, cmax)} 

用法:

猜5000 == 调用 data[5000]

猜2003 == 调用 data[2003]

同样的思路继续往底层发散:

底层HTTP库需要处理和拼接的数据都是一样的,硬件网卡需要发送的数据都是一样的,

所以可以考虑在更底层的方面封装好数据。甚至定制专门用于发送数据的硬件。

我自己做不到,脑补一下还是感觉很嗨,虽然即使能做得到也没有什么卵用。

预先封装数据的思路.md的更多相关文章

  1. 关于TornadoFx和Android的全局配置工具类封装实现及思路解析

    原文地址: 关于TornadoFx和Android的全局配置工具类封装实现及思路解析 - Stars-One的杂货小窝 目前个人开发软件存在设置页面,可以让用户自定义些设置,但我发现,存储数据的代码逻 ...

  2. JSP-07-使用JavaBean封装数据

    7.1 常命包名 Dao 包中的接口(NewsDao)以及类(NewsDaoImpl)注意负责和数据操作相关的事情. Service 包中的接口和类对dao的方法进行封装和调用,注意负责和业务逻辑相关 ...

  3. json和xml封装数据、数据缓存到文件中

    一.APP的通信格式之xml xml:扩展标记语言,可以用来标记数据,定义数据类型,是一种允许用户对自己标记语言进行定义的源语言.XML格式统一,扩平台语言,非常适合数据传输和通信,业界公认的标准. ...

  4. xml方式封装数据方法

    1.xml方式封装数据方法 2.demo <?php xml方式封装数据方法 /** * [xmlEncode description] * @param [type] $code [descr ...

  5. 关于js渲染网页时爬取数据的思路和全过程(附源码)

    于js渲染网页时爬取数据的思路 首先可以先去用requests库访问url来测试一下能不能拿到数据,如果能拿到那么就是一个普通的网页,如果出现403类的错误代码可以在requests.get()方法里 ...

  6. 关于双重for循环封装数据问题

    1.问题描述 在使用双重for循环进行封装数据时出现一个问题,就是有的数据封装上了,有的数据未封装上,找了很久原因: for (A a:ListA) { for (B b: ListB) { if(a ...

  7. http中使用json封装数据的性能测试

    http中使用json封装数据的性能测试     一个项目使用json封装数据,接口例如:   客户端发送:   POST /list.do HTTP/1.1   Host: zoomi.com.cn ...

  8. Programming With Objective-C---- Encapsulating Data ---- Objective-C 学习(三) 封装数据

      Programming with Objective-C Encapsulating Data In addition to the messaging behavior covered in t ...

  9. 7.Struts2框架封装数据

    Struts2框架提供了很强大的数据封装的功能,不再需要使用Servlet的API完成手动封装了!! 第一种方式:属性驱动 > 提供对应属性的set方法进行数据的封装.--经常使用 * 表单的哪 ...

随机推荐

  1. 【书】.NET及计算机类相关书籍,持续更新...

    一级目录 链接: https://pan.baidu.com/s/1y3osr3YCQ7XlM81RzkN1eQ 提取码: gs3r 二级目录 链接: https://pan.baidu.com/s/ ...

  2. 关于两栏布局,三栏布局,一级点击三角触发select的onchange事件问题

    首先看这样一个效果:,这个截图来自移动端的列表的一整行,在这个效果当中,存在两个技术点,首先选择祝福卡这个宽度是一定的,右边的部分,宽度随着手机屏幕的宽度而自适应,再一个技术点就是点击最右侧向下箭头, ...

  3. HDU 5299 Circles Game

    HDU 5299 思路: 圆扫描线+树上删边博弈 圆扫描线有以下四种情况,用set维护扫描线与圆的交点,重载小于号 代码: #pragma GCC optimize(2) #pragma GCC op ...

  4. redis -memcahe

    tomcat自动化集成 https://blog.51cto.com/ellenv/1932817 Redis与Memcache对比:1.Memcache是一个分布式的内存对象缓存系统而redis是可 ...

  5. idea在本地调试,spark创建hiveContext的时候报错

    spark版本:1.6.1 scala版本:2.10 问题呢场景: 在idea调试本地程序的时候创建hiveContext报错,上午的时候是没有这个问题的,下午在项目中写了一个小deamon,出现了而 ...

  6. Lab 11-2

    Analyze the malware found in Lab11-02.dll. Assume that a suspicious file named Lab11-02.ini was also ...

  7. LeetCode--034--在排序数组中查找元素的第一个和最后一个位置(java)

    给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [ ...

  8. 同步请求和异步请求的区别,ajax异步请求如何理解

    同步请求和异步请求的区别 先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的 ...

  9. Codeforces Round #422 (Div. 2)E. Liar sa+st表+dp

    题意:给你两个串s,p,问你把s分开顺序不变,能不能用最多k段合成p. 题解:dp[i][j]表示s到了前i项,用了j段的最多能合成p的前缀是哪里,那么转移就是两种,\(dp[i+1][j]=dp[i ...

  10. 4、static

    static (静态的),用来修饰成员. 一.特点: 1.被修饰的方法或变量随着类的加载而加载 2.优先于对象存在 3.被所有的对象共享 4.除了可以被对象调用还可以被类名直接调用 二.类变量.成员变 ...