結對同窗博客連接(林易豐)html
本次做業博客連接前端
GitHub項目地址python
前端: 劉偉楠git
後端: 林易豐github
博客: 兩人共同完成算法
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 20 | 15 |
· Estimate | · 估計這個任務須要多少時間 | 20 | 15 |
Development | 開發 | 780 | 720 |
· Analysis | · 需求分析 (包括學習新技術) | 160 | 160 |
· Design Spec | · 生成設計文檔 | 120 | 130 |
· Design Review | · 設計複審 | 40 | 40 |
· Coding Standard | · 代碼規範 (爲目前的開發制定合適的規範) | 60 | 60 |
· Design | · 具體設計 | 60 | 120 |
· Coding | · 具體編碼 | 80 | 80 |
· Code Review | · 代碼複審 | 20 | 20 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 30 | 45 |
Reporting | 報告 | 40 | 40 |
· Test Report | · 測試報告 | 10 | 10 |
· Size Measurement | · 計算工做量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 過後總結, 並提出過程改進計劃 | 40 | 45 |
· 合計 | 1590 | 1510 |
以註冊綁定爲例:json
def registerbang(self): def register_(user, psw, student_number, student_password): url = 'http://www.revth.com:12300/auth/register2' headers = { 'Content-Type': 'application/json' } data = { 'username': user, 'password': psw, "student_number": student_number, "student_password": student_password } r = requests.post(url, headers=headers, data=json.dumps(data)) return r r = register_(self.user, self.psw, self.student_number, self.student_password) status = r.json()['status'] if status == 0 and 'user_id' in r.json()['data']: self.user_id = r.json()['data']['user_id'] self.is_register = True print('register may be successful') print(r.text) else: print('register failed!') error_report(status) print(r.text)
AI部分代碼組織設計
api部分代碼組織設計
後端
算法的關鍵就是AI。由於太菜,以前想過列出七萬多種狀況分別計算權值,可是難度比較大,因此AI部分採起了依次找同花順,葫蘆,炸彈,同花,順子,三條,若找到則給後墩,若多於一個則再給中墩,餘下三張牌做爲前墩。若找不到則按從大到小排序,將牌按大小依次給後墩,中墩,前墩。
上圖爲部分流程圖,主要思路就是分別尋找同花順,葫蘆,炸彈,同花,順子,三條,優先給後墩,其次給中墩,剩下三張做爲前墩。api
林易豐 21:46:58網絡
都有價值都重要……
舉個炸彈的例子:
bmax和mid分別存放大小炸彈的數字(若是有)
if len(s) == 26: if len(bomb_num) == 3: # 3個炸彈 bmax = bomb_num[0] if bomb_num[1] > bmax: bmax = bomb_num[1] if bomb_num[2] > bmax: bmax = bomb_num[2] #最大給後墩 # 中間給中墩 if bomb_num[0] == bmax: if bomb_num[1] < bomb_num[2]: mid = bomb_num[2] else: mid = bomb_num[1] if bomb_num[1] == bmax: if bomb_num[0] < bomb_num[2]: mid = bomb_num[2] else: mid = bomb_num[0] if bomb_num[2] == bmax: if bomb_num[1] < bomb_num[0]: mid = bomb_num[0] else: mid = bomb_num[1] return 2 elif len(bomb_num) == 2: # 2個炸彈 bmax = bomb_num[0] if bmax < bomb_num[1]: bmax = bomb_num[1] mid = bomb_num[0] else: mid = bomb_num[1] return 2 elif len(bomb_num) == 1: # 1個炸彈 bmax = bomb_num[0] return 1 else: return 0 # 沒炸彈 else: # 找給中墩 if len(bomb_num) == 2: # 2個炸彈 mid = bomb_num[0] if mid < bomb_num[1]: mid = bomb_num[1] return 2 elif len(bomb_num) == 1: # 1個炸彈 mid = bomb_num[0] else: return 0 # 沒炸彈
優化規範一下各個找牌函數,以前由於缺乏事先的構思,致使主函數裏還須要許多邏輯判斷和分支。
找同花順函數:
構造思路就是把找特殊牌的函數拿出來單獨對牌測試一下
一、問題描述:後端接入的代碼沒法展示在UI上
二、嘗試:理解後端傳入的API參數,從新寫過展現界面的函數。
三、是否解決: 是
四、有何收穫:更加熟悉python這門演唱會
隊友寫代碼的能力比較強,邏輯比較清晰
溝通能力能夠稍稍增強
第N周 | 新增代碼(行) | 累計代碼(行) | 本週學習耗時(小時) | 重要成長 |
---|---|---|---|---|
1 | 223 | 223 | 10 | 熟悉python |
2 | 219 | 442 | 11 | 瞭解pygame |