第十四周專案 5 體會棋盤遊戲中的資料儲存

2021-06-27 08:52:49 字數 1660 閱讀 8109

/*

*檔名稱 :mian.cpp

*作 者 :韓娟

*完成日期 :2023年12月1日

*版 本 號 :v1.0

* *問題描述 : 定義乙個8行8列的二維陣列a[8][8]。

(1)為二維陣列中的資料賦50以內的隨機數(程式模板中setdata()函式已經完成,利用產生隨機數的系統函式實現),可能的取值如圖所示;

(2)設計函式out()按行輸出二維陣列中的資料;

(3)設計函式outdiagonal()輸出從左上到右下對角線上的元素的值,如對圖的資料而言,輸出為48 34 12 31 40 42 34 45;再輸出從右上到左下對角線上的值;

(4)將此陣列視為「掃雷」遊戲的介面(實際上掃雷遊戲的介面一般就用二維陣列儲存其介面),通過鍵盤輸入乙個位置,輸出其周圍八個格仔中的資料,如輸入2 2時,輸出34 30 47 29 48 14 12 31(注意:一共八個,不包括該位置上的數)(參見圖中的黃色部分),計算這些數的和並輸出。另外,如果選擇的位置在邊緣或角上時,周圍的格數不夠八個,按實際個數輸出。請用迴圈有規律地列舉出來各個值,不要採用順序結構逐個羅列。這項功能由函式mine()完成。

(5)設計函式change()改變陣列中的值。改變的規則是:從第2行(即a[1]行)開始到最後一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。對各行最後一列元素,其右上方無資料,取上一行中的第乙個元素,如a[1][7]取a[0][7]和a[0][0]之和。對上圖中的資料,a[1]行的元素將依次為:50(48+2) 27(2+25) 41 30 33 63 60 64(16+48),a[2]行依次為77 68…114。

*輸入描述 :略

*程式輸出 :陣列,對角線元素,相鄰的元素,總和,改變後的值

*/#include #include #include using namespace std;

void setdata(int a[8][8]); //設定隨機數

void out(int a[8][8]); //輸出陣列

void outdiagonal(int a[8][8]); //輸出對角線元素的值

void mine(int a[8][8],int x, int y); //按「掃雷」遊戲的規則輸出相鄰格仔

void change(int a[8][8]); //按要求改變量值

int main()

void setdata(int a[8][8])

//按行序優先輸出陣列

void out(int a[8][8])

{ int i,j;

cout<

cout<=0)&&(i<=7)&&(j>=0)&&(j<=7)&&!((i==x)&&(j==y)))

{cout<

知識點總結 :

寫這個的時候千萬不能忘了開頭的檔名#include ,不然那個隨機函式沒有辦法呼叫,然後就是一些for語句的使用,寫的時候真的難。

學習心得 :

這個程式寫的時候真的感到有些無力,參考的寫都覺得累,程式設計師加油吧!

第十四周專案五 體會棋盤遊戲中的資料儲存

檔名稱 test.cpp 完成日期 2014年11月30日 版本號 v1.0 問題描述 體會棋盤遊戲中的資料儲存 程式輸入 無 程式輸出 各種處理 include include include using namespace std void setdata int a 8 8 設定隨機數 voi...

第十四周專案五 體會棋盤遊戲中的資料儲存

include include includeusing namespace std void setdata int a 8 8 設定隨機數 void out int a 8 8 輸出陣列 void outdiagonal int a 8 8 輸出對角線元素的值 void mine int a 8...

第十四周專案三

問題及 all right reserved.檔名稱 是否二叉排序樹.cpp 版本號 v1.0 問題描述 設計乙個演算法,判斷給定的二叉樹是否是二叉排序樹。輸入描述 用二叉樹的形式輸入數字 程式輸出 判斷結果 include include define maxsize 100 typedef in...