資源描述:
《中國石油大學(xué)(華東)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、中國石油大學(xué)(華東)嵌入式程序設(shè)計設(shè)計報告成員:陳君蔡培中國石油大學(xué)(華東)計算機與通信工程學(xué)院計算機科學(xué)系二008年10月設(shè)計名稱五子棋的設(shè)計與實現(xiàn)完成時間2008年10月30日驗收時間2008年10月31日本組成員情況姓名學(xué)號承擔(dān)的任務(wù)成績蔡培05080163實現(xiàn)字符庫,bmp圖片的顯示,整理文檔陳君05080167實現(xiàn)算法,鍵盤使用,編輯主函數(shù),網(wǎng)絡(luò)對戰(zhàn),播放器移植以及程序測試注:本設(shè)計報告中各個部分如果頁數(shù)不夠,請大家自行擴頁,原則是一定要把報告寫詳細,能說明本組設(shè)計的成果和特色,能夠反應(yīng)小組中每個人的工作。報告中應(yīng)該敘述設(shè)計中的每個模塊。設(shè)計報告將是評
2、定每個人成績的一個重要組成部分。本組設(shè)計的功能描述(含所有實現(xiàn)的模塊的功能)該綜合實驗題目為“五子棋的設(shè)計與實現(xiàn)”。經(jīng)過我們小組激烈討論,決定將其劃分為以下幾個模塊:算法部分、歡迎界面部分、棋盤與棋子部分、鍵盤響應(yīng)部分、幫助文檔部分、網(wǎng)絡(luò)對戰(zhàn)部分和背景音樂部分。在版本1中,算法部分、歡迎界面部分、棋盤與棋子部分、鍵盤響應(yīng)部分、幫助文檔部分已經(jīng)實現(xiàn)。在版本2中,加入了網(wǎng)絡(luò)對戰(zhàn)部分。不過因為時間的原因,該部分還存在一定的bug沒有被更正。由于移植mplayer的資料過少、而且過程不盡詳細,所以我們一直沒能移植成功,所以沒有將其加入到程序中。下面對已經(jīng)實現(xiàn)的功能作一個
3、檢點的描述。算法部分:人機對戰(zhàn)時電腦的智能算法。每當(dāng)人走完一步棋后,電腦都需要掃描棋盤,并根據(jù)計算后的結(jié)果確定落棋位置。歡迎界面部分:該部分讀取bmp圖片,并利用framebuffer顯示。棋盤與棋子部分:棋盤每個方格大小50*50像素,棋子半徑大小30像素。棋盤顏色23333(黃色),棋子顏色0(黑色)或65535(白色)。鍵盤響應(yīng)部分:利用已有的驅(qū)動程序,參考幫助文檔,實現(xiàn)鍵盤響應(yīng)。幫助文檔部分:制作26個英文字母的大小寫和十個阿拉伯?dāng)?shù)字的字符庫,利用framebuffer使用讀取后的字符信息。網(wǎng)絡(luò)對戰(zhàn)部分:開發(fā)板為服務(wù)器,pc為客戶端。當(dāng)pc發(fā)送連接請求并
4、被允許后,網(wǎng)絡(luò)對戰(zhàn)模式啟動成功,否則失敗。本組設(shè)計的主要特色該實驗設(shè)計的主要特色如下:1、電腦落子部分采用了人工智能算法,可以在對棋局進行分析后,計算出攻守值,比較其大小,找到合理的落子位置。2、屏幕顯示部分全部使用framebuffer緩存機制實現(xiàn),可以對底層自由控制。3、使用自制字庫機制,字庫包括26個英文字母的大小寫形式和十個阿拉伯?dāng)?shù)字。4、在鍵盤控制部分,成功消除了鍵盤抖動現(xiàn)象。5、網(wǎng)絡(luò)對戰(zhàn)部分更增加了該游戲的趣味性。本組設(shè)計的體系結(jié)構(gòu)經(jīng)過小組討論后,我們決定采用一個.c文件包含多個.h文件的形式來實現(xiàn)。各個.h文件分別具備以下功能:電腦的人工智能算法、
5、讀取bmp圖片信息、framebuffer的使用、鍵盤的使用和字符庫的使用。.c文件功能如下:程序主函數(shù)、初始化以及合理調(diào)用各個模塊。主函數(shù)讀取bmp圖片信息人工智能算法字符庫使用鍵盤使用Framebuffer的使用本組設(shè)計中各個部件的設(shè)計與特色該實驗中共包括以下部件:棋盤、棋子、窗口和按鈕4類。1、棋盤:棋盤每個方格大小為:50*50像素,共有15*15個方格。線條顏色為:黑色(顏色值為0),方格顏色為:黃色(顏色值為23333)。2、棋子:棋子半徑大小30像素,顏色有黑色(顏色值為0)和白色(顏色值為65535)。3、窗口:在進入游戲時首先顯示歡迎界面。其次
6、在點擊幫助按鈕時,顯示幫助信息。最后,可以通過控制鍵盤進行游戲。(沒有保存相關(guān)圖片)4、按鈕:利用一個矩形來代替,在中間寫明按鈕的功能。本組設(shè)計的軟件程序模塊說明與使用手冊1、算法部分說明:本算法為人機對戰(zhàn)電腦智能算法。每當(dāng)人走完一步棋后,電腦都需要掃描整個棋盤,根據(jù)周圍落子情況計算空點的攻守值,最后比較攻守之大小,確定落棋位置。使用手冊:MyComper.h文件,外部接口函數(shù)如下:voidComputerThink(int(*condition)[MAX_ROW_LINE])參數(shù):(*condition)[MAX_ROW_LINE]為15*15的五子棋棋盤形勢
7、,函數(shù)調(diào)用后得到電腦落子后的棋局形勢。intIsGameOver(int(*condition)[MAX_ROW_LINE])函數(shù)說明:判斷是否有獲得勝利的一方。返回值:return0沒有勝利的一方;return1白方獲勝;return2黑方獲勝。2、歡迎界面部分說明:該部分讀取24位bmp圖片,并利用framebuffer將其顯示。使用手冊:readfile.h文件,外部接口函數(shù)如下:intfileopen(char*filename)函數(shù)說明:打開一個文件。參數(shù):char*filename為待打開文件的文件名。intfileclose()函數(shù)說明:關(guān)閉一個文
8、件。intGetWidt