本次博客連接
結對同窗博客連接
github項目地址html
童景霖:完成AI的實現
黃永福:完成UI的實現python
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
· Planning | · 計劃 | 30 | 20 |
· Estimate | · 估計這個任務須要多少時間 | 20 | 20 |
· Development | · 開發 | 240 | 300 |
· Analysis | · 需求分析 (包括學習新技術) | 200 | 600 |
· Design Spec | · 生成設計文檔 | 30 | 30 |
· Design Review | · 設計複審 | 20 | 20 |
· Coding Standard | · 代碼規範 (爲目前的開發制定合適的規範) | 10 | 10 |
· Design | · 具體設計 | 60 | 80 |
· Coding | · 具體編碼 | 200 | 240 |
· Code Review | · 代碼複審 | 30 | 30 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 30 | 40 |
· Reporting | · 報告 | 40 | 60 |
· Test Repor | · 測試報告 | 20 | 15 |
· Size Measurement | · 計算工做量 | 20 | 25 |
· Postmortem & Process Improvement Plan | · 過後總結, 並提出過程改進計劃 | 20 | 20 |
· 合計 | 970 | 1510 |
將API返回的數據格式轉換,利用json.load()轉換成字典對象,再對字典進行處理得到所須要的數據git
def find_card(c_list): s1 = 0 s0 = 0 for x0 in itertools.combinations(c_list, 5): list1 = c_list.copy() x0 = list(x0) a = gets_core(x0, 5) if a < 20 : continue for y0 in x0: list1.remove(y0) for x1 in itertools.combinations(list1, 5): list2 = list1.copy() x1 = list(x1) for y1 in x1: list2.remove(y1) x2 = list2 b = gets_core(x1,5) c = gets_core(x2,3) if (a >= b) and (b >= c): s1 = a + 1.5*b + 2*c if s1 > s0: s0 = s1 global card card.clear() # 3 x2 str2 = get_str(x2,3) # 5 x1 str1 = get_str(x1,5) # 5 x0 str0 = get_str(x0,5) card.append(str2) card.append(str1) card.append(str0)
利用itertools迭代器的combinations函數從13張牌中抽取5張做爲後墩,判斷後墩牌型,若爲散牌則直接跳過;再從剩下的8張牌中抽取5張作爲中墩,判斷中墩牌型,若比後墩大,則直接跳過,從新搜索中墩;剩下的3張牌爲前墩。
將各類牌型賦予必定的分數值,將前中後墩的牌型分數相加獲得總分,總分最高的牌即爲最終牌型,並返回。github
class IndexDetail(QtWidgets.QDialog, history_detail.Ui_Dialog): def __init__(self, parent=None, *args, **kwargs): super().__init__(parent, *args, **kwargs) self.setupUi(self) self.res = API.history(MainWindow.TokenMine, IndexHistory.pid) print(self.res['status']) if self.res['status'] == 0: self.res = self.res['data'] self.res = self.res['detail'] self.label_name.setText(str(self.res[0]['name'])) self.label_score.setText(str(self.res[0]['score'])) self.label_card.setText(str(self.res[0]['card'])) self.label_name_2.setText(str(self.res[1]['name'])) self.label_score_2.setText(str(self.res[1]['score'])) self.label_card_2.setText(str(self.res[1]['card'])) self.label_name_3.setText(str(self.res[2]['name'])) self.label_score_3.setText(str(self.res[2]['score'])) self.label_card_3.setText(str(self.res[2]['card'])) self.label_name_4.setText(str(self.res[3]['name'])) self.label_score_4.setText(str(self.res[3]['score'])) self.label_card_4.setText(str(self.res[3]['card'])) else: self.label_card.setText('status:'+str(self.res['status'])) def back(self): self.close() w = IndexHistory(window) w.show()
def getnum(a): return a.num def tonghuashu(dun_b): lista = [] listb = [] listc = [] listd = [] #分類 for s in dun_b: if s.color == "#": lista.append(s) elif s.color == "$": listb.append(s) elif s.color == "&": listc.append(s) elif s.color == "*": listd.append(s) #排序 lista.sort(key=getnum) listb.sort(key=getnum) listc.sort(key=getnum) listd.sort(key=getnum) if len(lista) == 5: liste = lista elif len(listb) == 5: liste = listb elif len(listc) == 5: liste = listc elif len(listd) == 5: liste = listd else: liste = [] l = len(liste) i = 1 if l == 5: flag = True while i < l: if liste[i].num != liste[i-1].num+1: flag = False break i = i+1 else: flag =False if flag is True: return liste[0].num else: return 0 a = tonghuashu(list) print(a)
傳入的牌事先通過處理以類的形式存放於列表s中,先將他們根據不一樣的花色進行分類,若某一種花色的數量達到5,再將其按牌的大小進行排序,檢查是不是連續的牌型,是則爲同花順。json
調用顯示繼承來的窗口發生跳出api
發現繼承來的窗口未定義自定義槽函數,一經調用,立馬跳出!網絡
是app
第N周 | 新增代碼(行) | 累計代碼(行) | 本週學習耗時(小時) | 累計學習耗時(小時) | 重要成長 |
---|---|---|---|---|---|
6 | 0 | 0 | 8 | 8 | 學習並能簡單使用墨刀、ps等軟件 |
7 | 800 | 800 | 12 | 20 | 學習python |
8 | 1200 | 2000 | 12 | 32 | 學習python和pyqt5 |