第一篇:C語言程序設計掃雷游戲實驗報告
中南大學
程序設計基礎實踐報告
學生姓名 張蘭蘭 學 院 信息科學與工程學院 專業班級 物聯網工程1301班 完成時間 2014.1 題 目 設計一個和window系統類似的小游戲【挖地雷】
《計算機程序設計實踐》錯誤!未指定書簽。
目錄
1.課程設計內容.............................................................................................3 2.課程設計目的.............................................................................................3 3.背景知識....................................................................................................3 4.工具/準備工作............................................................................................5 5.設計步驟、方法.........................................................................................5
5.1.步驟1:步驟名稱(二級標題).......................................................錯誤!未定義書簽。
步驟1.1:步驟名稱(三級標題)..............................................................................5 5.1.1.5.2.5.3.步驟2:步驟名稱..........................................................................錯誤!未定義書簽。步驟n:步驟名稱..........................................................................錯誤!未定義書簽。
6.設計結果及分析.........................................................................................5 7.設計結論..................................................................................................15 8.問題及心得體會.......................................................................................16 9.對本設計過程及方法、手段的改進建議....................................................17 10.參考文獻..................................................................................................17
《計算機程序設計實踐》錯誤!未指定書簽。
case 4:
system(“cls”);
printf(“請輸入棋盤行列數(小于20且用逗號隔開):”);
scanf(“%d,%d”,&x,&y);
getchar();
printf(“請輸入雷的個數:”);
scanf(“%d”,&b);
getchar();
break;
}
break;
}
else
{
printf(“輸入錯誤請重新輸n”);
}
} while(begin){
system(“cls”);
InitialValue_game(&g);
InitialMine_game(&g);
print_game(&g,2);
NO=1;
while(NO)
{
printf(“Please choose:”);
scanf(“%d,%d”,&i,&j);getchar();if(-1 { switch(openmap(&g,i-1,j-1)) { case 1: 《計算機程序設計實踐》錯誤!未指定書簽。 print_game(&g,1); printf(“游戲結束!按回車鍵再來一局n”); if(getchar()=='n')begin=1; else begin=0; NO=0; break; case 2: if(judge_game(&g)==b) { printf(“win!n”); print_game(&g,1); printf(“按回車鍵再來一局n”); if(getchar()=='n')begin=1; else begin=0; NO=0; break; } else print_game(&g,2);NO=1;break; default:break; } } else { printf(“你輸入錯誤!請重新輸入n”); } } } } 中南大學 程序設計基礎實踐報告 學生姓名 張蘭蘭 學 院 信息科學與工程學院 專業班級 物聯網工程1301班 完成時間 2014.1 題 目 設計一個和window系統類似的小游戲【挖地雷】 《計算機程序設計實踐》403591717.docx 目錄 1.課程設計內容.............................................................................................3 2.課程設計目的.............................................................................................3 3.背景知識....................................................................................................3 4.工具/準備工作............................................................................................5 5.設計步驟、方法.........................................................................................5 5.1.步驟1:步驟名稱(二級標題).......................................................錯誤!未定義書簽。 步驟1.1:步驟名稱(三級標題)..............................................................................5 5.1.1.5.2.5.3.步驟2:步驟名稱..........................................................................錯誤!未定義書簽。步驟n:步驟名稱..........................................................................錯誤!未定義書簽。 6.設計結果及分析.........................................................................................5 7.設計結論..................................................................................................15 8.問題及心得體會.......................................................................................16 9.對本設計過程及方法、手段的改進建議....................................................17 10.參考文獻..................................................................................................17 《計算機程序設計實踐》403591717.docx printf(“請輸入棋盤行列數(小于20且用逗號隔開):”); scanf(“%d,%d”,&x,&y); getchar(); printf(“請輸入雷的個數:”); scanf(“%d”,&b); getchar(); break; } break; } else { printf(“輸入錯誤請重新輸n”); } } while(begin){ system(“cls”); InitialValue_game(&g); InitialMine_game(&g); print_game(&g,2); NO=1; while(NO) { printf(“Please choose:”); scanf(“%d,%d”,&i,&j);getchar();if(-1 { switch(openmap(&g,i-1,j-1)) { case 1: print_game(&g,1); printf(“游戲結束!按回車鍵再來一局n”); 《計算機程序設計實踐》403591717.docx if(getchar()=='n')begin=1; else begin=0; NO=0; break; case 2: if(judge_game(&g)==b) { printf(“win!n”); print_game(&g,1); printf(“按回車鍵再來一局n”); if(getchar()=='n')begin=1; else begin=0; NO=0; break; } else print_game(&g,2);NO=1;break; default:break; } } else { printf(“你輸入錯誤!請重新輸入n”); } } } } C語言程序設計報告 題目: 掃雷小游戲設計 電子通信與物理學院 日期:2018年7月 12 日 指導教師評語 目錄 1.課程設計內容...........................................................................................................1 2.課程設計目的...........................................................................................................1 3.背景知識..................................................................................................................1 4.工具/準備工作..........................................................................................................3 5.設計步驟、方法.....................................................................................................3 5.1........................................................................................................................3 5.2定義全局變量..................................................................................................4 5.3挖雷部分函數的分析.......................................................................................5 6.設計結果及分析.....................................................................................................11 7.設計結論...............................................................................................................16 8.參考文獻...............................................................................................................17 附錄...........................................................................................................................17 1.課程設計內容 在計算機逐步滲入社會生活各個層面的今天,計算機已經成為人們日常生活的一分,越來越多的人使用計算機辦公、娛樂等等。 掃雷游戲是Windows操作系統自帶的一款小游戲,在過去的幾年里,Windows操作系統歷經數次換代更新,變得越來越龐大、復雜,功能也越來越強大,但是這款小游戲依然保持原來的容貌,可見這款小游戲受到越來越多人的喜愛。我利用C-free編寫了與它功能相仿的挖地雷游戲,寓學于樂。 即:設計一個功能與Windows中的挖雷游戲相同的小游戲。 2.課程設計目的 1.培養學生綜合運用所學知識獨立完成課題的能力。 2.試學生更深入地理解和掌握該課程中的有關基本概念,程序設計思想和方法。3.提高對工作認真負責、一絲不茍,對同學團結友愛,協作攻關的基本素質。4.培養勇于探索、嚴謹推理、實事求是、有錯必改,用實踐來檢驗理論,全方位考慮問題等科學技術人員應具有的素質。 5.培養從資料文獻、科學實驗中獲得知識的能力,提高從別人經驗中找到解決問題的新途徑的悟性,初步培養工程意識和創新能力。 6.對掌握知識的深度、運用理論去處理問題的能力、實驗能力、課程設計能力、書面及口頭表達能力進行考核 3.背景知識 游戲區包括雷區、地雷計數器(位于左上角,記錄剩余地雷數)和計時器(位于 右上角,記錄游戲時間),確定大小的矩形雷區中隨機布置一定數量的地雷(初級為9*9個方塊10個雷,中級為16*16個方塊40個雷,高級為16*30個方塊99個雷,自定義級別可以自己設定雷區大小和雷數,但是雷區大小不能超過24*30),玩家需要盡快找出雷區中的所有不是地雷的方塊,而不許踩到地雷。 游戲的基本操作包括左鍵單擊(Left Click)、右鍵單擊(Right Click)、雙擊(Chording)三種。其中左鍵用于打開安全的格子,推進游戲進度;右鍵用于標記地雷,以輔助判斷,或為接下來的雙擊做準備;雙擊在一個數字周圍的地雷標記完時,相當于對數字周圍未打開的方塊均進行一次左鍵單擊操作: 左鍵單擊:在判斷出不是雷的方塊上按下左鍵,可以打開該方塊。如果方塊上出現數字,則該數字表示其周圍3×3區域中的地雷數(一般為8個格子,對于邊塊為5個格子,對于角塊為3個格子。所以掃雷中最大的數字為8);如果方塊上為空(相當于0),則可以遞歸地打開與空相鄰的方塊;如果不幸觸雷,則游戲結束。 雙擊:同時按下左鍵和右鍵完成雙擊。當雙擊位置周圍已標記雷數等于該位置數字時操作有效,相當于對該數字周圍未打開的方塊均進行一次左鍵單擊操作。地雷未標記完全時使用雙擊無效。若數字周圍有標錯的地雷,則游戲結束,標錯的地雷上會顯示一個“ ×”(見下圖) 掃雷的設計原理: 掃雷游戲分為幾個步驟: 第一步,使用二維數組表示地圖; 第二步,隨機生成幾個地雷; 第三步,點擊方格的反應,計算每個非雷區方格點開后的數字; 第四步,當方格數字為0的情況; 第五步,當方格為地雷的情況。 第一步地圖的大小和第二步地雷的數量都應該是程序中給定的,或者玩家輸入的。這個是多少自己決定吧。第三步,計算非雷區方格點開后的數字就把這個方格在二維數組中周圍八個方向的方格是否是地雷都檢查一遍,一定要注意不要越出數組邊界。這個數字可以在游戲初始化時全都計算好,也可以在玩家點擊的時候再計算。點 擊非雷區方格,顯示數字,這個方格標記為“已點過”。第四步,當方格數字為0時,這里要用到遞歸調用,就是讓程序自動“點擊”這個數字為0方格周圍的八個方格,然后再看結果,如果不是0,就停止,如果是0,依然遞歸調用,直到沒有0為止,或者直到點遍所有方格為止,一定要注意不要越出數組邊界。第五步,很簡單,宣布玩家死亡就可以了。 4.準備工作 查閱相關資料,了解掃雷的的玩法,了解掃雷的設計思想方法。借鑒他人寫過的程序,從中找到突破口。從程序中了解需要的各種函數準備,再進一步獲悉該函數的功能與使用方法。 對自己要設計的挖地雷游戲進行功能分析,大致如下: 總體游戲過程分析:在屏幕上顯示一個游戲界面,雷區范圍內預先埋設了一定數量的隨機分布的地雷(用數字9代替地雷);玩家通過從鍵盤中輸入(行數X,列數Y)↙進行點擊;若能點中所有非雷區,則游戲勝利;否則踩雷,游戲失敗。簡易版掃雷游戲要具備以下功能: 1)開局:首先選擇游戲等級,然后生成不同等級的雷區界面。游戲等級分 為三級:各等級行列數為———:簡單:10× 10、普通:15× 15、困難:20×20;雷區每個*號下面或埋藏有1個地雷,或者沒有地雷; 2)挖雷:從鍵盤中輸入(行數X,列數Y),并按回車鍵,可挖開它;若所揭方塊下有9,則踩雷,此時所有含地雷的塊都出現9,該局游戲失敗;如果方塊上出現數字,它代表 在它周圍的8個方塊中共有多少顆地雷; 3)輸入:通過鍵盤輸入相關指示信息; 4)輸出:提示游戲失敗,是否繼續再來一遍; 5.設計步驟、方法 5.1主函數第一步,寫出主程序的基本框架,確定各子模塊名字和參數。具體的函數流程如圖5-3 所示: 定義使用到的常數、全局變量、函數原型說明。然后初始化圖形系統,調用游戲控制函數,游戲只接受鍵盤,通過鼠標結束游戲,關閉系統,退出游戲。 主控模塊的各子模塊說明: void InitialValue_game()用于棋盤初始化; InitialMine_game()用于棋盤的隨機布雷; void print_game()用于打印棋盤; int judge_game()用于判斷游戲是否結束; int openmap()用于點開地圖; 5.2定義全局變量 #include 5.3挖雷部分函數的分析 void InitialValue_game(struct Games *g){ int i,j;for(i=0;i InitialMine_game(struct Games *g){ 5 int i,j,next1,next2;int sum=0;srand((unsigned)time(NULL));while(1){ i=rand()%x;j=rand()%y;if((*g).game_int[i][j]==9)continue;(*g).game_int[i][j]=9;++sum;for(next1=-1;next1<2;next1++){ for(next2=-1;next2<2;next2++){ if(-1 void print_game(struct Games *g,int Logo){ int i,j;int a[s];for(i=0;i int judge_game(struct Games *g){ int sum=0;int i,j;for(i=0;i 運行第一步: 按ENTER鍵進入: 11 選擇游戲難度(簡單、普通、困難、任意),按ENTER鍵進入: 簡單難度: 普通難度: 困難難度: 任意難度: 游戲界面,開始從鍵盤輸入數字,格式為(行數X,列數Y),點擊Enter鍵: 游戲結束頁面: 7.設計結論 一學期結束了,對C語言也有了一些認識,不過自我感覺學得不太好,好在還是學到了知識: 了解了C的發展以及編程的基本步驟,學會了Printf輸出語句,C語言的運算,知道了有哪幾種數據類型,還有我覺得經常用的if語句,if--eles語句,for循環,while 語句,do-while語句等等,基本會用數組和指針,還有字符串的處理,對了還有才學的結構體。 還有許多知識點,不一羅列了,總之C語言要學的東西太多了,聽大三的都說C很簡單,但我并不認為他像人們說的那樣簡單,C是最基礎的,基礎不代表簡單,也可能是我沒學好才有這樣的感受。 在這次設計過程中,不僅復習課本上所學知識,還通過查資料、問同學學到了課本上沒有的知識。從而啟發我,要想寫好程序,在寫好課本知識的同時還需要多讀和專業有關的一些書籍,同時還需要多動腦子,盡量把所學的知識綜合起來應用,力爭寫出完美的程序。除此之外,我還得到了一些有用的教訓:寫程序時必須要細心,不能輸錯一個字符標點,就連全角半角也得注意。在修改時要有耐心,編譯出錯后必須逐個錯誤去改正,絕不能心急浮躁,否則修改之后還會有新的錯誤。 8.參考文獻 郭翠英主編的《C語言課程設計實例精編》; 張芳妮 呂波 譯《C語言編程常見問題解答》; 譚浩強《C程序設計題解與上機指導(第二版)》。伍俊良.VB課程設計與系統開發案例[M].北京 附錄: #include main(){ int i,j;/*定義i,j變量*/ int NO;int begin=1;int h;/*確定雷的個數*/ while(begin){ printf(“nnnnnnn” “ttt=================================n” “ttt 歡迎進入掃雷 nnn” “ttt 按回車鍵繼續 n” “ttt=================================n” “ttt n”);getchar();/*游戲開始界面*/ system(“cls”);printf(“ nnnnnnnnn”);printf(“ 請選擇游戲難度:nn”);printf(“ 1簡單難度nn”);printf(“ 2普通難度nn”);printf(“ 3困難難度nn”);printf(“ 4自定義難度nn”);scanf(“%d”,&h);getchar();/*確定游戲難度*/ if(0 void InitialValue_game(struct Games *g){ int i,j;for(i=0;i InitialMine_game(struct Games *g){ int i,j,next1,next2;int sum=0;srand((unsigned)time(NULL));while(1){ i=rand()%x;j=rand()%y;if((*g).game_int[i][j]==9)continue;(*g).game_int[i][j]=9;++sum;for(next1=-1;next1<2;next1++){ for(next2=-1;next2<2;next2++){ if(-1 void print_game(struct Games *g,int Logo){ int i,j;int a[s];for(i=0;i int judge_game(struct Games *g){ int sum=0;int i,j;for(i=0;i 指導教師學院專業班級學號姓名實驗室 實驗題目: 實驗要求: 實驗內容及步驟: 運行結果 心得體會: 《Java語言程序設計》實驗報告一 學生姓名: 孫文琳 班級: 信息111 學號:201152275119 實驗地點: 經管中心證券實驗室 指導教師:趙利平實驗日期: 2012.3.6 實驗環境:Windows 2000+JDK1.6 1.實驗目的(1)養成良好的編程風格;(2)掌握字符數據類型及其運算; (3)熟悉從輸入對話框獲取輸入和從控制臺獲取輸入兩種方法;(4)掌握布爾運算符;(5)掌握分支語句if和switch。 2.實驗內容(1)在控制臺下求兩個實數的最大值:完成實驗教材P22程序清單2-2;(2) 3.實驗過程 報告撰寫具體要求:上述實驗內容要求寫出源代碼及運行結果。實驗內容(1)://CompareTwoNumbersl.java import java.util.Scanner; public class CompareTwoNumbers1{ double number1,number2; Scanner scanner; public CompareTwoNumbers1(){ System.out.println(“請輸入兩個數字:”); scanner=new Scanner(System.in); number1=scanner.nextDouble(); number2=scanner.nextDouble(); System.out.println(“較大的數是:”+(number1>number2?number1:number2)); } public static void main(String args[]){ CompareTwoNumbers1 ct=new CompareTwoNumbers1();System.exit(0);} } 實驗內容(2): //DollarConvertor.java import java.util.Scanner;public class DollarConvertor{ public static void main(String args[]){ System.out.println(“請輸入美元數:”);Scanner scanner=new Scanner(System.in);double i=scanner.nextDouble();double result=i*6.2875;System.out.println(“對應的人民幣數:”+result);} } 實驗內容(3): public class MultiplyList1{ public static void main(String args[]){ String output=“";for(int row=1;row<=9;row++){ for(int col=1;col<=row;col++)output+=col+”*“+row+”=“+(row*col)+” “;output+=”n";} System.out.println(output);System.exit(0);}} 4.實驗總結 心得體會:做實驗要小心翼翼,注意Java大小區分第二篇:C語言程序設計掃雷游戲實驗報告
第三篇:C語言程序設計掃雷游戲
第四篇:《C語言程序設計》實驗報告
第五篇:Java語言程序設計實驗報告1