1. 程式人生 > >預先封裝數據的思路.md

預先封裝數據的思路.md

b-s ng- tex ger san cor 一個 sans any

預先封裝數據的思路.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