陳啓昌:網頁前端html、與服務器交互html
劉華一:網頁後端python、寫博客前端
Planning | 計劃 | 預計耗時 | 實際耗時 |
---|---|---|---|
Planning | 計劃 | 15 | 30 |
Estimate | 估計這個任務須要多少時間 | 40 | 50 |
Development | 開發 | 500 | 850 |
Analysis | 需求分析 (包括學習新技術) | 120 | 230 |
Design Spec | 生成設計文檔 | 60 | 60 |
Design Review | 設計複審 | 15 | 10 |
Coding Standard | 代碼規範 (爲目前的開發制定合適的規範) | 70 | 60 |
Design | 具體設計 | 120 | 180 |
Coding | 具體編碼 | 500 | 800 |
Code Review | 代碼複審 | 50 | 50 |
Test | 測試(自我測試,修改代碼,提交修改) | 120 | 120 |
Reporting | 報告 | 30 | 30 |
Test Repor | 測試報告 | 30 | 30 |
Size Measurement | 計算工做量 | 10 | 10 |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計劃 | 30 | 30 |
合計 | 1710 | 2540 |
代碼組織與內部實現設計
python
int rec[20]; int cnt=0; int pt() { vector<int> ve[5]; for(int i=1;i<=13;i++)ve[rec[i]].pb(i); if(ve[1].size()==3&&ve[2].size()==5&&ve[3].size()==5) { cnt++; cout<<'['; for(int i=0;i<ve[3].size();i++) { cout<<ve[3][i]; if(i!=ve[3].size()-1)cout<<','; } cout<<']'; cout<<','; cout<<endl; } } int dfs(int deep,int col) { if(deep>13) { pt();return 0; } if(deep)rec[deep]=col; if(deep<13) for(int i=1;i<=3;i++) dfs(deep+1,i); else dfs(deep+1,1); } int main() { freopen("1.txt","w",stdout); ios::sync_with_stdio(false); cin.tie(0); cout<<'['; dfs(0,1); cout<<']'; }
以上代碼生成3 5 5 排列 ,保存爲3.txt,51.txxt,52.txtios
在python內,載入保存爲listc++
而後各類各類特判,找出權值最大的方案返回git
後端使用flask框架接收前端信息代碼以下:github
from flask import Flask from flask import request from flask_cors import CORS import json app = Flask(__name__) @app.route('/test') def test(): global list_3,list_51,list_52,card_list,card_list_str data = request.get_json() card_str = data["card"] card_list_str=card_str.split(' ') init_card()
調用init_card()函數對卡牌信息進行預處理ajax
map_color2i={"$":1,"&":2,"*":3,"#":4} map_i2color={1:"$",2:"&",3:"*",4:"#"} map_card2i={"A":14,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,"J":11,"Q":12,"K":13} card_list.clear() vector_color.clear() vector_num.clear() card_list.append((0,0)) for i in range(1,16): vector_num.append([]) vector_color.append([]) print(card_list_str) for i in card_list_str: color=map_color2i[i[0]] num=map_card2i[i[1]] card_list.append((color,num)) vector_color[color].append(num) vector_num[num].append(color) for i in range(1,5): vector_color[i].sort() print(card_list)
將每一張牌信息保存爲一個tuple 第一個值是花色1-4 第二個是數字2-14(A爲14)
處理完後的信息以下:
算法
改進思路:python跑得慢,c++跑得快,原來想用python實現前端和c++連起來,但有點麻煩,因而採用使用c++生成排列,
python生成排列用時3s,c++生成後保存爲文件,python用loads載入只用300ms,快了10倍
而後嘗試用postman測試須要運算2.56s
json
測試用例:
&K $7 #8 #4 *10 &10 &9 *J #7 *K $8 $A $K &5 #8 #7 #A *8 &3 &A &10 &4 &9 *J *4 &2 $4 *J &4 $A $J *4 &A $K &3 #3 #7 &5 &2 *9 $A #6 *2 &7 $8 #J $2 #Q #10 $9 &10 #4 *9 &A *4 $10 #8 #3 $5 $2 &5 $9 &10 #4 *K &5 *J #4 *9 &Q &3 $Q #2 *5 *6 &A $8 $K *K *9 #J $2 $9 &5 $8 &J &4 &8 $A *10 &7 *8 *K #4 &K $2 #Q $6 *Q $K &J *10 &5 $3 *K *A &Q &6 &K *4 $5 $7 #Q &A $6 #K #5 *9 &7 &K #5 #A $9 *7 $A *2 #3 &4 *J #9
測試輸出:
{"card":["*2 *2 *3","*4 *4 *5 *5 *5","*6 *6 *A *A *A"]} {"card":["#7 *8 #8","&A #A &4 *4 *J","&2 &3 &5 &9 &10"]} {"card":["&3 #3 #7","*J $J $K &2 &5","&4 *4 $4 &A $A"]} {"card":["*2 $2 $A","*9 $9 &7 $8 &10","#4 #6 #10 #J #Q"]} {"card":["*4 #4 &A","&5 $5 #3 #8 *K","*9 $9 &10 $10 $2"]} {"card":["*9 *J $K","&Q $Q &A *5 $8","#2 &3 #4 &5 *6"]} {"card":["*9 $9 *10","#J *K $A $2 $8","&4 &5 &7 &8 &J"]} {"card":["*8 *10 &J","$2 $3 #4 &5 $6","&K *K $K *Q #Q"]} {"card":["&6 $6 $7","&Q #Q #5 $5 *4","&K *K #K &A *A"]} {"card":["&4 #5 *J","&7 *7 &K *2 #3","*9 #9 $9 #A $A"]}
問題描述 | 作過哪些嘗試 | 是否解決 | 有何收穫 |
---|---|---|---|
ajax發post和get | 無數種 | 是 | 我太菜了 |
對接AI遭遇CORS | 導入包配置一下 | 暫無,已有思路 | https真香 |
設計原型前沒有看好需求 | 重構了一部分 | 是 | 原型仍是得好好整 |
github的使用:徽章?開源協議?持續集成?分支? | 996徽章?一我的開分支意義不大 | 否 | 我仍是太菜了 |
值得學習的地方:
啓昌太強了,老是肝到很晚,很是感動
須要改進的地方:
太強了 沒有
第N周 | 新增代碼 | 累計代碼 | 本週學習 | 累計學習 | 重要成長 |
---|---|---|---|---|---|
第1周 | xxx | xx | 15h | 15h | mokcingBot |
第3周 | 1000(1.64MB無圖片) | 1000(1.64MB無圖片) | 20h | 35h | 先後端交互 |