999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一個C語言猜字游戲的設計

2014-04-29 00:00:00朱云霞
無線互聯科技 2014年4期

摘 要:作為高校很多專業的入門計算機編程語言,C語言有著強大的應用能力。本文介紹了猜字游戲的從設計到C語言實現的全過程,綜合運用了C語言的各方面知識,體現了結構化的程序設計思想,以提高學生對C語言的認識水平。

關鍵詞:C語言;猜字游戲;結構化

C語言是一門面向過程的結構化程序設計語言,也是很多高校理科、工科專業的入門計算機語言。在多數的教學環節中,教學止步于結構體、文件等的基本操作,而缺乏一個總體應用的教學環節,使得很多學生對C語言的認知停留在零碎知識階段。本文通過一個簡單猜字游戲的設計,希望能讓學生更熟練掌握結構化程序設計的思路和方法,整合C語言的各部分知識,提升C語言的應用能力。

1 游戲功能說明

1.1 游戲過程

⑴系統產生一個不重復的N位隨機數(N的大小設置為等級相關:如初級設置為2,中級設置為3,高級設置為4);

⑵玩家輸入所猜測的不重復N位數,按回車提交(如果輸入的數字個數應與N一致,若不一致,應當重新輸入);

⑶系統比對產生的隨機數和提交的猜測數,輸出形如“A*B*”的提示信息(該信息中A后的數字代表數值正確、位置也正確的數目,B后的數字代表數值正確但位置不正確的數目,如“A1B2”,表示玩家已經猜出了3個數字,其中有1個數值正確位置也正確,有2個猜對了數值,但位置不對);

以上的后兩步驟重復進行,但系統可以限定猜測比對次數。在規定次數以內猜測成功,即為游戲成功,否則,游戲失敗。猜數次數也可設置與等級相關:如初級設置為9次,中級設置為8次,高級設置為7次。

1.2 游戲結果排行

按游戲完成所猜數的次數為主關鍵字,歷時時間為次關鍵字,對游戲結果進行排序統計。在最佳排行中顯示前五的記錄,若玩家的成績高于已有的記錄,則提示輸入玩家信息,并更新最佳排行。

2 總體設計

根據上述的游戲功能說明,將猜字游戲的模塊設計如圖1所示:

⑴“系統功能菜單”模塊:用于玩家進行操作選擇,也是本游戲的入口,玩家在此選擇相應模塊并調用對應的功能。

⑵“開始游戲”模塊:根據游戲等級設置的猜數位數和猜數次數,記錄游戲的開始時間和結束時間,并顯示游戲結果。

⑶“等級設置”模塊:設置游戲的初、中、高級別,等級信息保存于文件。初次游戲的默認等級為初級,而下次打開游戲時默認等級為上次退出時的等級。

⑷“最佳排行”模塊:顯示當前等級的前五佳成績,不同等級的排行存放于不同文件。

⑸“游戲說明”模塊:顯示游戲玩法規則。

⑹“退出游戲”模塊:退出游戲并顯示相應信息。

3 詳細設計

3.1 數據結構設計

本游戲中涉及的主要數據結構是存放玩家最高分信息的結構體,具體如下:

typedef struct {

long int data;

char name[10];

char grade[5];

int hour;

int minute;

int second; } Record;

3.2 程序流程

游戲從功能菜單的選擇開始執行,依據玩家的選擇進行相應的處理直到退出游戲為止。程序流程圖如圖2所示。

3.3 函數原型及功能說明

3.3.1 選擇菜單函數:void Menu()

功能:此函數的功能是依據玩家的選擇項進行相應處理,直到玩家選擇退出游戲為止,包括開始游戲、等級設置、最佳排行、游戲說明、退出游戲等選擇項。

3.3.2 初始化文件函數:void InitFile()

功能:初始化用于保存游戲歷史記錄的文件,其中rank.txt用于存放游戲等級信息,top1.txt用于存放初級的歷史最佳五佳記錄,top2.txt和top3.txt分別用于存放中級和高級的歷史最佳五佳記錄。

3.3.3 開始游戲函數:void StartGame()

功能:記錄游戲的開始時間和結束時間,條用ExecuteGame()、GameResult()等函數,對游戲進行整體控制。

⑴產生隨機數函數:void CreateNumber(int*cl,int digit)

功能:由系統產生不重復的digit位隨機數,其中的參數1是整型指針,指向所產生的隨機數,參數2表示所產生隨機數的位數。

⑵運行游戲函數:int ExecuteGame(int digit,int gnumber)

