亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一個(gè)C語言猜字游戲的設(shè)計(jì)

        2014-04-29 00:00:00朱云霞
        無線互聯(lián)科技 2014年4期

        摘 要:作為高校很多專業(yè)的入門計(jì)算機(jī)編程語言,C語言有著強(qiáng)大的應(yīng)用能力。本文介紹了猜字游戲的從設(shè)計(jì)到C語言實(shí)現(xiàn)的全過程,綜合運(yùn)用了C語言的各方面知識(shí),體現(xiàn)了結(jié)構(gòu)化的程序設(shè)計(jì)思想,以提高學(xué)生對(duì)C語言的認(rèn)識(shí)水平。

        關(guān)鍵詞:C語言;猜字游戲;結(jié)構(gòu)化

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

        1 游戲功能說明

        1.1 游戲過程

        ⑴系統(tǒng)產(chǎn)生一個(gè)不重復(fù)的N位隨機(jī)數(shù)(N的大小設(shè)置為等級(jí)相關(guān):如初級(jí)設(shè)置為2,中級(jí)設(shè)置為3,高級(jí)設(shè)置為4);

        ⑵玩家輸入所猜測的不重復(fù)N位數(shù),按回車提交(如果輸入的數(shù)字個(gè)數(shù)應(yīng)與N一致,若不一致,應(yīng)當(dāng)重新輸入);

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

        以上的后兩步驟重復(fù)進(jìn)行,但系統(tǒng)可以限定猜測比對(duì)次數(shù)。在規(guī)定次數(shù)以內(nèi)猜測成功,即為游戲成功,否則,游戲失敗。猜數(shù)次數(shù)也可設(shè)置與等級(jí)相關(guān):如初級(jí)設(shè)置為9次,中級(jí)設(shè)置為8次,高級(jí)設(shè)置為7次。

        1.2 游戲結(jié)果排行

        按游戲完成所猜數(shù)的次數(shù)為主關(guān)鍵字,歷時(shí)時(shí)間為次關(guān)鍵字,對(duì)游戲結(jié)果進(jìn)行排序統(tǒng)計(jì)。在最佳排行中顯示前五的記錄,若玩家的成績高于已有的記錄,則提示輸入玩家信息,并更新最佳排行。

        2 總體設(shè)計(jì)

        根據(jù)上述的游戲功能說明,將猜字游戲的模塊設(shè)計(jì)如圖1所示:

        ⑴“系統(tǒng)功能菜單”模塊:用于玩家進(jìn)行操作選擇,也是本游戲的入口,玩家在此選擇相應(yīng)模塊并調(diào)用對(duì)應(yīng)的功能。

        ⑵“開始游戲”模塊:根據(jù)游戲等級(jí)設(shè)置的猜數(shù)位數(shù)和猜數(shù)次數(shù),記錄游戲的開始時(shí)間和結(jié)束時(shí)間,并顯示游戲結(jié)果。

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

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

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

        ⑹“退出游戲”模塊:退出游戲并顯示相應(yīng)信息。

        3 詳細(xì)設(shè)計(jì)

        3.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

        本游戲中涉及的主要數(shù)據(jù)結(jié)構(gòu)是存放玩家最高分信息的結(jié)構(gòu)體,具體如下:

        typedef struct {

        long int data;

        char name[10];

        char grade[5];

        int hour;

        int minute;

        int second; } Record;

        3.2 程序流程

        游戲從功能菜單的選擇開始執(zhí)行,依據(jù)玩家的選擇進(jìn)行相應(yīng)的處理直到退出游戲?yàn)橹?。程序流程圖如圖2所示。

        3.3 函數(shù)原型及功能說明

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

        功能:此函數(shù)的功能是依據(jù)玩家的選擇項(xiàng)進(jìn)行相應(yīng)處理,直到玩家選擇退出游戲?yàn)橹?,包括開始游戲、等級(jí)設(shè)置、最佳排行、游戲說明、退出游戲等選擇項(xiàng)。

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

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

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

        功能:記錄游戲的開始時(shí)間和結(jié)束時(shí)間,條用ExecuteGame()、GameResult()等函數(shù),對(duì)游戲進(jìn)行整體控制。

        ⑴產(chǎn)生隨機(jī)數(shù)函數(shù):void CreateNumber(int*cl,int digit)

        功能:由系統(tǒng)產(chǎn)生不重復(fù)的digit位隨機(jī)數(shù),其中的參數(shù)1是整型指針,指向所產(chǎn)生的隨機(jī)數(shù),參數(shù)2表示所產(chǎn)生隨機(jī)數(shù)的位數(shù)。

        ⑵運(yùn)行游戲函數(shù):int ExecuteGame(int digit,int gnumber)

        功能:執(zhí)行游戲,調(diào)用CreateNumber()以產(chǎn)生隨機(jī)數(shù),由玩家輸入所猜測的數(shù)據(jù),輸出猜測結(jié)果供玩家參考,其中的參數(shù)1是所猜數(shù)字的位數(shù),參數(shù)2是允許猜測的次數(shù)。

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

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

        另外,還應(yīng)設(shè)計(jì)設(shè)置游戲等級(jí)函數(shù)SetRank()、輸出游戲說明函數(shù)ShowExplain()、設(shè)置歷史五佳函數(shù)SetTop()、顯示歷史五佳函數(shù)ShowTop()等功能函數(shù)。

        4 函數(shù)實(shí)現(xiàn)示例

        下面將運(yùn)行游戲函數(shù):int ExecuteGame(int digit, int gnumber)的實(shí)現(xiàn)簡介如下:

        在本函數(shù)調(diào)用CreateNumber()函數(shù)產(chǎn)生了digit位隨機(jī)數(shù)后,執(zhí)行一個(gè)循環(huán)gnumber次的for語句,在本循環(huán)語句體中,需要輸入玩家所猜測的digit位數(shù)字,完成猜測數(shù)和隨機(jī)數(shù)的比對(duì),輸出猜測結(jié)果A*B*,并在猜數(shù)成功后結(jié)束猜數(shù)過程。

        //A是數(shù)字、位置均正確的個(gè)數(shù)

        A=0;

        //B是數(shù)字正確、位置不正確的個(gè)數(shù)

        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您本次猜測的結(jié)果是:\");

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

        if(A == digit)

        break;//猜數(shù)成功結(jié)束猜數(shù)過程

        5 總結(jié)

        在本游戲的設(shè)計(jì)完成過程中,嚴(yán)格遵守結(jié)構(gòu)化的程序設(shè)計(jì)思想,廣泛應(yīng)用C語言的數(shù)組、指針、函數(shù)、結(jié)構(gòu)體、文件等知識(shí)。通過一個(gè)實(shí)例將C語言知識(shí)進(jìn)行綜合運(yùn)用,對(duì)學(xué)習(xí)C語言并提高其應(yīng)用能力是非常有益處的。

        亚洲av本道一本二本三区 | 欧美丰满老熟妇aaaa片| 九九久久精品无码专区| 99国产超薄丝袜足j在线播放| 日韩精品一二区在线视频| 亚洲国产一区二区三区精品| 熟女少妇内射日韩亚洲| 国产日韩成人内射视频| 国内精品九九久久精品小草| 中文字幕一区二区综合| 先锋中文字幕在线资源| 丰满少妇被猛烈进入无码| 国产亚洲av人片在线播放| 日本一区二区在线免费看| 精品国内在视频线2019| 亚洲天堂在线播放| 国产成人色污在线观看| 日本熟妇另类一区二区三区| 无码精品久久久久久人妻中字| 国产精品久久无码不卡黑寡妇| 琪琪av一区二区三区| 亚洲成av人片一区二区密柚| 欧美野外疯狂做受xxxx高潮| 精品国产91久久综合| 国产女人精品一区二区三区| 69精品人人人人| 亚洲 欧美 唯美 国产 伦 综合| 人成视频在线观看免费播放| 久久久精品人妻一区二区三区妖精| 久久久久人妻一区精品色欧美| 国产成人无码精品久久99| 丰满人妻一区二区三区52 | 亚洲熟女乱综合一区二区| 99热最新在线观看| 国产盗摄一区二区三区av| 内射干少妇亚洲69xxx| 中文字幕无码精品亚洲资源网久久| 青青草免费高清视频在线观看| 亚洲一区二区三区综合免费在线| 在线观看热码亚洲av每日更新| Y111111国产精品久久久|