結對同學
本作業部落格的鏈結
github位址
具體分工
林鎔煒
陳錦傑
psp2.1
personal software process stages
預估耗時(分鐘)
實際耗時(分鐘)
planning
· 計畫
5060
estimate
· 估計這個任務需要多少時間
3040
development
· 開發
1000
1200
analysis
· 需求分析(包括學習新技術)
9001000
design spec
· 生成設計文件
4030
design review
· 設計複審
3060
coding standard
· **規範(為開發制定合適的規範)
3040
design
· 具體設計(用偽**,流程圖等方法來設計具體模組)
200500
coding
· 具體編碼
1500
1600
code review
· **複審
3040
test
· 測試(自我測試,修改,提交修改)
80100
reporting
· 報告
100100
test report
· 測試報告
3030
size measurement
· 計算工作量
1015
postmortem & process improvement plan
· 事後總結並提出過程改進計畫
6060
合計4020
4875
def getcard(list1,list2):#出牌
x1=tuple(list1)
d=0v1=value0(list2)
v2=value1(list2)
v3=value2(list2)
#print(v1,v2,v3)
ca1=
ca2=
ca3=
for i in itertools.combinations(x1, 5):#選後墩
c1=list(i)
vc1=grade(c1)
x2=tuple(set(list1)-set(c1))
if(vc1[0]>1):
for j in itertools.combinations(x2,5):#選中墩前墩
c2=list(j)
vc2=grade(c2)
c3=list(set(x2)-set(j))
vc3=grade(c3)
if((vc1[0]>vc2[0])and (vc2[0]>vc3[0]))or((vc1[0]==vc2[0])and( vc2[0]>vc3[0])and (vc1[1]>vc2[1]))or((vc1[0]>vc2[0])and (vc2[0]==vc3[0])and( vc2[1]>vc3[1]))or((vc1[0]==vc2[0])and (vc2[0]==vc3[0])and( vc1[1]>vc2[1])and (vc2[1]>vc3[1])):
m=value(v3,vc3,0)+value(v2,vc2,2)+value(v1,vc1,3)
a1=value(v3, vc3, 0)
a2=value(v2, vc2, 2)
a3=value(v1, vc1, 3)
if((a1>910)and (a2>880 )and(a3>980)):#打槍
m*=2
if ((a1>910)or (a2>880 )or(a3>980))and((value(v3,vc3,0)-910)*(value(v2,vc2,2)-880)*(value(v1,vc1,3)-980)<0):#放一水贏兩水
m=m+650
elif((a1>910)or (a2>880 )or(a3>980))and((a1-820)*(a2-720)*(a3-940)<0):#不能贏時盡量不被打槍
m+=200
#print(m)
if m>d:
d=mca1=c1
ca2=c2
ca3=c3
ca3=f(ca3)
ca2=f(ca2)
ca1=f(ca1)
return [ca3,ca2,ca1]
這段**為關鍵**,這段**主要的是通過權值進行權衡。主要有三種情況,當三墩牌組出比較一般的情況下,通過權衡可以放棄其中的一墩牌使其他兩墩牌能更大;當三墩牌能達到一定的權值下可以考慮平均三墩使三墩牌較大更有概率打槍;當三墩牌不太理想的情況下可以將其中一墩造大使自己不被打槍。通過這些權衡處理後得出權值最高的牌。
消耗最大的函式是request函式,主要時間花費在伺服器響應上。
改進:原本使用組合數時沒有篩除後墩無需繼續判斷的牌型,導致在組合數上浪費較多的時間,改進後出牌速度大幅提公升。
展示出專案部分單元測試**,並說明測試的函式,構造測試資料的思路
def gameopen(token):
url = ""
headers =
response = requests.request("post", url, headers=headers)
#print(response.text)
dict_data = str(json.loads(response.text))
#print(dict_data)
p=re.compile("'id': (.+?),")
id=p.findall(dict_data)
#print(id)
p=re.compile("card': '(.+?)'")
card=p.findall(dict_data)[0]
#print(card)
return id
這個**的單元測試主要來判斷正則是否正確
def getjson(id,list):#轉化json格式
z=['','','']
for i in range(0,len(list)):
for j in range(0,len(list[i])):
z[i]=z[i]+list[i][j]
if(j!=len(list[i])-1):
z[i]=z[i]+' '
data =
#string = json.dumps(data, ensure_ascii=false)
return data
這個的單元測試來判斷json格式是否正確
還有就是核心**的m來檢視權值
在這次結對程式設計中最大的問題就是與api對接從api中獲取資料以及上傳資料到api。
已解決
有時候不懂去請教別人比自己盲目探求的效率來得高,不管是問來還是查來的只要我們能很好的掌握這都是我們的知識。
陳錦傑:
隊友乙個字形容「強」,開始程式設計的時候前後端任我挑自己雖然不太懂的前端也在他的自學下做得非常好,他最值得我學習的地方就是「不會找度娘」,如果針對這次結對程式設計來說隊友做的很好帶改進的就是要做的更好。
林鎔煒:
隊友很強,作業出來之後,他做ai,我做ui,本來還打算跟他一起**一下ai,沒想到他第三天就完事了,效率高得可怕。最值得我學習的地方就是工作態度,我太拖了。對隊友的改進的建議是下次別再乙個人默默肝完了,哈哈。
第n周新增**(行)
累計**(行)
本週學習耗時(小時)
累計學習耗時(小時)
重要成長10
01010介面設計
2210
21020
30api、ui學習
3480
69025
55用pyqt5完成ui設計
第二次結對程式設計作業
組員部落格鏈結 本作業部落格鏈結 github倉庫 共同解決互動 api 部落格 psp2.1 personal softwareprocess stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫200 250 estimate 估計這個任務需要多少時間 250300 develo...
第二次結對程式設計作業
楊潤秋 負責前端介面和網路介面呼叫 書寫及最後的整合及打包 韓洪威 負責後端ai演算法部分 書寫 優化 除錯 psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫 3030 estimate 估計這個任務需要多少時間 ...
第二次結對程式設計作業
陳佳雯 王思婷github psp4.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫 12020 estimate 估計這個任務需要多少時間 1020 development 開發 2590 3870 analysis 需...