第二次結對程式設計作業

2022-05-11 10:05:20 字數 4275 閱讀 9458

結對同學

本作業部落格的鏈結

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 需...