【正文】
,這有助于我國(guó)優(yōu)秀文化的推廣。五子棋本身就是一款益智休閑游戲,規(guī)則簡(jiǎn)單。特此聲明畢業(yè)設(shè)計(jì)(論文)作者: 指導(dǎo)教師: 年 月 日 年 月 日摘 要人工智能是近年來(lái)很活躍的研究領(lǐng)域之一,它與生物工程、空間技術(shù)一起被并列為二十一世界三大尖端技術(shù)。因本畢業(yè)設(shè)計(jì)(論文)引起的法律結(jié)果完全由本人承擔(dān)。北華航天工業(yè)學(xué)院畢業(yè)論文畢業(yè)設(shè)計(jì)報(bào)告(論文)報(bào)告(論文)題目:基于Qt的嵌入式終端應(yīng)用程序開(kāi)發(fā)——五子棋游戲開(kāi)發(fā) 作者所在系部: 計(jì)算機(jī)科學(xué)與工程系 作者所在專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 作者所在班級(jí): 作 者 姓 名 : 作 者 學(xué) 號(hào) : 指導(dǎo)教師姓名: 完 成 時(shí) 間 : 2012年6月 北華航天工業(yè)學(xué)院教務(wù)處制北華航天工業(yè)學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性及知識(shí)產(chǎn)權(quán)聲明本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)(論文)基于Qt的嵌入式終端應(yīng)用程序開(kāi)發(fā)——五子棋游戲開(kāi)發(fā)是本人在指導(dǎo)教師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作取得的成果。本畢業(yè)設(shè)計(jì)(論文)成果歸北華航天工業(yè)學(xué)院所有。它的中心任務(wù)是研究如何使計(jì)算機(jī)去做那些過(guò)去只能靠人的智力才能做的工作。五子棋不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。本系統(tǒng)就以五子棋游戲作為研究課題,對(duì)五子棋的算法與規(guī)則做了研究,闡述了如何在 Linux下用 Qt來(lái)開(kāi)發(fā)五子棋游戲并給出了具體的實(shí)現(xiàn)。本文介紹了在Linux操作系統(tǒng)中構(gòu)建Qtopia環(huán)境的過(guò)程。s hightech development projects invested tremendous human and material resources. The chess game on puter is an important branch of the research on artificial intelligence. The researches on chess game bring plenty of important methods and theories for researching on artificial intelligence, and cause broad influences on society and academe. Renju chess game means five pieces on one line, is a sort of game, which is full of wisdom, leisure and benefits, and the rules of it are very simple. Manmachine chess game Renju in one of the puter. To study the puter algorithm, we can see the beginning of artificial intelligence shadow, but also help us to human brain development. Backgammon invented in China , and the research it can allow more foreigners to understand and help to promote China39。 start。ARM是Advanced RISC Machines的首字母組合,是一類微型處理器的統(tǒng)稱。本系統(tǒng)就以五子棋游戲作為研究課題,對(duì)五子棋的算法與規(guī)則做了研究,闡述了如何在 Linux下用 Qt來(lái)開(kāi)發(fā)五子棋游戲并給出了具體的實(shí)現(xiàn)。這種處理能力的提高是通過(guò)增加時(shí)鐘頻率和減少指令執(zhí)行周期實(shí)現(xiàn)的。許多國(guó)家的人對(duì)五子棋都有不同的愛(ài)稱,例如韓國(guó)人把五子棋稱為“情侶棋”,言下之意是說(shuō)情人之間下五子棋有利于增加情感的交流;歐洲人稱之為“紳士棋”,喻棋手下五子棋的君子風(fēng)度勝似紳士:美洲人稱之為“商業(yè)棋”,意思可能是邊下五子棋邊談生意,是商業(yè)貿(mào)易之橋;日本人則稱之為“中老年棋”,表示五子棋適合成熟的中老年的生理特點(diǎn)和思維方式。在北京的帶動(dòng)下,其他地區(qū)也先后成立了五子棋組織,從此積極的投身于這項(xiàng)益智的游戲中,2004年成立中國(guó)圍棋協(xié)會(huì)五子棋分會(huì),它屬于中國(guó)五子棋界的領(lǐng)導(dǎo)機(jī)構(gòu),并且先后在部分地區(qū)組織俱樂(lè)部,組織比賽,讓越來(lái)越多的人參與和喜愛(ài)這項(xiàng)活動(dòng),但是中國(guó)還是沒(méi)有專業(yè)的棋手,在這方面的相關(guān)規(guī)則和體系還不完善,能夠真正弄懂的人還是很少,所以中國(guó)在五子棋這方面的發(fā)展空間還是很大的,這就需要我們不斷的努力探索和研究才能把五子棋發(fā)展的更加壯大。但與世界先進(jìn)的五子棋技術(shù)相比,我們的棋藝水平還有待進(jìn)一步提高,所以我們要推廣五子棋,宣傳五子棋。l QPE(Qtopia Executable):用于處理所有的用戶界面問(wèn)題。l moc:用于Qt C++ 擴(kuò)展的meta2object編譯器。在程序設(shè)計(jì)的過(guò)程中,要將傳統(tǒng)桌面應(yīng)用程序使用的類換成Qtopia的類。五子棋子游戲,玩法簡(jiǎn)單,娛樂(lè)性也很高。作為一門(mén)邊緣學(xué)科,它有諸多的研究領(lǐng)域,博弈即為其中之一。此種娛樂(lè)方式既不耽誤時(shí)間也能輕松調(diào)劑娛樂(lè),充分適合現(xiàn)代人們的娛樂(lè)需求。五子棋還有一大特點(diǎn)就是速戰(zhàn)速?zèng)Q,電腦應(yīng)在很短時(shí)間內(nèi)就應(yīng)做出判斷,所以要合理的設(shè)計(jì)判斷勝負(fù)的函數(shù)。系統(tǒng)中還設(shè)計(jì)了狀態(tài)顯示,和積分等功能,在黑方或者白方任意一方獲得勝利,都能及時(shí)的顯示勝負(fù)的一方。需要實(shí)現(xiàn)的的游戲重要功能:(1)主窗口:負(fù)責(zé)管理所有的部件,創(chuàng)建所有信號(hào)和槽的連接(2)棋盤(pán)類:繪制棋盤(pán),把棋盤(pán)看成一個(gè)二維數(shù)組,處理鼠標(biāo)點(diǎn)擊事件,在點(diǎn)擊處一定范圍內(nèi)繪制棋子,然后最主要的就是算法,就是怎么走才算贏,這個(gè)要花時(shí)間研究(3)積分和勝負(fù)顯示,使游戲的人體會(huì)到勝利的快樂(lè)。增加圖形界面類(paintEvent()),把顯示功能從棋盤(pán)類中脫離出來(lái),棋盤(pán)只負(fù)責(zé)棋子坐標(biāo)數(shù)據(jù)的存儲(chǔ)和更新。設(shè)計(jì)的開(kāi)始、重來(lái)、退出、悔棋按鈕都用QPushButton類來(lái)實(shí)現(xiàn),并實(shí)現(xiàn)信號(hào)和槽函數(shù)的鏈接。用到了鼠標(biāo)點(diǎn)擊事件的處理,繪制棋子,和棋盤(pán)的函數(shù)drawpixmap()的使用。 Qt技術(shù)介紹Qt是一個(gè)多平臺(tái)的C++圖形用戶界面應(yīng)用程序框架,它是基于面向?qū)ο蟮乃枷脒M(jìn)行相應(yīng)開(kāi)發(fā)的,支持真正意義上的組件編程,可以為不同用戶提供華麗的用戶界面。信號(hào)和插槽機(jī)制是 Qt 的核心機(jī)制,也是 Qt 的核心特性。在QObject類或者其一個(gè)子類(比如:QWidget類)繼承的所有類中,都存在了信號(hào)和槽。Qt 安裝配置1. 下載安裝包從網(wǎng)址Qt libraries for Windows (minGW , 354 MB) 和Qt Creator for Windows (53 MB)2. 安裝先安裝Qt Creator,安裝過(guò)程中會(huì)自動(dòng)安裝minGw,并記住路徑以便安裝Qt Library時(shí)使用。目前已成功移植Linux,WINCE等操作系統(tǒng)到OK6410開(kāi)發(fā)板。接口豐富,功能強(qiáng)大,適用于各種手持設(shè)備,消費(fèi)電子和工業(yè)控制設(shè)備的開(kāi)發(fā)。具有獨(dú)立的16KB 指令Cache 和16KB 數(shù)據(jù)Cache。— 指令高速存儲(chǔ)緩沖器(I–Cache),數(shù)據(jù)高速存儲(chǔ)緩沖器(D–Cache),寫(xiě)緩沖器和物理地址TAG RAM 減少主存帶寬和響應(yīng)性帶來(lái)的影響?!?支持快速總線模式和同步總線模式— 尋址空間:每bank 128M 字節(jié)(總共1G 字節(jié))?!?8 個(gè)存儲(chǔ)器bank,其中6 個(gè)適用于ROM、SRAM 和其它,另外兩個(gè)適用于ROM/SRAM和同步DRAM?!?支持各種型號(hào)的ROM 引導(dǎo)(NOR/NAND FLASH、EEPROM,或其它)?!?每行8 字長(zhǎng)度,其中每行帶有一個(gè)有效位和兩個(gè)dirty 位。— 可編程的占空比周期,頻率和極性?!?支持5 位、6 位、7 位或者8 位串行數(shù)據(jù)發(fā)送/接收?!?具有測(cè)試用的回還模式?!?兼容USB 標(biāo)準(zhǔn)。SD 主機(jī)接口— 基于普通、DMA 或中斷傳輸模式(字節(jié)、半字、字)?!?64 字節(jié)發(fā)送和接收FIFO。DISK DRUID 程序中有明顯的新建、刪除、編輯、重設(shè)等按鈕。文件系統(tǒng)類型:它指定了該分區(qū)的文件系統(tǒng)類型,可選項(xiàng)有 EXTEXTREISERFS、JFS、SWAP 等。它包括以下特性:自動(dòng)重?fù)芴?hào)的撥號(hào)目錄 ,對(duì)串行設(shè)備 UUCP 格式的 lock 文件的支持,獨(dú)立的腳本語(yǔ)言解釋器,文件捕獲,多用戶單獨(dú)配置,等等。–M 跟“–m”一樣,但是假定 Meta 鍵設(shè)置字符高端的第八位(發(fā)送 128+字符代碼)。許多 PC–Unix 克隆不經(jīng)翻譯也能正確顯示它們(Linux 使用專門(mén)的模式:Coherent 和 Sco)。–t 終端類型,使用此標(biāo)志,可以重載環(huán)境變量 TERM,這在環(huán)境變量 MINICOM 中使用很方便;可以創(chuàng)建一個(gè)專門(mén)的 termcap 入口以備 mini 在控制臺(tái)上使用,它將屏幕初始化為 raw模式,這樣,連同‘–f’標(biāo)志一起,就可以不經(jīng)翻譯而顯示 IBM 行字符。使用‘–c on’可以打開(kāi)此項(xiàng)。此模式用于顯示 8 位多字節(jié)字符,不是 8 位自否的語(yǔ)言都需要(例如顯示芬蘭文字就不需要這個(gè))。export MINICOM或者其它等效的設(shè)置,然后啟動(dòng) mini,mini 會(huì)假定終端有 Meat 鍵或 Alt 鍵,并且支持彩色。編譯命令:make config(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)make menuconfig(基于文本選單的配置界面,字符終端下推薦使用)make xconfig(基于圖形窗口模式的配置界面,Xwindow 下推薦使用)make oldconfig(如果只想在原來(lái)內(nèi)核配置的基礎(chǔ)上修改一些小地方,會(huì)省去不少麻煩)這三個(gè)命令中,make xconfig 的界面最為友好,但 如果你不能使用 Xwindow,那么就使用 make menuconfig 好了。簡(jiǎn)單地說(shuō),就是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼。可行性研究是為了弄清楚系統(tǒng)開(kāi)發(fā)的項(xiàng)目如何用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決,是否值得進(jìn)行研究的過(guò)程,實(shí)際上進(jìn)行可行性分析大大簡(jiǎn)化了系統(tǒng)設(shè)計(jì)的過(guò)程。LINUX是一款免費(fèi)的操作系統(tǒng),用戶可以通過(guò)網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并可以任意修改其源代碼。OK6410開(kāi)發(fā)板的價(jià)格也是可以接受的,且有用戶指導(dǎo)手冊(cè),便宜開(kāi)發(fā),易于使用。同時(shí)還設(shè)計(jì)了顯示勝負(fù),和積分的功能。1.實(shí)用性原則:確保網(wǎng)站具有良好的系統(tǒng)性能,友好的用戶界面,較高的處理效率。4.規(guī)范性原則:軟件設(shè)計(jì)過(guò)程盡量按照規(guī)范進(jìn)行,系統(tǒng)編碼,操作系統(tǒng)平臺(tái)以及所采用的開(kāi)發(fā)方法也按照相應(yīng)的標(biāo)準(zhǔn)。需要實(shí)現(xiàn)的的游戲重要功能:(1)主窗口:負(fù)責(zé)管理所有的部件,創(chuàng)建所有信號(hào)和槽的連接(2)棋盤(pán)類:繪制棋盤(pán),把棋盤(pán)看成一個(gè)二維數(shù)組,處理鼠標(biāo)點(diǎn)擊事件,在點(diǎn)擊處一定范圍內(nèi)繪制棋子,然后最主要的就是算法,就是怎么走才算贏,這個(gè)要花時(shí)間研究(3)積分和勝負(fù)顯示,使游戲的人體會(huì)到勝利的快樂(lè)。 QPainter greenPainter(this)。 QRect rect1(705,220,125,131)。 QRect rect3(690,0,331,232)。 QRect temptRect。 i++) { if([i].()0) break。 temptRect=QRect(p,mChessSize)。} 鼠標(biāo)處理事件的實(shí)現(xiàn)void MainWindow::mousePressEvent(QMouseEvent *e){ if(!=39。playing return。 if(!( (), () , 0) )//調(diào)用canput()和addrecord()添加記錄 { // printf(in mouse press Event cannot put chess\n)。判斷輸贏} QPoint MainWindow::changeMouseToGrid(const QPoint p){ int x=()mLeftMargin。 int sizex=()。 }//else if((()sizey)%sizey = sizey/2){ (y/sizey)。 if(()0||()0) return QPoint(1,1)。//sizex int y=()*sizey。 //? (y)。 int rx,ry。//0x15,0y15 switch(direction) { case 0://horizontal 39。 break。 dy=1。 { dx=1。/39。 } } // //每條