姓名部落格
github專案位址
分工劉佳潤
部落格鏈結
github鏈結
原型設計,測試**
沈明鎮部落格鏈結
github鏈結(release)
編寫**,編寫部落格
縮放經常出現error
用python調整縱橫比和大小,使其在視窗能正確顯示
是學習了pil庫的使用
def __init__(self, startnode, endnode):
self.openlist =
self.closelist =
self.startnode = startnode
self.endnode = endnode
self.currentnode = startnode
self.pathlist =
self.step = 0
return;
def getminfnode(self):
nodetemp = self.openlist[0]
for node in self.openlist:
if node.g + node.h < nodetemp.g + nodetemp.h:
nodetemp = node
return nodetemp
def nodeinopenlist(self, node):
for nodetmp in self.openlist:
if nodetmp.array2d == node.array2d:
return true
return false
def nodeincloselist(self, node):
for nodetmp in self.closelist:
if nodetmp.array2d == node.array2d:
return true
return false
def endnodeinopenlist(self):
for nodetmp in self.openlist:
if nodetmp.array2d == self.endnode.array2d:
return true
return false
def getnodefromopenlist(self, node):
for nodetmp in self.openlist:
if nodetmp.array2d == node.array2d:
return nodetmp
return none
def searchonenode(self, node):
if self.nodeincloselist(node):
return
gtemp = self.step
if self.nodeinopenlist(node) == false:
node.setg(gtemp)
node.seth(self.endnode);
node.father = self.currentnode
else:
nodetmp = self.getnodefromopenlist(node)
if self.currentnode.g + gtemp < nodetmp.g:
nodetmp.g = self.currentnode.g + gtemp
nodetmp.father = self.currentnode
return;
def searchnear(self):
flag = false
for x in range(0, 3):
for y in range(0, 3):
if self.currentnode.array2d[x][y] == 0:
flag = true
break;
if flag == true:
break;
self.step += 1
if x - 1 >= 0:
arraytemp = move(copy.deepcopy(self.currentnode.array2d), x, y, x - 1, y)
self.searchonenode(node(arraytemp));
if x + 1 < 3:
arraytemp = move(copy.deepcopy(self.currentnode.array2d), x, y, x + 1, y)
self.searchonenode(node(arraytemp));
if y - 1 >= 0:
arraytemp = move(copy.deepcopy(self.currentnode.array2d), x, y, x, y - 1)
self.searchonenode(node(arraytemp));
if y + 1 < 3:
arraytemp = move(copy.deepcopy(self.currentnode.array2d), x, y, x, y + 1)
self.searchonenode(node(arraytemp));
return;
1,將初始節點裝入open表八數碼問題的乙個狀態實際上是0~9的乙個排列,對於任意給定的初始狀態和目標,不一定有解,也就是說從初始狀態不一定能到達目標狀態。因為排列有奇排列和偶排列兩類,從奇排列不能轉化成偶排列或相反。2,如果open表為空,則失敗,退出;否則,取出open表中第乙個節點,加入到close表中。
3,如果節點是目標節點,則成功,退出。
4,如果節點可擴充套件,將節點的擴充套件節點加入到open表中,將open表按照估價函式由小到大排列;否則跳轉第2步。
如果乙個數字0~8的隨機排列871526340,用f(x)表示數字x前面比它小的數的個數,全部數字的f(x)之和為y=∑(f(x)),如果y為奇數則稱原數字的排列是奇排列,如果y為偶數則稱原數字的排列是偶排列。
例如871526340這個排列的
y=0+0+0+1+1+3+2+3+0=10
10是偶數,所以他偶排列。871625340
y=0+0+0+1+1+2+2+3+0=9
9是奇數,所以他奇排列。
因此,可以在執行程式前檢查初始狀態和目標狀態的窘是否相同,相同則問題可解,應當能搜尋到路徑。否則無解。
是學習了很多處理的方法(面向csdn),也學習了很多pygame庫的使用,和ui原型設計的方法
psp2.1
personal software process stages
預估耗時(分鐘)
實際耗時(分鐘)
planning
計畫60
90estimate
估計這個任務需要多少時間
6090
development
開發2290
2360
analysis
需求分析 (包括學習新技術)
450500
design spec
生成設計文件
200200
design review
設計複審
6060
coding standard
**規範 (為目前的開發制定合適的規範)
4040
design
具體設計
120180
coding
具體編碼
1000
900code review
**複審
120120
test
測試(自我測試,修改**,提交修改)
300360
reporting
報告180
150test repor
測試報告
9060
size measurement
計算工作量
3030
postmortem & process improvement plan
事後總結, 並提出過程改進計畫
6060
合計2530
2600
第n周新增**(行)
累計**(行)
本週學習耗時(小時)
累計學習耗時(小時)
重要成長
1668
6685
5了解了八數碼問題的幾種解法,了解pygame模組的特性
2944
1612
2732
使用pygame製作了基本的遊戲介面,熟練了python語言的特性
3443
2055
2355
修改bfs演算法為a演算法,完成了遊戲的基本功能40
2055964
修復了遊戲的一些bug
結對程式設計作業
主介面 點選打亂鍵,自動生成一組亂序的,玩家需要將這組亂序進行恢復。往次得分介面以名字得分以及對應遊戲場次的二維表展示每位玩家的當前總得分情況 按分數從高到低進行排名 在此介面玩家仍可正常進行遊戲,當玩家需要ai提示時,點選ai演示,ai演算法將代替玩家移動下一步 原型模型設計工具 axure rp...
結對程式設計作業
部落格資訊 瀋陽航空航天大學計算機學院2020軟體工程作業 作業要求 課程目標 熟悉乙個 高質量 軟體的開發工程 作業目標 結對程式設計作業 四則運算 應為我們採取的是qq工具以及遠端控制對方電腦的方式,以下是我和隊友進行問題討論以及思路梳理時的相關 序號重要性 審查項結論1重要 標頭檔案和定義檔案...
結對程式設計作業
具體分工 林昊煒陳嘉辰 ai 部分演算法的實現 計畫 相關資料的收集 華容道遊戲的實現 華容道原型的設計 華容道遊戲的收集與分類 遊戲ui設計 原型開發工具 axure rp 9 墨刀 原型分析 根據題目要求,我們最終設計了相對簡約的介面原型。首先是遊戲開始介面 點選設定後進入設定介面,設定難易度。...