版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 PAGE1 / NUMPAGES54 畢業(yè)設(shè)計(jì)報(bào)告(論文)報(bào)告(論文)題目:基于Qt的嵌入式終端應(yīng)用程序開發(fā)五子棋游戲開發(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)用程序開發(fā)五子棋游戲開發(fā)是本人在指導(dǎo)教師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作取得的成果。除文中已經(jīng)注明引用的容外,本設(shè)計(jì)(論文)不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品或成果。對(duì)本設(shè)
2、計(jì)(論文)的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。因本畢業(yè)設(shè)計(jì)(論文)引起的法律結(jié)果完全由本人承擔(dān)。本畢業(yè)設(shè)計(jì)(論文)成果歸北華航天工業(yè)學(xué)院所有。本人遵循北華航天工業(yè)學(xué)院有關(guān)畢業(yè)設(shè)計(jì)(論文)的相關(guān)規(guī)定,提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本。本人同意北華航天工業(yè)學(xué)院有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);可以采用影印、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以營(yíng)利為目的的前提下,可以公布非涉密畢業(yè)設(shè)計(jì)(論文)的部分或全部容。特此聲明畢業(yè)設(shè)計(jì)(論文) 指導(dǎo)教師: 年 月 日 年 月 日摘 要人工智能是近年來很活躍的研究領(lǐng)域之一,它與生物工程、空間技術(shù)
3、一起被并列為二十一世界三大尖端技術(shù)。它的中心任務(wù)是研究如何使計(jì)算機(jī)去做那些過去只能靠人的智力才能做的工作。目前各發(fā)達(dá)國(guó)家都把人工智能作為重點(diǎn)項(xiàng)目,列入本國(guó)的高科技發(fā)展計(jì)劃當(dāng)中,投入巨大的人力和物力。計(jì)算機(jī)博弈是人工智能研究的一個(gè)重要分支,它的研究為人工智能帶來了很多重要的方法和理論,產(chǎn)生了廣泛的社會(huì)影響和學(xué)術(shù)影響。五子棋本身就是一款益智休閑游戲,規(guī)則簡(jiǎn)單。五子棋不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。五子棋人機(jī)對(duì)弈是計(jì)算機(jī)博弈中的一種。研究其計(jì)算機(jī)算法,可以讓我們看到人工智能的稚形,也有助于我們?nèi)四X的開發(fā)。五子棋是我國(guó)發(fā)明的,研究它可以讓更多的外國(guó)人了解五子棋,這有助于我國(guó)
4、優(yōu)秀文化的推廣。本系統(tǒng)就以五子棋游戲作為研究課題,對(duì)五子棋的算法與規(guī)則做了研究,闡述了如何在 Linux下用 Qt來開發(fā)五子棋游戲并給出了具體的實(shí)現(xiàn)。本系統(tǒng)以五子棋為例實(shí)現(xiàn)的主要功能有棋盤、棋子的輸出等。本系統(tǒng)還有開始、積分、重來、狀態(tài)顯示和悔棋等輔助功能。Qtopia的出現(xiàn)為使用嵌入式Linux作為操作系統(tǒng)的手持設(shè)備提供了開發(fā)圖形應(yīng)用程序的便捷手段。本文介紹了在Linux操作系統(tǒng)中構(gòu)建Qtopia環(huán)境的過程。接著,描述了使用Qtopia程序庫(kù)開發(fā)嵌入式應(yīng)用的過程。最后,本文以O(shè)K6410為目標(biāo)平臺(tái),闡述了構(gòu)建交叉編譯環(huán)境和交叉編譯應(yīng)用程序的步驟。關(guān)鍵詞:五子棋;Qt;人工智能;OK6410A
5、bstractArtificial intelligence is one of the brisk research areas. It is with bio-engineering, space technology has been listed as 21 in the world along with the three cutting-edge technologies. Its central task is to study how to make the computer do that in the past to rely on human intelligence t
6、o do. AI is currently regarded as the focus of the developed countries included in this cars high-tech development projects invested tremendous human and material resources. The chess game on computer is an important branch of the research on artificial intelligence. The researches on chess game bri
7、ng 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. Man-machin
8、e chess game Renju in one of the computer. To study the computer 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 Chinas tr
9、aditional culture.This paper focuses on the study of this chess game, and uses the Linux to explore the Renju chess game. This system mainly uses the function of Qt to realize the export of chessboard and checker, and people can play with computer. Moreover, this system has the assistant functions s
10、uch as “Deuce”、“ Play Again”、“ start” 、“ count score” 、“ Go back” and so on.With the emergence of Qtopia, it is more convenient to develop GUI applications on embedded Linux. This paper firstly introduces the steps of building Qtopia development environment on Linux. Then, we describe how to develop
11、 GUI application by using Qtopia Development Kit. In the end, this paper refers to the process of building cross-compile environment based on the target device OK6410.Keywords:Renju; Qt ; Artificial intelligence; start; OK6410;目錄 TOC o 1-3 h z u HYPERLINK l _Toc320633492摘要 PAGEREF _Toc320633492 h IH
12、YPERLINK l _Toc320633493Abstract PAGEREF _Toc320633493 h IIHYPERLINK l _Toc320633495第1章緒論 PAGEREF _Toc320633495 h 3HYPERLINK l _Toc3206334961.1 課題研究現(xiàn)狀分析 PAGEREF _Toc320633496 h 3HYPERLINK l _Toc3206334971.2 選題的目的與意義 PAGEREF _Toc320633497 h 4HYPERLINK l _Toc3206334981.3 課題研究的主要容 PAGEREF _Toc320633498
13、 h 4HYPERLINK l _Toc3206334991.3.1用Qt-creator進(jìn)行五子棋應(yīng)用程序的設(shè)計(jì) PAGEREF _Toc320633499 h 4HYPERLINK l _Toc3206335001.3.2將應(yīng)用程序移植到OK6410的開發(fā)板上 PAGEREF _Toc320633500 h 5HYPERLINK l _Toc320633501第2章系統(tǒng)需求分析 PAGEREF _Toc320633501 h 6HYPERLINK l _Toc3206335022.1系統(tǒng)需求 PAGEREF _Toc320633502 h 6HYPERLINK l _Toc32063350
14、32.2 功能需求 PAGEREF _Toc320633503 h 6HYPERLINK l _Toc3206335042.3 系統(tǒng)的設(shè)計(jì)目標(biāo) PAGEREF _Toc320633504 h 6HYPERLINK l _Toc320633505第3章系統(tǒng)開發(fā)的技術(shù)背景 PAGEREF _Toc320633505 h 8HYPERLINK l _Toc3206335063.1 Qt技術(shù)介紹 PAGEREF _Toc320633506 h 8HYPERLINK l _Toc3206335073.2 OK6410開發(fā)板簡(jiǎn)介 PAGEREF _Toc320633507 h 9HYPERLINK l _
15、Toc3206335083.3 Linux操作系統(tǒng)簡(jiǎn)介 PAGEREF _Toc320633508 h 11HYPERLINK l _Toc3206335093.4可行性分析 PAGEREF _Toc320633509 h 13HYPERLINK l _Toc3206335103.4.1經(jīng)濟(jì)可行性 PAGEREF _Toc320633510 h 13HYPERLINK l _Toc3206335113.4.2技術(shù)可行性 PAGEREF _Toc320633511 h 14HYPERLINK l _Toc3206335123.4.3操作可行性 PAGEREF _Toc320633512 h 14
16、HYPERLINK l _Toc320633513第4章系統(tǒng)總體設(shè)計(jì) PAGEREF _Toc320633513 h 15HYPERLINK l _Toc3206335144.1 五子棋游戲設(shè)計(jì)原則 PAGEREF _Toc320633514 h 15HYPERLINK l _Toc3206335154.2 五子棋游戲的總體設(shè)計(jì)結(jié)構(gòu) PAGEREF _Toc320633515 h 15HYPERLINK l _Toc320633516第5章系統(tǒng)模塊設(shè)計(jì) PAGEREF _Toc320633516 h 16HYPERLINK l _Toc3206335175.1 用Qt-creator進(jìn)行五子棋
17、應(yīng)用程序的主要功能實(shí)現(xiàn) PAGEREF _Toc320633517 h 16HYPERLINK l _Toc3206335185.1.1 繪制棋盤和棋子的功能 PAGEREF _Toc320633518 h 16HYPERLINK l _Toc3206335195.1.2 鼠標(biāo)處理事件的實(shí)現(xiàn) PAGEREF _Toc320633519 h 17HYPERLINK l _Toc3206335205.1.3將鼠標(biāo)坐標(biāo)轉(zhuǎn)換為方格子的坐標(biāo) PAGEREF _Toc320633520 h 18HYPERLINK l _Toc3206335215.1.4將方格子的坐標(biāo)轉(zhuǎn)換為鼠標(biāo)坐標(biāo) PAGEREF _To
18、c320633521 h 18HYPERLINK l _Toc3206335225.1.5計(jì)算direction 方向的side方棋子個(gè)數(shù) PAGEREF _Toc320633522 h 19HYPERLINK l _Toc3206335235.1.6判斷勝負(fù)的函數(shù) PAGEREF _Toc320633523 h 21HYPERLINK l _Toc3206335245.2將應(yīng)用程序移植到OK6410的開發(fā)板上 PAGEREF _Toc320633524 h 21HYPERLINK l _Toc3206335255.2.1嵌入式Linux開發(fā)交叉編譯器的安裝 PAGEREF _Toc32063
19、3525 h 22HYPERLINK l _Toc3206335265.2.2 Bootloader 的編譯與燒寫 PAGEREF _Toc320633526 h 22HYPERLINK l _Toc3206335275.2.3根文件系統(tǒng)的燒寫與NFS掛載 PAGEREF _Toc320633527 h 22HYPERLINK l _Toc3206335285.2.4編譯第三方庫(kù) PAGEREF _Toc320633528 h 23HYPERLINK l _Toc320633529第6章系統(tǒng)調(diào)試 PAGEREF _Toc320633529 h 27HYPERLINK l _Toc3206335
20、306.1 五子棋游戲測(cè)試概述 PAGEREF _Toc320633530 h 27HYPERLINK l _Toc3206335316.2系統(tǒng)設(shè)計(jì)和應(yīng)用程序移植過程中出現(xiàn)的問題與解決方法 PAGEREF _Toc320633531 h 27HYPERLINK l _Toc320633532結(jié)論 PAGEREF _Toc320633532 h 34HYPERLINK l _Toc320633533致 PAGEREF _Toc320633533 h 35HYPERLINK l _Toc320633534參考文獻(xiàn) PAGEREF _Toc320633534 h 36HYPERLINK l _Toc
21、320633535附錄1 PAGEREF _Toc320633535 h 37HYPERLINK l _Toc320633536五子棋游戲的理論價(jià)值 PAGEREF _Toc320633536 h 37HYPERLINK l _Toc320633537附錄2 PAGEREF _Toc320633537 h 42HYPERLINK l _Toc320633538The Theoretical Value Of Renju PAGEREF _Toc320633538 h 42第1章 緒論隨著嵌入式技術(shù)的發(fā)展,嵌入式的應(yīng)用領(lǐng)域也越來越廣泛。隨著IC設(shè)計(jì)的發(fā)展,出現(xiàn)了工業(yè)化ARM芯片,可以說ARM是未
22、來嵌入式開發(fā)的主宰。ARM是Advanced RISC Machines的首字母組合,是一類微型處理器的統(tǒng)稱。五子棋人機(jī)對(duì)弈是計(jì)算機(jī)博弈中的一種。研究其計(jì)算機(jī)算法,可以讓我們看到人工智能的稚形,也有助于我們?nèi)四X的開發(fā)。五子棋是我國(guó)發(fā)明的,研究它可以讓更多的外國(guó)人了解五子棋,這有助于我國(guó)優(yōu)秀文化的推廣。本系統(tǒng)就以五子棋游戲作為研究課題,對(duì)五子棋的算法與規(guī)則做了研究,闡述了如何在 Linux下用 Qt來開發(fā)五子棋游戲并給出了具體的實(shí)現(xiàn)。本系統(tǒng)以五子棋為例實(shí)現(xiàn)的主要功能有棋盤、棋子的輸出等。本系統(tǒng)還有開始、重來、狀態(tài)顯示、積分、退出和悔棋等輔助功能。新一代的ARM11處理器,通過全新的設(shè)計(jì),采用了更
23、多的晶體管,能夠達(dá)到兩倍以上于ARM7處理器的處理能力。這種處理能力的提高是通過增加時(shí)鐘頻率和減少指令執(zhí)行周期實(shí)現(xiàn)的。本系統(tǒng)的所有用戶界面則采用可跨多平臺(tái)的Qt圖形界面設(shè)計(jì)軟件進(jìn)行開發(fā),Qt圖形界面設(shè)計(jì)軟件具有優(yōu)良的跨平臺(tái)特性、面向?qū)ο?、豐富的API、大量的開發(fā)文檔等優(yōu)點(diǎn)。1.1 課題研究現(xiàn)狀分析目前,連珠五子棋這一棋類運(yùn)動(dòng)已迅速在國(guó)際上發(fā)展起來?,F(xiàn)在,有40多個(gè)國(guó)家和地區(qū)己開展了五子棋活動(dòng)。許多國(guó)家的人對(duì)五子棋都有不同的愛稱,例如國(guó)人把五子棋稱為“情侶棋”,言下之意是說情人之間下五子棋有利于增加情感的交流;歐洲人稱之為“紳士棋”,喻棋手下五子棋的君子風(fēng)度勝似紳士:美洲人稱之為“商業(yè)棋”,意思
24、可能是邊下五子棋邊談生意,是商業(yè)貿(mào)易之橋;日本人則稱之為“中老年棋”,表示五子棋適合成熟的中老年的生理特點(diǎn)和思維方式。不同語言、地區(qū)的人們都可以借助五子棋這一簡(jiǎn)單而又深?yuàn)W的棋藝進(jìn)行交流、比賽,以增進(jìn)友誼。我國(guó)是從20世紀(jì)90年代引進(jìn)五子棋世界流行規(guī)則的,此后的十多年的時(shí)間里,五子棋在民間迅速普與。是五子棋發(fā)展最早也最普與的地區(qū),1992年就成立了我國(guó)第一個(gè)五子棋民間組織京都五子棋社。在的帶動(dòng)下,其他地區(qū)也先后成立了五子棋組織,從此積極的投身于這項(xiàng)益智的游戲中,2004年成立中國(guó)圍棋協(xié)會(huì)五子棋分會(huì),它屬于中國(guó)五子棋界的領(lǐng)導(dǎo)機(jī)構(gòu),并且先后在部分地區(qū)組織俱樂部,組織比賽,讓越來越多的人參與和喜愛這項(xiàng)
25、活動(dòng),但是中國(guó)還是沒有專業(yè)的棋手,在這方面的相關(guān)規(guī)則和體系還不完善,能夠真正弄懂的人還是很少,所以中國(guó)在五子棋這方面的發(fā)展空間還是很大的,這就需要我們不斷的努力探索和研究才能把五子棋發(fā)展的更加壯大。那么現(xiàn)在通過網(wǎng)絡(luò)五子棋游戲的產(chǎn)生也讓更多的人收益,人們不僅可以和電腦下棋,還可以和異地的陌生人下棋,更可以在下棋的時(shí)候和對(duì)方交流心得,這就是我此次設(shè)計(jì)的主題,那么在未來的五子棋的發(fā)展來看,也許比賽的規(guī)則會(huì)有所改變,棋局會(huì)變的更復(fù)雜而且所需的技巧也會(huì)越來越多,這就需要所有人的努力才會(huì)實(shí)現(xiàn)了。1.2 選題的目的與意義五子棋對(duì)人的智力開發(fā)有利,其實(shí)這樣說不全面,非智力因素上的幫助也是明顯的,如毅力、耐心、
26、細(xì)心、心理自我調(diào)節(jié)、思考方式等習(xí)慣的培養(yǎng)也是非常有幫助的。五子棋的根在中國(guó),有著廣泛的群眾基礎(chǔ)。但與世界先進(jìn)的五子棋技術(shù)相比,我們的棋藝水平還有待進(jìn)一步提高,所以我們要推廣五子棋,宣傳五子棋。中國(guó)作為五子棋的發(fā)源國(guó),不僅要回到國(guó)際大家庭中,更重要的是要靠我們的力量為五子棋在下個(gè)世紀(jì)的發(fā)展起到世界性的推動(dòng)作用,并為國(guó)際連珠棋成為奧運(yùn)項(xiàng)目做出一份貢獻(xiàn)!1.3 課題研究的主要容1.3.1用Qt-creator進(jìn)行五子棋應(yīng)用程序的設(shè)計(jì)1. 建立主機(jī)開發(fā)環(huán)境開發(fā)主機(jī)裝有ubuntu Linux 。我們選擇Trolltech公司的自由版軟件QT-embedded-2.3.4和Qtopia作為開發(fā)環(huán)境,下載
27、RPM包并安裝。Qt Embedded和Qtopia函數(shù)庫(kù):包含了完整的開發(fā)嵌入式Linux應(yīng)用程序的核心函數(shù)庫(kù)。QPE(Qtopia Executable):用于處理所有的用戶界面問題。mkipks:為配置PDA而產(chǎn)生ipk文件的包。此外,還有用于QT開發(fā)的典型工具:Designer:Qt的圖形設(shè)計(jì)器。tmake:跨平臺(tái)Makefile生成器。moc:用于Qt C+ 擴(kuò)展的meta2object編譯器。uic:從XML文件生成代碼的用戶界面編譯器。有了這些工具,再加上g+(GNU C+編譯器),就可以進(jìn)行基于Qtopia應(yīng)用程序的開發(fā)、編譯和調(diào)試了。2. 開發(fā)應(yīng)用程序Qtopia應(yīng)用程序的開
28、發(fā)類似傳統(tǒng)的窗口應(yīng)用程序開發(fā),可以遵循面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。在程序設(shè)計(jì)的過程中,要將傳統(tǒng)桌面應(yīng)用程序使用的類換成Qtopia的類。由于嵌入式設(shè)備存儲(chǔ)器的特殊性,在面向文檔的應(yīng)用程序中,需要利用Qtopia類庫(kù)中的對(duì)文檔的特殊支持方法。1.3.2將應(yīng)用程序移植到OK6410的開發(fā)板上主要完成的任務(wù)有NFS配置與使用,嵌入式Linux開發(fā)交叉編譯器的安裝,Bootloader 的編譯與燒寫,Linux 核的編譯與燒寫,根文件系統(tǒng)的燒寫與NFS掛載,編譯第三方庫(kù)。第2章 系統(tǒng)需求分析隨著現(xiàn)實(shí)生活中生活節(jié)奏的加速,生活壓力的加大,休閑娛樂變得越來越重要。五子棋子游戲,玩法簡(jiǎn)單,娛樂性也很高。五子棋不
29、僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。通過對(duì)五子棋的設(shè)計(jì)與開發(fā),了解和掌握游戲開發(fā)的原理與方法。讓電腦像人腦一樣思考,一直是人工智能發(fā)展的最終目標(biāo)。作為一門邊緣學(xué)科,它有諸多的研究領(lǐng)域,博弈即為其中之一。所以五子棋游戲能很好的幫助人們從生活壓力中得到快樂。2.1系統(tǒng)需求五子棋作為一款休閑益智游戲,它最大的優(yōu)點(diǎn)在于游戲規(guī)則家喻戶曉,簡(jiǎn)單,上手快,趣味性強(qiáng),所以受廣大用戶青睞,在各大提供棋牌類游戲的平臺(tái)都可以看到玩五子棋游戲的人很多。休閑益智游戲中等級(jí)并不是最重要的追求目標(biāo),通過對(duì)游戲規(guī)則的熟悉,能很快上手掌握其操作方式,也更適合男女老幼全家共同娛樂,花費(fèi)時(shí)間簡(jiǎn)短,速戰(zhàn)速?zèng)Q,在
30、短時(shí)間感受到游戲的樂趣,完全享受氣氛輕松活躍的游戲過程。此種娛樂方式既不耽誤時(shí)間也能輕松調(diào)劑娛樂,充分適合現(xiàn)代人們的娛樂需求。更主要的是開發(fā)了人的智力,成為年輕一代最流行的游戲,據(jù)統(tǒng)計(jì),五子棋游戲的玩家中,學(xué)生占了接近三分之一的比例,對(duì)學(xué)生的智力健康成長(zhǎng)起一定作用,正所謂休閑娛樂兩不誤。2.2 功能需求本系統(tǒng)要求界面簡(jiǎn)潔,美觀,交互性要比較強(qiáng)。操作方便,得體,把五子棋游戲規(guī)則中最基本的規(guī)則體現(xiàn)出來,比如“悔棋”、“重來”等。五子棋還有一大特點(diǎn)就是速戰(zhàn)速?zèng)Q,電腦應(yīng)在很短時(shí)間就應(yīng)做出判斷,所以要合理的設(shè)計(jì)判斷勝負(fù)的函數(shù)。并能提供一定的幫助,違反游戲規(guī)則的時(shí)候應(yīng)立即指出。在正規(guī)五子棋比賽中,都設(shè)置了
31、“禁手”這一規(guī)則,但廣大玩家之所以喜愛五子棋游戲,就是因?yàn)槲遄悠逵螒蛞?guī)則簡(jiǎn)單,“禁手”這一規(guī)則很復(fù)雜,所以在本系統(tǒng)中,采用“無禁手”的規(guī)則,讓規(guī)則簡(jiǎn)單化。這樣,讓初學(xué)的人對(duì)五子棋有更加高的可控度,能夠真正體會(huì)到下五子棋的快樂。系統(tǒng)中還設(shè)計(jì)了狀態(tài)顯示,和積分等功能,在黑方或者白方任意一方獲得勝利,都能與時(shí)的顯示勝負(fù)的一方。積分功能讓游戲的人能夠體會(huì)的勝利的喜悅。2.3 系統(tǒng)的設(shè)計(jì)目標(biāo)設(shè)計(jì)基于Qt的五子棋程序接收的各種消息可以分為兩類:一類是由硬件裝置產(chǎn)生的消息(如鼠標(biāo)被按下),另一類是由玩家交流發(fā)送的消息。當(dāng)指定事件發(fā)生時(shí),游戲判斷勝負(fù)的算法會(huì)根據(jù)下棋的相應(yīng)的位置來進(jìn)行。需要實(shí)現(xiàn)的的游戲重要功能
32、:(1)主窗口:負(fù)責(zé)管理所有的部件,創(chuàng)建所有信號(hào)和槽的連接(2)棋盤類:繪制棋盤,把棋盤看成一個(gè)二維數(shù)組,處理鼠標(biāo)點(diǎn)擊事件,在點(diǎn)擊處一定圍繪制棋子,然后最主要的就是算法,就是怎么走才算贏,這個(gè)要花時(shí)間研究(3)積分和勝負(fù)顯示,使游戲的人體會(huì)到勝利的快樂。(4)設(shè)計(jì)按鈕,控制開始、重來、悔棋、退出等功能。結(jié)合實(shí)際玩家需要,運(yùn)用Qt技術(shù)設(shè)計(jì)出五子棋游戲。要用鼠標(biāo)來獲取坐標(biāo)(mousePressEvent(),點(diǎn)擊的時(shí)候應(yīng)有一定的圍。增加圖形界面類(paintEvent(),把顯示功能從棋盤類中脫離出來,棋盤只負(fù)責(zé)棋子坐標(biāo)數(shù)據(jù)的存儲(chǔ)和更新。mRecord類對(duì)下棋方的相關(guān)信息進(jìn)行了記錄,mnexttu
33、rn變量對(duì)輪到哪一方下棋進(jìn)行了記錄。為使用界面更加的美觀,打算給界面貼一背景圖(label-setPixmap(),棋盤的網(wǎng)格沒有用QPainter類的drawline()來實(shí)現(xiàn),因?yàn)橹苯赢嫵鰜淼木€條不美觀。棋子本身沒有用采用QPainter類的drawEllipse()畫圓并填充來實(shí)現(xiàn),而是直接drawImage()貼圖來實(shí)現(xiàn)。設(shè)計(jì)的開始、重來、退出、悔棋按鈕都用QPushButton類來實(shí)現(xiàn),并實(shí)現(xiàn)信號(hào)和槽函數(shù)的。游戲玩家可以根據(jù)游戲按鍵來控制游戲的開始,暫停和結(jié)束,在進(jìn)入游戲后,玩家可以通過鼠標(biāo)點(diǎn)擊來下棋,并能夠在游戲階段進(jìn)行積分,讓玩家體會(huì)到游戲的快樂以與戰(zhàn)斗的快樂。本系統(tǒng)界面美觀,友
34、好,操作方便。第3章 系統(tǒng)開發(fā)的技術(shù)背景本設(shè)計(jì)與建設(shè)過程中應(yīng)用的主要技術(shù)有用Qt開發(fā)五子棋應(yīng)用程序的開發(fā),包括繪制出棋子和棋盤,設(shè)置出開始、重來、悔棋、退出等按鈕功能。用到了鼠標(biāo)點(diǎn)擊事件的處理,繪制棋子,和棋盤的函數(shù)drawpixmap()的使用。還有勝負(fù)顯示,黑方和白方兩方的積分。還有就是應(yīng)用程序的移植,包括u-boot的燒寫,核的裁剪,根文件系統(tǒng)的燒寫,編譯第三方庫(kù),其中包括 ,qtopia源碼的編譯,運(yùn)用的軟件主要有ubuntu桌面應(yīng)用為主的Linux操作系統(tǒng)。運(yùn)用的硬件主要有OK6410開發(fā)板。3.1 Qt技術(shù)介紹Qt是一個(gè)多平臺(tái)的C+圖形用戶界面應(yīng)用程序框架,它是基于面向?qū)ο蟮乃枷脒M(jìn)
35、行相應(yīng)開發(fā)的,支持真正意義上的組件編程,可以為不同用戶提供華麗的用戶界面。所以,從本質(zhì)上來說Qt是一個(gè)跨平臺(tái)的C+應(yīng)用程序開發(fā)框架,有時(shí)又被稱為C+部件工具箱。Qt被用在KDE桌面環(huán)境、Opera、Google Earth、Skype、Adobe Photoshop Album 和 VirtualBox 的 開 發(fā) 中 , 是 諾 基 亞 ( Nokia ) 的 Qt Development Frameworks 部門的產(chǎn)品。使用 Qt只需一次性開發(fā)應(yīng)用程序和用戶界面,無須再次重新編寫源代碼,便可跨不同桌面和嵌入式操作系統(tǒng)部署這些應(yīng)用程序。信號(hào)和插槽機(jī)制是 Qt 的核心機(jī)制,也是 Qt 的核心
36、特性。 Qt 有著自身的特點(diǎn),不同于其他界面開發(fā)軟件,其中一個(gè)重要的地方,便是信號(hào)與插槽機(jī)制,因此精通 Qt 編程是基于對(duì)信號(hào)和插槽機(jī)制有著深入的了解;信號(hào)和插槽是一種高級(jí)接口,很好的解決了對(duì)象與對(duì)象之間的通信問題,也是 Qt區(qū)別于其他工具包的重要地方。信號(hào)和插槽是 Qt 自行定義的一種通信機(jī)制,Qt 編程語法是完全符合標(biāo)準(zhǔn) C/C+語言的,但是信號(hào)與插槽機(jī)制卻是獨(dú)立于標(biāo)準(zhǔn)的 C/C+,因此要正確的處理信號(hào)和插槽,必須借助一個(gè)稱為 moc(Meta Object Compiler)的 Qt工具,該工具是一個(gè) C+預(yù)處理程序,它為高層次的事件處理自動(dòng)生成所需要的附加代碼。信號(hào)/槽機(jī)制是在QObj
37、ect類中實(shí)現(xiàn)的。在QObject類或者其一個(gè)子類(比如:QWidget類)繼承的所有類中,都存在了信號(hào)和槽。當(dāng)對(duì)象改變其狀態(tài)的時(shí)候,信號(hào)被發(fā)送,對(duì)象不關(guān)心有沒有其他對(duì)象接收到這個(gè)信號(hào)。槽是類的正常成員函數(shù),可以將信號(hào)和槽通過connect()函數(shù)任意連接。當(dāng)一個(gè)信號(hào)被發(fā)射,它所連接的槽會(huì)被立即執(zhí)行,如同一個(gè)普通函數(shù)調(diào)用一樣。Qt 安裝配置1.下載安裝包從網(wǎng)址qt.nokia./downloads下載Qt libraries 4.8.0 for Windows (minGW 4.4, 354 MB) 和Qt Creator 2.4.0 for Windows (53 MB)2.安裝先安裝Qt
38、Creator,安裝過程中會(huì)自動(dòng)安裝minGw,并記住路徑以便安裝Qt Library時(shí)使用。在安裝Qt Libraries3.配置安裝完畢,打開Qt Creator, 選擇工具|選項(xiàng)對(duì)話框,在構(gòu)建和運(yùn)行中點(diǎn)擊添加按鈕,選擇qmake.exe文件:4.新建項(xiàng)目并運(yùn)行跟著新建項(xiàng)目的向?qū)б徊揭徊阶鼍涂梢粤?,?xiàng)目的工作目錄不能有中文,否則make的時(shí)候會(huì)報(bào)錯(cuò)。3.2 OK6410開發(fā)板簡(jiǎn)介OK6410是由飛凌嵌入式技術(shù)設(shè)計(jì)生產(chǎn)的一款嵌入式開發(fā)平臺(tái),它基于三星公司的ARM11處理器S3C2440A,部帶有全性能的MMU(存處理單元) ,適用于設(shè)計(jì)移動(dòng)手持設(shè)備類產(chǎn)品。OK6410開發(fā)板采用核心板+底板設(shè)
39、計(jì),性能穩(wěn)定可靠,具有高性能、低功耗、接口豐富和體積小等優(yōu)良特性。目前已成功移植Linux,WINCE等操作系統(tǒng)到OK6410開發(fā)板。3每次使用OK6410開發(fā)板前,請(qǐng)先將手接觸開發(fā)板周圍金屬部分或者其它地方來釋放靜電,避免直接用手觸摸芯片造成芯片燒壞!需要對(duì)開發(fā)板進(jìn)行物理操作時(shí),請(qǐng)關(guān)閉電源,除USB以與網(wǎng)絡(luò)接口(如果與局域網(wǎng)相接請(qǐng)使用普通網(wǎng)線,開發(fā)板標(biāo)配網(wǎng)線為計(jì)算機(jī)直連網(wǎng)線)外,其它接口均不支持熱插拔,開發(fā)板工作時(shí),請(qǐng)不要帶電插拔。OK6410 開發(fā)板采用核心板+底板結(jié)構(gòu),核心板為6 層,底板為2 層。開發(fā)板的布局和走線經(jīng)過精心設(shè)計(jì),可穩(wěn)定運(yùn)行在400MHz。接口豐富,功能強(qiáng)大,適用于各種手
40、持設(shè)備,消費(fèi)電子和工業(yè)控制設(shè)備的開發(fā)。三星公司推出的這款16/32 位RISC 處理器S3C2440A,是面向高端手持設(shè)備或其它一般應(yīng)用而設(shè)計(jì)的芯片。采用ARM1120T 核,低功耗, 具有高速的處理計(jì)算能力。整體設(shè)計(jì)融合了MMU、AMBA BUS 和Harvard(哈佛)結(jié)構(gòu)。具有獨(dú)立的16KB 指令Cache 和16KB 數(shù)據(jù)Cache。其部體系結(jié)構(gòu): 為手持設(shè)備和通用嵌入式應(yīng)用提供片上集成系統(tǒng)解決方案。 16/32 位RISC 體系結(jié)構(gòu)和ARM1120T 核指令集。 增強(qiáng)的ARM 體系結(jié)構(gòu)MMU 用于支持WinCE,EPOC32 和Linux。 指令高速存儲(chǔ)緩沖器(ICache),數(shù)據(jù)高
41、速存儲(chǔ)緩沖器(DCache),寫緩沖器和物理地址TAG RAM 減少主存帶寬和響應(yīng)性帶來的影響。 采用ARM1120T CPU 核支持ARM 調(diào)試體系結(jié)構(gòu)。 部高級(jí)微控制總線(AMBA)體系結(jié)構(gòu)(AMBA2.0,AHB/APB)。系統(tǒng)管理器 支持大/小端模式。 支持快速總線模式和同步總線模式 尋址空間:每bank 128M 字節(jié)(總共1G 字節(jié))。 支持可編程的每bank 8/16/32 位數(shù)據(jù)總線帶寬。 從bank0 到bank6 都采用固定的bank 起始尋址。 bank7 具有可編程的bank 的起始地址和大小。 8 個(gè)存儲(chǔ)器bank,其中6 個(gè)適用于ROM、SRAM 和其它,另外兩個(gè)適
42、用于ROM/SRAM和同步DRAM。 所有的存儲(chǔ)器bank 都具有可編程的操作周期。 支持外部等待信號(hào)延長(zhǎng)總線周期。 支持掉電時(shí)的SDRAM 自刷新模式。 支持各種型號(hào)的ROM 引導(dǎo)(NOR/NAND FLASH、EEPROM,或其它)。NAND FLASH 啟動(dòng)引導(dǎo) 支持從NAND FLASH 存儲(chǔ)器直接啟動(dòng)。 采用4KB 部緩沖器進(jìn)行啟動(dòng)引導(dǎo)。 啟動(dòng)之后NAND 存儲(chǔ)器仍然可作為外部存儲(chǔ)器使用Cache 存儲(chǔ)器 64 項(xiàng)全相連模式,采用ICache(16KB)和DCache(16KB)。 每行8 字長(zhǎng)度,其中每行帶有一個(gè)有效位和兩個(gè)dirty 位。 偽隨機(jī)數(shù)或輪轉(zhuǎn)循環(huán)替代法。 采用寫穿式(
43、writethrough)或?qū)懟厥剑╳riteback)Cache 操作來更新主存儲(chǔ)器。 4 通道16 位具有PWM 功能的定時(shí)器,1 通道16 位部定時(shí)器,可基于DMA 或中斷進(jìn)行工作。 可編程的占空比周期,頻率和極性。 能產(chǎn)生死區(qū)。 支持外部中斷源。UART 3 通道UART,可以基于DMA 模式或中斷模式工作。 支持5 位、6 位、7 位或者8 位串行數(shù)據(jù)發(fā)送/接收。 支持外部時(shí)鐘作為UART 的運(yùn)行時(shí)鐘(UEXTCLK)。 可編程的波特率。 支持IrDA 1.0。 具有測(cè)試用的回還模式。 每個(gè)通道都具有部64 字節(jié)的發(fā)送FIFO 和64 字節(jié)的接收FIFO。A/D 轉(zhuǎn)換和觸摸屏接口US
44、B 主設(shè)備 2 個(gè)USB 主設(shè)備接口。 遵從OHCI Rev1.0 標(biāo)準(zhǔn)。 兼容USB ver1.1 標(biāo)準(zhǔn)。USB 從設(shè)備 1 個(gè)USB 從設(shè)備接口。 具備5 個(gè)Endpoint。 兼容USB ver1.1 標(biāo)準(zhǔn)。SD 主機(jī)接口 基于普通、DMA 或中斷傳輸模式(字節(jié)、半字、字)。 支持DMA 脈沖訪問(只是字傳輸)。 兼容SD 存儲(chǔ)卡協(xié)議1.0 版。 兼容SDIO 卡協(xié)議1.0 版。 64 字節(jié)發(fā)送和接收FIFO。 兼容多媒體卡協(xié)議2.11 版。3.3 Linux操作系統(tǒng)簡(jiǎn)介當(dāng)今為 Linux 建立文件分區(qū)可以有兩種辦法,一種是利用空閑的磁盤空間新建一個(gè) Linux 分區(qū) ,另一種是編輯一個(gè)
45、現(xiàn)有的分區(qū),使它成為 Linux 分區(qū)。如果沒有空閑的磁盤空間,就需要將現(xiàn)有的分區(qū)刪除后,騰出空間,以建立 Linux 分區(qū)。DISK DRUID 程序中有明顯的新建、刪除、編輯、重設(shè)等按鈕。用戶可以直觀地對(duì)磁盤進(jìn)行操作。在使用 DISK DRUID 對(duì)磁盤分區(qū)進(jìn)行操作時(shí),有四個(gè)重要的參數(shù)需要仔細(xì)設(shè)定:它們是掛載點(diǎn)、文件系統(tǒng)類型、驅(qū)動(dòng)器、分區(qū)大小。掛載點(diǎn):它指定了該分區(qū)對(duì)應(yīng) Linux 文件系統(tǒng)的哪個(gè)目錄,Linux 允許將不同的物理磁盤上的分區(qū)映射到不同的目錄,這樣可以實(shí)現(xiàn)將不同的服務(wù)程序放在不同的物理磁盤上,當(dāng)其中一個(gè)物理磁盤損壞時(shí)不會(huì)影響到其他物理磁盤上的數(shù)據(jù)。文件系統(tǒng)類型:它指定了該分
46、區(qū)的文件系統(tǒng)類型,可選項(xiàng)有 EXT2、EXT3、REISERFS、JFS、SWAP 等。Linux 的數(shù)據(jù)分區(qū)創(chuàng)建完畢后,有必要?jiǎng)?chuàng)建一個(gè) SWAP 分區(qū),它實(shí)際上是用硬盤模擬的虛擬存,當(dāng)系統(tǒng)存使用率比較高的時(shí)候,核會(huì)自動(dòng)使用 SWAP 分區(qū)來模擬存。大?。褐阜謪^(qū)的大?。ㄒ?MB 為單位),Linux 數(shù)據(jù)分區(qū)的大小可以根據(jù)用戶的實(shí)際情況進(jìn)行填寫,而 SWAP 大小根據(jù)經(jīng)驗(yàn)可以設(shè)為物理存的兩倍,但是當(dāng)物理存大于 1GB 時(shí),SWAP 分區(qū)可以設(shè)置為 2GB。其源碼可以自由獲得,并能夠運(yùn)行于多數(shù) Unix 系統(tǒng)。它包括以下特性:自動(dòng)重?fù)芴?hào)的撥號(hào)目錄 ,對(duì)串行設(shè)備 UUCP 格式的 lock 文件的
47、支持,獨(dú)立的腳本語言解釋器,文件捕獲,多用戶單獨(dú)配置,等等。m 用 Meta 或 Alt 鍵重載命令鍵,在 1.80 版中這是缺省值,也可以在 minicom 菜單中配置這個(gè)選項(xiàng)。不過若一直使用不同的終端,其中有些沒有 Meta 或 Alt 鍵,那么方便的做法還是把缺省的命令鍵設(shè)置為 CtrlA,當(dāng)有了支持 Meta 或 Alt 鍵的鍵盤時(shí)再使用此選項(xiàng)。Minicom假定 Meta 鍵發(fā)送 ESC 前綴,而不是設(shè)置字符最高位的那一種(見下)。M 跟“m”一樣,但是假定 Meta 鍵設(shè)置字符高端的第八位(發(fā)送 128+字符代碼)。z 使用終端狀態(tài)行。僅當(dāng)終端支持,并且在其 termcap 或 t
48、erminfo 數(shù)據(jù)庫(kù)入口中有相關(guān)信息時(shí)才可用。l 逐字翻譯高位被置位的字符,使用此標(biāo)志,minicom 將不再嘗試將 IBM 行字符翻譯為ASCII 碼,而是將其直接傳送。許多 PCUnix 克隆不經(jīng)翻譯也能正確顯示它們(Linux 使用專門的模式:Coherent 和 Sco)。a 特性使用,有些終端,特別是 televideo 終端,有個(gè)很討厭的特性處理(串行而非并行)。minicom 缺省使用aon,但若在用這樣的終端,你就可以(必須!)加上選項(xiàng)a off。尾字on或off需要加上。t 終端類型,使用此標(biāo)志,可以重載環(huán)境變量 TERM,這在環(huán)境變量 MINICOM 中使用很方便;可以創(chuàng)
49、建一個(gè)專門的 termcap 入口以備 minicom 在控制臺(tái)上使用,它將屏幕初始化為 raw模式,這樣,連同f標(biāo)志一起,就可以不經(jīng)翻譯而顯示 IBM 行字符。c 顏色使用,有些終端(如 Linux 控制臺(tái))支持標(biāo)準(zhǔn) ANSI 轉(zhuǎn)義序列色彩。由于 termcap 顯然沒有對(duì)于色彩的支持,因而 minicom 硬性置了這些轉(zhuǎn)義序列的代碼。所以此選項(xiàng)缺省為 off。使用c on可以打開此項(xiàng)。把這個(gè)標(biāo)志,還有m放入 MINICOM 環(huán)境變量中是個(gè)不錯(cuò)的選擇。C 文件名,啟動(dòng)時(shí)打開捕獲文件。8 不經(jīng)修改地傳送 8 位字符,“連續(xù)”意指未對(duì)地點(diǎn)/特性進(jìn)行真正改變,就不插入地點(diǎn)/特性控制序列。此模式用于
50、顯示 8 位多字節(jié)字符,不是 8 位自否的語言都需要(例如顯示芬蘭文字就不需要這個(gè))。minicom 啟動(dòng)時(shí),它首先搜索用于命令行參數(shù)的 MINICOM 環(huán)境變量,這些參數(shù)可在命令行上超載。例如:若進(jìn)行了如下設(shè)置:MINICOM=m c onexport MINICOM或者其它等效的設(shè)置,然后啟動(dòng) minicom,minicom 會(huì)假定終端有 Meat 鍵或 Alt 鍵,并且支持彩色。如果從一個(gè)不支持彩色的終端登錄,并在啟動(dòng)文件(.profile 或等效文件)中設(shè)置了minicom,而且又不想重置環(huán)境變量,那么就可以鍵入minicom c off,來運(yùn)行這次沒有色彩支持的會(huì)話。當(dāng)有了 linu
51、x 核源碼之后需要交叉編譯,因?yàn)樵创a是不能運(yùn)行的。我們編譯的是 2.6 的核,采用的交叉編譯器為 3.4.1 版本。編譯命令:make config(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)make menuconfig(基于文本選單的配置界面,字符終端下推薦使用)make xconfig(基于圖形窗口模式的配置界面,Xwindow 下推薦使用)make oldconfig(如果只想在原來核配置的基礎(chǔ)上修改一些小地方,會(huì)省去不少麻煩)這三個(gè)命令中,make xconfig 的界面最為友好,但 如果你不能使用 Xwindow,那么就使用 make menuconfig 好了。界面雖然比上面一個(gè)
52、差點(diǎn),總比 make config 的要好多了。交叉編譯就是在一種計(jì)算機(jī)環(huán)境中運(yùn)行的編譯程序,能編譯出在另外一種環(huán)境下運(yùn)行的代碼,我們就稱這種編譯器支持交叉編譯。這個(gè)編譯過程就叫交叉編譯。簡(jiǎn)單地說,就是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼。如 keil 軟件,在 keil 上編譯,但在單片機(jī)上運(yùn)行,典型的交叉編譯。我們?cè)陂_發(fā)板上運(yùn)行的程序,是在 PC 機(jī)上編譯的,所以是交叉編譯。3.4可行性分析進(jìn)行可行性分析是非常必要的,也是很重要的,本系統(tǒng)的可行性研究主要是參考已存在并正處于運(yùn)行的類似系統(tǒng)和經(jīng)過最初的設(shè)計(jì)目標(biāo)與進(jìn)行的市場(chǎng)調(diào)查分析為評(píng)價(jià)尺度,考慮其技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性??尚行?/p>
53、研究是為了弄清楚系統(tǒng)開發(fā)的項(xiàng)目如何用最小的代價(jià)在盡可能短的時(shí)間確定問題是否能夠解決,是否值得進(jìn)行研究的過程,實(shí)際上進(jìn)行可行性分析大大簡(jiǎn)化了系統(tǒng)設(shè)計(jì)的過程。3.4.1經(jīng)濟(jì)可行性LINUX系統(tǒng)屬于開放源代碼軟件,由于LINUX系統(tǒng)具有穩(wěn)定、安全、網(wǎng)絡(luò)負(fù)載力強(qiáng)、占用硬件資源少等技術(shù)特點(diǎn),自問世以來得到了迅速推廣和應(yīng)用,并已發(fā)展為當(dāng)今世界的主流的嵌入式操作系統(tǒng)之一。LINUX在嵌入式的廣泛應(yīng)用不是偶然的,這就取決于LINUX操作系統(tǒng)特點(diǎn)。LINUX是一款免費(fèi)的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點(diǎn),來自全世界的無數(shù)程序員參與了
54、LINUX的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對(duì)其進(jìn)行改變。這讓LINUX吸收了無數(shù)程序員的精華,不斷壯大。OK6410開發(fā)板的價(jià)格也是可以接受的,且有用戶指導(dǎo)手冊(cè),便宜開發(fā),易于使用。3.4.2技術(shù)可行性本系統(tǒng)使用Qt開發(fā),Qt具有良好的可靠性、可用性、可編程性與易用性,基本上,Qt Windows平臺(tái)上的MFC、OWL、VCL、ATL是同類型的東西,但是Qt具有下列優(yōu)點(diǎn):(1)優(yōu)良的跨平臺(tái)特性Qt支持下列操作系統(tǒng): Microsoft Windows 95/98、Microsoft Windows NT、Linux、Solaris、SunOS、HP-UX、Digital UNI
55、X 、Irix、FreeBSD、BSD/OS、SCO、AIX、OS390、QNX等等;(2)面向?qū)ο驫t 的良好封裝機(jī)制使得Qt的模塊化程度非常高,可重用性較好,對(duì)于用戶開發(fā)來說是非常方便的;(3)可用戶化外觀Qt支持主題,基于Qt的應(yīng)用程序能夠在Windows外觀、Motif外觀,以與其它一些用戶化外觀主題之間切換;(4)友好的聯(lián)機(jī)幫助Qt提供了大量的聯(lián)機(jī)參考文檔,有超文本HTML方式,也有UNIX幫助頁Man手冊(cè)頁和補(bǔ)充說明。對(duì)于初學(xué)者,其中的指南將一步步介紹如何進(jìn)行Qt編程;(5)便利性由于Qt是一種跨平臺(tái)的GUI工具包,它對(duì)編程者隱藏了在處理不同窗口系統(tǒng)時(shí)潛在的問題,Qt定義了一些類來
56、隱藏在不同操作系統(tǒng)上不同處理方式下的細(xì)節(jié)問題;(6)支持 2D/3D 圖形渲染,支持 OpenGL。(7)豐富的 APIQt為專業(yè)應(yīng)用提供了大量的函數(shù),在Qt的API中含有大約250個(gè)C+類,大多數(shù)的類都是GUI專有的,甚至還包括正則表達(dá)式的處理功能;3.4.3操作可行性本系統(tǒng)前臺(tái)作為與用戶直接交互的界面,在設(shè)計(jì)考慮功能的同時(shí),也考慮了操作的簡(jiǎn)潔和方便性,設(shè)計(jì)了方便用戶使用的按鈕,如開始按鈕,重來按鈕,退出按鈕,悔棋按鈕,目的是讓大多數(shù)不熟練電腦操作的客戶,也能輕松的享受本系統(tǒng)給他們帶來的便利。同時(shí)還設(shè)計(jì)了顯示勝負(fù),和積分的功能。因此該系統(tǒng)在操作上是可行的。第4章 系統(tǒng)總體設(shè)計(jì)4.1 五子棋游
57、戲設(shè)計(jì)原則一個(gè)好的游戲往往要遵循游戲的設(shè)計(jì)原則,主要是從實(shí)用性,先進(jìn)性,兼容性和規(guī)性上進(jìn)行設(shè)計(jì)。而各個(gè)原則的具體描述如下。1實(shí)用性原則:確保具有良好的系統(tǒng)性能,友好的用戶界面,較高的處理效率。便于管理人員使用和維護(hù),并采用成熟的技術(shù)。2先進(jìn)性原則:采用先進(jìn)而成熟的技術(shù),使軟件具有較高的技術(shù)水平和較長(zhǎng)的生命周期。3兼容性原則:對(duì)于所選硬件系統(tǒng)與平臺(tái),能很好地適應(yīng)開發(fā)和使用。4規(guī)性原則:軟件設(shè)計(jì)過程盡量按照規(guī)進(jìn)行,系統(tǒng)編碼,操作系統(tǒng)平臺(tái)以與所采用的開發(fā)方法也按照相應(yīng)的標(biāo)準(zhǔn)。4.2 五子棋游戲的總體設(shè)計(jì)結(jié)構(gòu)本系統(tǒng)主要包括包括繪制出棋子和棋盤,設(shè)置出開始、重來、悔棋、退出等按鈕功能。用到了鼠標(biāo)點(diǎn)擊事件
58、的處理,繪制棋子,和棋盤的函數(shù)drawpixmap()的使用。還有勝負(fù)顯示,黑方和白方兩方的積分。需要實(shí)現(xiàn)的的游戲重要功能:(1)主窗口:負(fù)責(zé)管理所有的部件,創(chuàng)建所有信號(hào)和槽的連接(2)棋盤類:繪制棋盤,把棋盤看成一個(gè)二維數(shù)組,處理鼠標(biāo)點(diǎn)擊事件,在點(diǎn)擊處一定圍繪制棋子,然后最主要的就是算法,就是怎么走才算贏,這個(gè)要花時(shí)間研究(3)積分和勝負(fù)顯示,使游戲的人體會(huì)到勝利的快樂。(4)設(shè)計(jì)按鈕,控制開始、重來、悔棋、退出等功能。第5章 系統(tǒng)模塊設(shè)計(jì)5.1 用Qt-creator進(jìn)行五子棋應(yīng)用程序的主要功能實(shí)現(xiàn)本五子棋應(yīng)用程序有繪制棋盤和棋子的功能,鼠標(biāo)處理事件的實(shí)現(xiàn),將鼠標(biāo)坐標(biāo)轉(zhuǎn)換為方格子的坐標(biāo)等多
59、個(gè)主要函數(shù)。5.1.1 繪制棋盤和棋子的功能void MainWindow:paintEvent(QPaintEvent* ) QPainter painter(this); QPainter greenPainter(this); greenPainter.setBrush(Qt:green); QRect rect(10,10,695,555); painter.drawPixmap(rect,*mChessboardPixmap); QRect rect1(705,220,125,131); painter.drawPixmap(rect1,*mheifangPixmap); QRect
60、 rect2(830,220,125,131); painter.drawPixmap(rect2,*mbaifangPixmap); QRect rect3(690,0,331,232); painter.drawPixmap(rect3,*mbanPixmap); QRect rect4(690,352,261,261); painter.drawPixmap(rect4,*mbanPixmap); QRect temptRect; int i; for( i=0; i225; i+) if(mGameLogic.mChessRecord.mRecordi.mPoint.x()pos();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年信息流廣告素材創(chuàng)意方法
- 2026年農(nóng)產(chǎn)品品牌包裝設(shè)計(jì)策略
- 無人機(jī)維修調(diào)試與校驗(yàn)規(guī)范手冊(cè)
- 2026年農(nóng)產(chǎn)品國(guó)際貿(mào)易規(guī)則解析
- 2026年氫能儲(chǔ)運(yùn)安全技術(shù)規(guī)范培訓(xùn)
- 關(guān)于鼓勵(lì)小微企業(yè)吸納勞動(dòng)者就業(yè)的意見
- 職業(yè)壓力管理的醫(yī)療化干預(yù)體系
- 職業(yè)健康遠(yuǎn)程隨訪的醫(yī)患協(xié)同管理策略
- 職業(yè)健康監(jiān)護(hù)中的標(biāo)準(zhǔn)化培訓(xùn)效果評(píng)估
- 院長(zhǎng)培訓(xùn)教學(xué)課件
- 2025大模型安全白皮書
- 2026國(guó)家國(guó)防科技工業(yè)局所屬事業(yè)單位第一批招聘62人備考題庫(kù)及1套參考答案詳解
- 工程款糾紛專用!建設(shè)工程施工合同糾紛要素式起訴狀模板
- 地坪漆施工方案范本
- 2026湖北武漢長(zhǎng)江新區(qū)全域土地管理有限公司招聘3人筆試備考題庫(kù)及答案解析
- 【《自適應(yīng)巡航系統(tǒng)ACC的SOTIF風(fēng)險(xiǎn)的識(shí)別與評(píng)估分析案例》4100字】
- 110(66)kV~220kV智能變電站設(shè)計(jì)規(guī)范
- 阿壩州消防救援支隊(duì)2026年面向社會(huì)公開招聘政府專職消防員(69人)筆試備考試題及答案解析
- 2025寧波市甬北糧食收儲(chǔ)有限公司公開招聘工作人員2人筆試參考題庫(kù)及答案解析
- (正式版)DB44∕T 2784-2025 《居家老年人整合照護(hù)管理規(guī)范》
- 供應(yīng)鏈年底總結(jié)與計(jì)劃
評(píng)論
0/150
提交評(píng)論