結對程式設計作業

2022-07-30 21:03:16 字數 4599 閱讀 4069

姓名部落格

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表

2,如果open表為空,則失敗,退出;否則,取出open表中第乙個節點,加入到close表中。

3,如果節點是目標節點,則成功,退出。

4,如果節點可擴充套件,將節點的擴充套件節點加入到open表中,將open表按照估價函式由小到大排列;否則跳轉第2步。

八數碼問題的乙個狀態實際上是0~9的乙個排列,對於任意給定的初始狀態和目標,不一定有解,也就是說從初始狀態不一定能到達目標狀態。因為排列有奇排列和偶排列兩類,從奇排列不能轉化成偶排列或相反。

如果乙個數字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 墨刀 原型分析 根據題目要求,我們最終設計了相對簡約的介面原型。首先是遊戲開始介面 點選設定後進入設定介面,設定難易度。...