掃 雷 核 心 算 法

2021-06-21 09:41:17 字數 1765 閱讀 1704

ž          定義

在該案例中我們要實現類似於windows掃雷遊戲程式的核心功能,我們將掃雷遊戲的核心功能分為以下4個模組:

1,             隨機布雷模組

在該模組中,我們要為掃雷遊戲隨機的布置地雷,掃雷遊戲的布雷面板可以用二維int陣列表示,若某位置為地雷,則該位置用數字-1表示,若該位置不是地雷,則暫時用數字0表示。我們要編寫程式完成在該二維陣列中隨機布雷的操作,程式讀入三個引數:布雷面板的行數(r),列數(c),布置的地雷數(n),且要滿足要求0

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

2,             計算每個位置周圍的地雷數

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

3,             輸出布雷面板:

我們要編寫程式完成布雷面板的控制台輸出,為了區分布雷面板中哪些位置是已經被使用者排開的,哪些位置是未被排開的,我們對以上二維陣列的資料定義作如下約定:

若該位置儲存的數字是n,則n滿足如下條件:

1)  若0<=n<=8,則表示該位置不是地雷,其周圍位置的地雷數就是n,且該位置未被使用者排開。

2)  若10<=n<=18,則表示該位置不是地雷,其周圍位置的地雷數就是n%10,且該位置已經被使用者排開。

3)  若n==-1,則表示該位置是地雷,並且未被使用者標記。

4,             使用者排雷程式模組

完成以上兩個模組後,使用者可以完成排雷的操作,我們要編寫乙個程式來支援使用者通過控制台來排除地雷,使用者可以在控制台輸入座標位置,來表示排除該位置是地雷。當使用者輸入座標位置後,程式需要執行如下操作:

1)  若該座標位置是地雷(值為-1),則,程式結束,使用者排雷失敗。

2)  若該座標位置儲存的數字是大於0小於等於8的整數(該位置不是地雷,該位置周圍地雷數等於該數字,該位置未被使用者排開),則將該位置排開(並將該位置的數字+10,表示該位置已經排開),然後重新輸出一遍布雷面板。

3)  若該座標位置儲存的數字是大於等於10小於等於18的整數(該位置不是地雷,該位置已經被排開),則輸出錯誤資訊,請使用者重新輸入。

4)  若該座標位置儲存的數字等於0(該位置不是地雷,該位置周圍的8個位置也沒有地雷,該位置還未被使用者排開),則找該位置的周圍8個位置,將其排開,排開時遞迴的執行排雷程式模組的操作。

rsync 的核心演算法

rsync是unix linux下同步檔案的乙個高效演算法,它能同步更新兩處計算機的檔案與目錄,並適當利用查詢檔案中的不同塊以減少資料傳輸。rsync中一項與其他大部分類似程式或協定中所未見的重要特性是映象是只對有變更的部分進行傳送。rsync可拷貝 顯示目錄屬性,以及拷貝檔案,並可選擇性的壓縮以及...

rsync 的核心演算法

rsync是unix linux下同步檔案的乙個高效演算法,它能同步更新兩處計算機的檔案與目錄,並適當利用查詢檔案中的不同塊以減少資料傳輸。rsync中一項與其他大部分類似程式或協定中所未見的重要特性是映象是只對有變更的部分進行傳送。rsync可拷貝 顯示目錄屬性,以及拷貝檔案,並可選擇性的壓縮以及...

rsync的核心演算法

rsync是unix linux下同步檔案的乙個高效演算法,它能同步更新兩處計算機的檔案與目錄,並適當利用查詢檔案中的不同塊以減少資料傳輸。rsync中一項與其他大部分類似程式或協定中所未見的重要特性是映象是只對有變更的部分進行傳送。rsync可拷貝 顯示目錄屬性,以及拷貝檔案,並可選擇性的壓縮以及...