功能:執行游戲,調用CreateNumber()以產生隨機數,由玩家輸入所猜測的數據,輸出猜測結果供玩家參考,其中的參數1是所猜數字的位數,參數2是允許猜測的次數。

3.3.4 游戲結果處理函數:void GemeResult(int tim,int digit,int number,int rank)

功能:對游戲結果進行處理。游戲不成功,重新開始游戲或返回主菜單;游戲成功時,根據游戲耗時和實際猜數次數,判斷是否能進入本等級的歷史五佳,若能則修改本等級的歷史五佳記錄,提示玩家是否進入下一等級。其中的參數1是游戲耗時,參數2是猜測數字的位數,參數3是實際猜測次數,參數4師當前游戲等級。

另外,還應設計設置游戲等級函數SetRank()、輸出游戲說明函數ShowExplain()、設置歷史五佳函數SetTop()、顯示歷史五佳函數ShowTop()等功能函數。

4 函數實現示例

下面將運行游戲函數:int ExecuteGame(int digit, int gnumber)的實現簡介如下:

在本函數調用CreateNumber()函數產生了digit位隨機數后,執行一個循環gnumber次的for語句,在本循環語句體中,需要輸入玩家所猜測的digit位數字,完成猜測數和隨機數的比對,輸出猜測結果A*B*,并在猜數成功后結束猜數過程。

//A是數字、位置均正確的個數

A=0;

//B是數字正確、位置不正確的個數

B=0;

for(i=0;i

{ if(a[i] == p[i])

A++;

}

for(i = 0; i < digit; i ++)

for(j = 0; j < digit; j++)

if(a[i] == p[j] i != j)

B++;

printf(\"\t您本次猜測的結果是:\");

printf(\"A %d B %d\n\", A, B);

if(A == digit)

break;//猜數成功結束猜數過程

5 總結

在本游戲的設計完成過程中,嚴格遵守結構化的程序設計思想,廣泛應用C語言的數組、指針、函數、結構體、文件等知識。通過一個實例將C語言知識進行綜合運用,對學習C語言并提高其應用能力是非常有益處的。

主站蜘蛛池模板: 9966国产精品视频| 三上悠亚一区二区| 欧美五月婷婷| 精品无码专区亚洲| 亚洲无码久久久久| 亚洲啪啪网| 久久国产成人精品国产成人亚洲 | 香蕉视频在线精品| 国产另类视频| 国产午夜一级毛片| 色亚洲成人| 欧美a在线看| 国产精品亚欧美一区二区三区| 特级精品毛片免费观看| 99视频在线免费观看| 国产在线啪| 久久无码av三级| 欧美色视频日本| 免费无码在线观看| 亚洲乱码视频| 国产黄色爱视频| 日韩毛片在线视频| 美女视频黄又黄又免费高清| 久久中文字幕不卡一二区| 中文字幕人成人乱码亚洲电影| 99尹人香蕉国产免费天天拍| 国产亚洲精品无码专| 狠狠v日韩v欧美v| 欧美综合区自拍亚洲综合天堂 | 69av免费视频| 欧美精品在线看| 午夜色综合| 无码国产伊人| 91精品国产麻豆国产自产在线| 精品无码专区亚洲| 日本AⅤ精品一区二区三区日| 亚洲欧美另类专区| 天堂在线www网亚洲| 成人免费午夜视频| 国产导航在线| 99久久国产精品无码| 人妻熟妇日韩AV在线播放| 国产jizz| 日本一区高清| 国产精品尤物铁牛tv| 国产爽歪歪免费视频在线观看| 免费看一级毛片波多结衣| 国产96在线 | 亚洲黄色激情网站| 大香伊人久久| 久视频免费精品6| 国产在线小视频| 伊人久综合| 欧美亚洲国产精品久久蜜芽| 99久久免费精品特色大片| 五月天久久婷婷| 国产无遮挡猛进猛出免费软件| 亚洲中文字幕在线一区播放| 国产真实自在自线免费精品| 欧美亚洲国产日韩电影在线| 五月天综合婷婷| 国产剧情国内精品原创| 色香蕉影院| 全裸无码专区| 精品久久人人爽人人玩人人妻| a天堂视频| 一级片一区| 国产精品福利一区二区久久| 亚洲精品国产精品乱码不卞| 欧美日韩中文字幕在线| 久久国产香蕉| 成年女人a毛片免费视频| 欧美色亚洲| 午夜电影在线观看国产1区| 日本免费a视频| 国产中文一区a级毛片视频| 一级黄色欧美| 国产精品99一区不卡| 国产视频一二三区| 免费A∨中文乱码专区| 成人综合久久综合| 制服丝袜无码每日更新|