版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 現(xiàn)在智能操作系統(tǒng)迅速發(fā)展,使得智能手機和其他的智能移動設(shè)備得到廣泛普及,因此,智能操作系統(tǒng)的應(yīng)用軟件開發(fā)及其需要的服務(wù)將有廣闊的發(fā)展前景。而Android是開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴展的用戶體驗,包括豐富的圖形組件、多媒體支持功能以及強大的瀏覽器。因此,對于軟件從業(yè)人員來說,Andro
2、id平臺具有無限的吸引力。另一方面,Android系統(tǒng)是基于Linux內(nèi)核而開發(fā)的,他的上層應(yīng)用軟件都是基于JAVA技術(shù)開發(fā)的。JAVA是一門面向?qū)ο蟮拈_發(fā)語言,擁有更好的可移植性、健壯性和安全性,對于人性化的設(shè)計更為方便。 </p><p> 本文在分析討論Android應(yīng)用軟件開發(fā)技術(shù)原理的基礎(chǔ)上,開發(fā)出基于Android平臺的中國象棋人人對弈的游戲軟件。通過對Android系統(tǒng)架構(gòu)和應(yīng)用開發(fā)進(jìn)行初步研究,
3、設(shè)計一款中國象棋的單機版游戲。在對系統(tǒng)進(jìn)行詳細(xì)需求分析的基礎(chǔ)上,確定了系統(tǒng)的功能和性能要求,對游戲的歡迎界面、屏幕繪制、棋盤繪制、布局算法等進(jìn)行設(shè)計,并最終實現(xiàn)一個界面友好、高效穩(wěn)定和富有娛樂性和對戰(zhàn)性的Android應(yīng)用軟件。</p><p> 關(guān)鍵詞:Android系統(tǒng); 中國象棋; JAVA; 智能手機</p><p><b> Abstract</b>&l
4、t;/p><p> Now, the smartphone operating system is developed rapidly, making smart phones and other smart mobile devices widely available, so the smart operating system and application software development serv
5、ices required will have broad prospects for development. The Android is an open architecture, not only has a very good development and debugging environment, but also supports a variety of scalable user experience, inclu
6、ding rich graphical components, multimedia support, and powerful browser. Therefo</p><p> This paper discusses the analysis of Android application development technology principle,on this basis, for the use
7、rs to develop Chinese Chess software that is based on Android system and that is just for one vs one. Through the Android system architecture and application development for a preliminary study to design a stand-alone ve
8、rsion of Chinese chess game. In the system, it needs to conduct a detailed analysis to determine the system's functional and performance requirements, carries on th</p><p> Keywords: Android system; C
9、hinese chess; JAVA; smartphones</p><p><b> 1 緒論</b></p><p> 1.1 中國象棋的背景介紹</p><p> 1.1.1 中國象棋的歷史起源</p><p> 象棋應(yīng)該說是源自漢朝,比魏晉時期的圍棋要早上三四百年。自從劉邦斬白蛇起義,跟項羽約
10、定先占咸陽者為王。由于項羽牽制了秦軍主力,劉邦很快便打進(jìn)了咸陽,擒獲秦二世子嬰,卻始終畏懼楚霸王之威,不敢稱王,駐兵于霸橋等待項羽。這時項羽軍因?qū)秤霾粷M投來一名帳前的執(zhí)戟郎,名叫韓信,來到劉邦部下卻依然不受重用,一怒之下月夜出走,于是演出了一幕“蕭何月下追韓信”,自此韓信拜將,劉邦開始與項羽分庭抗禮,封為漢中王,劃地而治。</p><p> 后來劉邦采用韓信明修棧道,暗渡陳倉之計,擊敗守衛(wèi)漢中要路的三秦降將章
11、邯等,開始了與項羽爭奪天下的序曲。劉邦部向西于項羽軍交兵,屢戰(zhàn)屢敗,韓信部卻移師向東采用置之死地而后生的戰(zhàn)法擊潰齊王陳余,并自稱“代齊王”。劉邦為解東部之危,封韓信齊王,請求速援。韓信先用驕兵之計引項羽深入,在陔下布防以十面埋伏一舉擊潰項羽主力,并一路追擊,迫使項羽自刎烏江。劉邦恐其功高震主,平定天下后削其兵權(quán),僅封其為淮陰候,許諾即使韓信犯錯也可以“見天不殺,見地不殺,見鐵器不殺” 。</p><p>
12、; 后來劉邦終究對韓信畏懼,召入宮中,誣以重罪,限于三不殺之令,打入天牢,在做牢期間,韓信閑來無事想把自己的兵法傳于后世,自創(chuàng)一種游戲,稱為“玩棋”,教與牢卒,說練熟后可以明攻戰(zhàn)之法,成一代名家。后來由呂后出毒計,把韓信關(guān)在一個小黑屋里,用繩子將他吊在空中,拿竹簽扎死,不違三不殺之說,但“玩棋”卻漸漸流傳到世上,后來又被改成為象棋。</p><p> 按韓信的說法,能研究透象棋的人,就可以深通韜略,成一代兵師
13、,在民間象棋也遠(yuǎn)比圍棋開展的更為普及,深受群眾喜愛。</p><p> 經(jīng)過近百年的實踐,象棋于北宋末定型成近代模式:32枚棋子, 有河界的棋盤,將和帥在九宮之中等等,至此之后,中國象棋在民間廣為流傳,堪稱我國的國粹與精華。</p><p> 1.1.2 中國象棋的發(fā)展現(xiàn)狀與前景</p><p> 現(xiàn)代社會是一個科技與信息的時代,隨著社會的發(fā)展,傳統(tǒng)的中國象
14、棋慢慢的被拋棄,現(xiàn)在已處在一個邊緣化狀態(tài),以前老人或者孩子在大街小巷“將”、“吃”的聲音已經(jīng)基本看不到了。那么,作為中國的國粹,為什么如今會走下坡路呢?歸根究底,我覺得最主要的有如下兩個方面的原因:</p><p> (1)國家不夠重視。近現(xiàn)代,國家已經(jīng)慢慢淡化了對中國傳統(tǒng)文化的發(fā)展與培養(yǎng)的意識,特別是當(dāng)代,無論是在校園里還是在社會上,對中國象棋的課程學(xué)習(xí)安排越來越少,諸如國家象棋隊這樣的,很多地方基本上都沒有
15、,這直接導(dǎo)致了人們對與中國象棋的淡忘和對興趣的培養(yǎng)。本來對于傳統(tǒng)文化來說,做為國人,應(yīng)該每個人都要了解知道,特別是這種國粹的東西,更應(yīng)該人人都會,但可悲的是,現(xiàn)在還有很多人都不會中國象棋,特別是現(xiàn)在的年輕人,有些根本就從來都沒有接觸過。至此以往,一代又一代的傳承,中國的傳統(tǒng)文化最終會走向滅亡,這是非??膳碌?。</p><p> (2)現(xiàn)代化的人們都很忙,已無閑暇時間互相切磋。這主要其實也是由于社會的現(xiàn)狀所引起的
16、,為了能夠買車、買房、娶媳婦,人們每天不得不早出晚歸,甚至忙到深夜,整天都有賺不完的錢,好像他們已經(jīng)忘記了人活著除了賺錢之外還可以享受生活。所以人們已經(jīng)沒有時間來放松,特別是對于中國象棋這種傷筋又費神的事,更不會把寶貴的時間“浪費”在這種事情上。好不容易有時間吧,人們更愿意花這些時間來上網(wǎng)、玩手機、旅游,亦或是睡覺。所以,隨著社會的發(fā)展,對于中國的傳統(tǒng)文化,人們已經(jīng)無暇了解。</p><p> 那么,展望未來,
17、中國象棋,中國的國粹會將怎樣發(fā)展呢?會不會真的就一直走向滅亡呢?我覺得一定不會。</p><p> 剛剛我已近提到過,現(xiàn)代人們在閑暇之余都喜歡花大量的時間在上網(wǎng)和玩手機上,那么我覺得這也是像諸如中國象棋這類游戲得以發(fā)展和繼承的一個機會,特別是近幾年,手機和平板等移動終端突飛猛進(jìn)的發(fā)展,使得軟件開發(fā)這一個行業(yè)也迅速得到崛起。進(jìn)兩年,Android操作平臺每年都可以誕生出幾十萬款手機軟件,目前的Android手機軟
18、件數(shù)量更是接近百萬款,基本上涉及到了人們生活的方方面面,這其中就包含了很多關(guān)于中國傳統(tǒng)文化的軟件,單中國象棋這一個游戲軟件的數(shù)量就已經(jīng)有上百款。所以,人們已經(jīng)習(xí)慣了用手機或者平板打游戲來消磨時間,中國象棋這個軟件也越來越受到大眾的歡迎和青睞,這對于中國傳統(tǒng)文化的傳承和發(fā)揚是一個幸事,也是一個好事。所以,展望未來,中國象棋的發(fā)展其實也就是軟件行業(yè)的發(fā)展以及移動平臺的普及,特別是Android操作系統(tǒng),現(xiàn)在已經(jīng)迅速崛起成為了智能終端的一大霸
19、主,這對于學(xué)好軟件開發(fā),學(xué)好Android操作系統(tǒng)設(shè)計顯得非常有意義,同時這也是本次研究的宏觀意義所在。</p><p> 1.2 Android操作系統(tǒng)簡介</p><p> 1.2.1 Android操作系統(tǒng)背景</p><p> Android一詞最早出現(xiàn)于法國作家利爾亞當(dāng)(Auguste Villiers de l"Isle-Adam)在
20、1886年發(fā)表的科幻小說《未來夏娃》(L"ève future)中。他將外表像人的機器起名為Android,于是就有了這個可愛的小機器人[1]。</p><p> 2005年8月17日,谷歌公司收購了Android科技公司,Android科技公司成為谷歌公司旗下的一部分,包括米奇?米納爾、克里斯?懷特等所擁有的全資子公司,所有Android科技公司的員工都被并入谷歌公司。當(dāng)時,沒有人知道谷歌
21、公司為什么作出這項收購,有許多的猜測,后來證明谷歌正是借助此次收購正式進(jìn)入移動領(lǐng)域。之后,到了2007年11月5日,在谷歌公司的領(lǐng)導(dǎo)下,開放手持設(shè)備聯(lián)盟建立,最開始的一批創(chuàng)始成員包括Broadcom公司、HTC、Intel、LG、Marvell等公司。開放手持設(shè)備聯(lián)盟的建立目的是為了創(chuàng)建一個更加開放自由的移動手機環(huán)境。而在開放手持設(shè)備聯(lián)盟創(chuàng)建的同一天,聯(lián)盟對外展示了他們的第一個產(chǎn)品,一臺搭載了以Linux 2.6為內(nèi)核基礎(chǔ)的Androi
22、d操作系統(tǒng)的智能手機。 2008年12月9日,新一批成員加入開放手持設(shè)備聯(lián)盟,包括ARM、華為、索尼愛立信等公司。2010年末數(shù)據(jù)顯示,僅正式推出兩年的操作系統(tǒng)的Android已經(jīng)超越稱霸十年的諾基亞Symbian系統(tǒng),躍居全球最受歡迎的智能手機平臺。</p><p> Android的Logo是由Ascender公司設(shè)計的。其中的文字使用了Ascender公司專門制作的稱之為“Droid ” 的字體。Andr
23、oid是一個全身綠色的機器人,綠色也是Android的標(biāo)志。顏色采用了PMS 376C和RGB中十六進(jìn)制的#A4C639來繪制,這是Android操作系統(tǒng)的品牌象徵。</p><p> 1.2.2 Android系統(tǒng)的優(yōu)勢與弊端</p><p> 作為一個在短時間內(nèi)迅速崛起的產(chǎn)業(yè)系統(tǒng),他必定存在著與其他系統(tǒng)所不同的特點和比較人性化的優(yōu)勢[2],其主要表現(xiàn)在:</p>&
24、lt;p><b> (1)開放性</b></p><p> 在優(yōu)勢方面,Android平臺首先就是其開放性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟。開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟
25、件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。</p><p> (2)掙脫運營商的束縛</p><p> 在過去很長的一段時間,特別是在歐美地區(qū),手機應(yīng)用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運營商的控制。自從iPhone、Android上市之后,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著EDGE、HSDPA這些2G至
26、3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機隨意接入網(wǎng)絡(luò)已不是運營商口中的笑談。</p><p> (3)豐富的硬件選擇</p><p> 這一點還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容。好比你從諾基亞Symbian風(fēng)格手機一下改用蘋果iPhone,同時還可將Sym
27、bian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。</p><p> (4)不受任何限制的開發(fā)商</p><p> Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境。因此不會受到各種條條框框的阻撓,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android難題之一。</p>
28、<p> (5)無縫結(jié)合的Google應(yīng)用</p><p> 如今叱咤互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史。從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。</p><p> 其實,任何一個東西都有其好的一面,也肯定存在一些缺點。我覺得,Android系統(tǒng)
29、最大的缺點就是太亂了,這其實也與系統(tǒng)本身的開源性有關(guān),這直接導(dǎo)致的后果就是存在很大的安全性問題,用戶的隱私很容易就被泄露了。在很多的應(yīng)用軟件市場里面,APP都沒有經(jīng)過嚴(yán)格的審核就放到了上面,這就存在著很多垃圾軟件,亦或是存在著很多危險軟件。另一方面,google對于系統(tǒng)的升級太快,很多廠商都跟不上google的步伐,當(dāng)一個系統(tǒng)正在開始普及而還沒有廣泛普及的時候,新的系統(tǒng)又已經(jīng)發(fā)布了,很多移動終端不能夠迅速的得到升級,這就導(dǎo)致了用戶對于系
30、統(tǒng)的體驗。 </p><p> 1.2.3 Android操作系統(tǒng)的現(xiàn)狀與發(fā)展前景</p><p> 據(jù)美國調(diào)查公司IDC于當(dāng)?shù)貢r間2013年2月14日公布的全球智能手機市場調(diào)查結(jié)果顯示,2012年第四季度(10~12月),配備谷歌移動操作系統(tǒng)(OS)Android的終端和配備蘋果“iOS”的終端(iPhone)的總出貨量占了全球市場91.1%的份額。這兩大平臺手機的總出貨量為2.0
31、76億部,比上年同期的1.22億部增加了70.2%;2012年全年的出貨量為7.224億部,市場份額由去年的68.1%擴大至87.6%。而 IDC 所帶來的 2013 年第 1 季平板電腦市占率調(diào)查顯示, Android 平板電腦幾乎翻轉(zhuǎn)了去年的數(shù)據(jù),沖上 56.5% 的市場占有率王座。 IDC表示,“最近兩年中,Android和iOS的總份額約超過了50%。兩強體制日益鞏固”。 </p><p> 單獨來看,
32、2012年第四季度 Android產(chǎn)品的出貨量為同比增加88%的1.598億部,份額為70.1%;而iOS產(chǎn)品的出貨量為同比增加29.2%的4780萬部,份額為21.0%。全年出貨量方面,Android產(chǎn)品為4.971億部,iOS產(chǎn)品為1.359億部。 </p><p> 推動Android終端出貨量增加的是三星電子。在2012年全年Android終端的出貨量中,三星終端的比例為42%。IDC的調(diào)查顯示,在An
33、droid終端供貨量中擁有兩位數(shù)份額的廠商只有三星,大部分廠商的份額還不到1%。另一方面,隨著價格、尺寸和設(shè)計各異的多種終端面世,消費者的選擇范圍擴大。IDC分析,這正是推動Android終端爆發(fā)性增長的原因。 </p><p> iOS終端的出貨量在單季度和全年均實現(xiàn)了兩位數(shù)增長,人氣依然旺盛,不過與其他OS相比,增長速度則顯得比較慢。IDC稱其原因在于,2012年第二季度的供貨量比上季度減少,第三季度也沒有
34、大幅增加。IDC預(yù)測,蘋果為維持增長,可能會在2013年中期投放iPhone新機型。 </p><p> 其他OS方面,排在第三位的黑莓(BlackBerry)在2012年第四季度的出貨量為740萬部,份額為3.2%。微軟的Windows Phone和Windows Mobile第四季度的出貨量為600萬部,份額為2.6%。黑莓和微軟分別于2013年1月,和2012年第四季度發(fā)布了新OS。IDC項目經(jīng)理Ryan
35、 Reith預(yù)測稱,“今后數(shù)年可能會誕生一些具有影響力的新勢力”,“這些新OS或許會陷入激烈的市場競爭,但平臺的多樣化對于消費者和通信運營商來說都是必需的”。</p><p> 也就是說,Android操作系統(tǒng)一直以來都是呈現(xiàn)出增長的趨勢,現(xiàn)在也已經(jīng)超越了iphone,成為了智能移動終端的霸主。現(xiàn)在,很多廠商經(jīng)常性的發(fā)布一些非常具有性價比和配置相當(dāng)高端、很具有吸引力的智能手機,這就比較大眾化,對于Android
36、操作系統(tǒng)的發(fā)展很有優(yōu)勢,在最近的Android 4.3和Android5.0發(fā)布之后,我想Android肯定會做出很大的系統(tǒng)優(yōu)化和增加很多特色實用功能,這對于Android發(fā)展而言又是錦上添花。</p><p> 但Android就會一直保持霸主的地位,一直增長下去嗎?我認(rèn)為不一定。因為受到Android的沖擊,與Android分庭抗禮的另一大操作系統(tǒng)IOS也準(zhǔn)備改變戰(zhàn)略,他們也準(zhǔn)備在以后一段時間推出他們的新操
37、作系統(tǒng),最主要的是,IOS還準(zhǔn)備發(fā)布廉價版和不同尺寸大小的iphone,這可能對于Android是一個很大的沖擊。</p><p> 不盡如此,windows phone操作系統(tǒng)作為后起之秀也正在追趕上來,并且勢頭也越來越大,更多的人們慢慢的開始接受了他。還有,很多新興的操作系統(tǒng),比如說火狐操作系統(tǒng),三星剛剛發(fā)布的Tizen操作系統(tǒng)等等,他們可能目前不太可能對Android構(gòu)成威脅,但至少也會受到一些影響。況且
38、,科技的發(fā)展日新月異,難說幾年之后,一個更好的操作系統(tǒng)誕生也說不定。所以說,物競天擇,不進(jìn)則退,霸主的地位總是讓能者居之,Android只有在以后做得更好,才能長久立于不敗之地。</p><p> 2 Android系統(tǒng)的架構(gòu)與開發(fā)環(huán)境</p><p> 2.1 Android的體系結(jié)構(gòu)</p><p> Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分
39、層的架構(gòu)[3]。從架構(gòu)圖看(如圖2.1),Android結(jié)構(gòu)分為四個層,從高層到低層分別是應(yīng)用層(Application Level),應(yīng)用框架層(Application Frameworks),系統(tǒng)運行庫層(Libraries and Android Runtime Level)和Linux內(nèi)核層(Linux Kernel Level)。下面就對每一層做介紹:</p><p> 圖2.1 Android系統(tǒng)
40、框架</p><p> ?。?)應(yīng)用層(Application Level):</p><p> 應(yīng)用層是和用戶交互的一個層次,用戶可以看得見的一些應(yīng)用,用戶可以操作,如眾多應(yīng)用開發(fā)者開發(fā)的應(yīng)用(第三方應(yīng)用),Google在開發(fā)Android時,在應(yīng)用層綁定的一些核心應(yīng)用,比如Email客戶端、SMS短消息程序、日歷、地圖、桌面(Home)、瀏覽器(Browers)、聯(lián)系人(Contac
41、ts)、電話(Phone)、通話記錄等。這類應(yīng)用基本都是通過Java語言編寫的獨立的能夠完成某些功能的應(yīng)用程序。開發(fā)人員可以使用應(yīng)用框架提供的API編寫自己的應(yīng)用程序,普通開發(fā)人員要做的事情就是開應(yīng)用層的程序提供該廣大消費者使用。</p><p> (2)應(yīng)用框架層(Application Frameworks):</p><p> 這是Android系統(tǒng)中最核心的部分,它集中體現(xiàn)了A
42、ndroid系統(tǒng)的設(shè)計思想。應(yīng)用框架層所提供的組件很多,包括活動管理器(Avtivity Manager)、窗口管理器(Window Manager)、內(nèi)容提供器(Content Providers)、視圖系統(tǒng)(View System)、包管理器(Package Manager)等等。對于開發(fā)者而言,框架層最直觀的體現(xiàn)就是SDK,它通過一系列的Java功能模塊,來實現(xiàn)應(yīng)用所需要的功能。普通開發(fā)者可以使用Android基本應(yīng)用程序使用的系
43、統(tǒng)API,Android應(yīng)用框架中的各個模塊都可以被復(fù)用,各種服務(wù)也可以被復(fù)用,理解了這個機制,開發(fā)人員可以更好的更輕松的開發(fā)出優(yōu)秀的Android應(yīng)用。開發(fā)過程中常用到的基本框架組件如下:</p><p> 活動管理(Activity Manager),Activity管理著應(yīng)用程序的生命周期,并且控制著應(yīng)用的導(dǎo)航, 扮演控制器的角色。每個Activity類似于Windows應(yīng)用中的一個wendow。一般的應(yīng)
44、用都是通過一個個Activity交互構(gòu)成的。</p><p> 窗口管理(Window Manager),管理所有啟動的窗口。</p><p> 內(nèi)容提供者(Content Providers),聽起來有點抽象,通俗的理解Content Provider 就是提供一 種服務(wù),通過這種服務(wù)應(yīng)用程序之間可以實現(xiàn)數(shù)據(jù)的互相 訪問和共享,比如通訊錄的存儲就使用了這種服務(wù),其它應(yīng)用也可以訪問通訊
45、錄中存儲的聯(lián)系人信息。</p><p> 視圖系統(tǒng)(View System),這些View組件包括Button(按鈕),EidtView(文本框),TextView(標(biāo) 簽),List(列表)等等,靈活運用這些組件可以快速方便的創(chuàng)建良好的用戶交互界面。</p><p> 包管理(Package Manager),管理所有的安裝在Android系統(tǒng)內(nèi)的應(yīng)用程序。</p>&
46、lt;p> 除此之外,還有很多服務(wù)框架組件,如資源管理(Resource Manager)、消息通知管理(Notification Manager)、位置管理(Location Manager)、電話管理(Telephoney Manager)等等。</p><p> ?。?)系統(tǒng)運行庫層(Libraries and Android Runtime Level):</p><p>
47、 該層,是一些C/C++庫,來提供底層的支持。主要包括Bionic系統(tǒng)C庫(C語言標(biāo)準(zhǔn)庫,系統(tǒng)最底層的庫)、多媒體庫(MediaFramework)、SGL(2D圖形引擎庫)、SSL(位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,提供數(shù)據(jù)通信支持)、OpenGL ES 1.0(3D效果支持)、SQLite(關(guān)系數(shù)據(jù)庫)、Webkit(Web瀏覽器引擎)、FreeType(位圖bitmap及矢量圖vector)。</p>&l
48、t;p> 和所有的Java程序運行平臺一樣,為了實現(xiàn)Java程序在運行階段的二次編譯,Android為它們提供了運行時的支撐。Android運行時由Java核心類庫和虛擬機Dalvik共同構(gòu)成。JAVA核心類庫涵蓋了Android框架層和應(yīng)用層所要用到的基礎(chǔ)Java庫,包括Android對象庫,文件管理庫,網(wǎng)絡(luò)通信庫等。Dalvik是為Android量身打造的Java虛擬機,負(fù)責(zé)動態(tài)解析執(zhí)行應(yīng)用,分配空間,管理對象生命周期等工作
49、。</p><p> ?。?)Linux內(nèi)核層(Linux Kernel Level):</p><p> Android的Linux內(nèi)核層是基于LInux Kernel 2.6版本。Linux內(nèi)核層,主要是作為硬件和軟件棧之間的抽象層。在軟件棧視角看,Linux內(nèi)核就是“硬件”。內(nèi)核層提供如下一些驅(qū)動:顯示驅(qū)動(Display Driver)、鍵盤驅(qū)動(Keyboard Driver)
50、、Flash內(nèi)存驅(qū)動(Flash Memory Driver)、照相機驅(qū)動(Camera Driver)、音頻驅(qū)動(Audio Driver)、藍(lán)牙驅(qū)動(Bluetooth Driver,基于IEEE 802.15.1)、WiFi驅(qū)動、Binder IPC驅(qū)動(Android的一個特殊驅(qū)動程序,具有單獨的設(shè)備節(jié)點,提供進(jìn)程間通信)、Power Management(電源管理)。</p><p> 2.2 An
51、droid的四大組件</p><p> Android四大基本組件分別是Activity,Service服務(wù),Content Provider(內(nèi)容提供者),BroadcastReceiver(廣播接收器)[4]。</p><p> ?。?)Activity(活動)。Android 中,Activity是所有程序的根本,是應(yīng)用程序的顯示層,所有程序的流程都運行在Activity 之中,A
52、ctivity可以算是開發(fā)者遇到的最頻繁,也是Android 當(dāng)中最基本的模塊之一。一般一個Android 應(yīng)用是由多個Activity 組成的。這多個Activity 之間可以進(jìn)行相互跳轉(zhuǎn)。每一個畫面對應(yīng)于你的應(yīng)用程序,將會是Activity類的擴展。Activity使用Views去構(gòu)建UI來顯示信息和響應(yīng)用戶的行為。</p><p> ?。?)Services(服務(wù))。Service 是Android 系統(tǒng)中
53、的一種組件,它跟Activity 的級別差不多,但是他不能自己運行,只能后臺運行,并且可以和其他組件進(jìn)行交互。Service 是沒有界面的長生命周期的代碼。Service是一種程序,它可以運行很長時間,但是它卻沒有用戶界面。</p><p> ?。?)Content Provider(內(nèi)容提供者)。Content Provider 是Android提供的第三方應(yīng)用數(shù)據(jù)的訪問方案,提供共享的數(shù)據(jù)存儲。在Androi
54、d中,對數(shù)據(jù)的保護是很嚴(yán)密的,除了放在SD卡中的數(shù)據(jù),一個應(yīng)用所持有的數(shù)據(jù)庫、文件等內(nèi)容,都是不允許其他直接訪問的。Content Provider用來管理和共享應(yīng)用程序的數(shù)據(jù)庫。在應(yīng)用程序間,Content Provider是共享數(shù)據(jù)的首選方式。這意味著,你可以配置自己的Content Provider去存取其他的應(yīng)用程序或者通過其他應(yīng)用程序暴露的Content Provider去存取它們的數(shù)據(jù)。</p><p&g
55、t; ?。?)BroadcastReceiver(廣播接收器)。在Android 中,Broadcast是一種廣泛運用的在應(yīng)用程序之間傳輸信息的機制。而BroadcastReceiver 是對發(fā)送出來的Broadcast進(jìn)行過濾接受并響應(yīng)的一類組件。可以使用BroadcastReceiver 來讓應(yīng)用對一個外部的事件做出響應(yīng)。</p><p> 2.3 Android開發(fā)環(huán)境的搭建</p>&l
56、t;p> 2.3.1 Java JDK的安裝</p><p> 在開發(fā)之前,需要對開發(fā)環(huán)境進(jìn)行搭建和配置。其中JDK的的安裝為:</p><p> ?。?)下載最新版本的JDK,下載地址為:</p><p> http://www.oracle.com/technetwork/java/javase/downloads/index.html</
57、p><p> 可根據(jù)自己的系統(tǒng)需求選擇相應(yīng)下載[1]。</p><p> ?。?)下載完后點擊安裝,最好安裝在英文目錄下面。</p><p> (3)JDK安裝完成后,若是在命令窗口下運行和編譯JAVA程序的話,則還需要對環(huán)境變量做一些設(shè)置,但我用eclipse作為JAVA開發(fā)環(huán)境,所以不需要設(shè)置環(huán)境變量。</p><p> 至此,Java
58、 JDK安裝完畢。</p><p> 2.3.2 eclipse的下載與使用</p><p> eclipse的使用方法為:</p><p> ?。?)下載最新版本的eclipse,下載地址為:</p><p> http://www.eclipse.org/downloads/</p><p> 進(jìn)入下載
59、頁面后,選擇“Eclipse IDE for java EE Developers ”進(jìn)行下載[5]。</p><p> ?。?)eclipse是不需要安裝的,下載完成之后解壓縮,然后點擊eclipse.exe可以直接運行,在第一次運行時需要設(shè)置一個工作空間。</p><p> 2.3.3 Android開發(fā)工具的安裝</p><p> JAVA運行環(huán)境安裝好
60、之后,需要安裝Android的相關(guān)開發(fā)插件,其方法為:</p><p> ?。?)Android SDK的下載與設(shè)置</p><p> 根據(jù)自己的開發(fā)需要下載相應(yīng)的SDK版本,下載地址為:</p><p> http://www.icewalkers.com/android-sdk/3693/releases.html</p><p>
61、 (2)下載完成后解壓縮,打開eclipse,然后再eclipse的標(biāo)題欄上依次選擇:【W(wǎng)indow】 →【Preference】→【Android】,點擊Browse,選擇剛剛下載的Android SDK路徑,然后再點擊OK即可[6]。如圖2.2所示:</p><p> 圖2.2 添加Android SDK</p><p> ?。?)完成第(2)步之后再在eclipse標(biāo)題欄上依次
62、選擇:【W(wǎng)indow】 →【Android SDK Manager】,在彈出的窗口中選擇需要開發(fā)的Android開發(fā)包,可以選擇全選,如圖2.3所示,以后如果需要更新Android開發(fā)包都可以到這里來更新。</p><p> 圖2.3 Android SDK的管理和更新</p><p> 這樣Android的開發(fā)工具的安裝就全部完成了,即現(xiàn)在所有的準(zhǔn)備工作就已經(jīng)做好了,現(xiàn)在只需在ec
63、lipse里面新建工程,然后在里面開發(fā)就行了。</p><p> 2.3.4 Android工程的建立</p><p> 前面已經(jīng)做好了所有的準(zhǔn)備,那么怎樣在eclipse下面新建一個Android工程,以及怎樣讓新建的這個工程在Android虛擬機上運行起來呢?下面詳細(xì)介紹具體步驟[5]。</p><p> (1)新建一個Android工程。在eclips
64、e標(biāo)題欄上面依次選擇【File】→【New】→【Android Application Project】(也可以直接點擊工具欄上的快捷鍵),然后在彈出的窗口中填好程序名、工程名和包名,并選擇自己需要開發(fā)的Android API版本,我選擇的是Android2.3.3開發(fā)版本,如圖2.4所示。寫好之后可以點擊“Next”按鈕進(jìn)行其他的配置,也可以直接點擊“Finish”按鈕以完成工程的建立。</p><p> 圖
65、2.4 Android工程的建立</p><p> ?。?)Android工程建好之后,就需要建立一個Android的虛擬設(shè)備來運行這個工程,建立Android虛擬設(shè)備的方法步驟為:選擇【W(wǎng)indow】→【Android Virtual Device Manager】,彈出的窗口如圖2.5:</p><p> 圖2.5 Android虛擬設(shè)備的管理</p><p&
66、gt; 選擇右邊的New按鈕,在彈出的窗口中設(shè)置Android虛擬設(shè)備的配置以及選擇所需要運行的Android系統(tǒng)的版本,如圖2.6所示,點OK即可。</p><p> 圖2.6 Android虛擬設(shè)備的創(chuàng)建</p><p> ?。?)虛擬設(shè)備建立好之后,就可以運行剛剛建立的Android工程了。在工程上右鍵,然后選擇【Run As】→【Android Application】,程序
67、無錯之后eclipse就會啟動剛剛創(chuàng)建的Android虛擬設(shè)備,這和我們使用的智能手機是一樣的,首選會是漫長的開機,開機解鎖之后就可以看到剛剛的程序在運行。</p><p> 一般而言,一個應(yīng)用程序開發(fā)好之后,都需要把他弄到移動設(shè)備上進(jìn)行安裝測試,那么應(yīng)用程序怎樣把他弄到手機上呢?方法其實很簡單,只需要打開自己手機的開發(fā)人員調(diào)試功能,然后將其用USB連接到電腦上,這是你在用剛才同樣的方法運行程序時,在運行之前就
68、可以選擇你自己的移動設(shè)備進(jìn)行運行。還有一種方法就是,將運行的程序右鍵,然后選擇【Android Tools】→【 Export Unsigned Application Package】,將其APK文件導(dǎo)出到電腦或者手機上,然后再在手機上進(jìn)行安裝測試。</p><p> 3 中國象棋的走法規(guī)則與實現(xiàn)分析</p><p> 3.1 中國象棋的走法規(guī)則</p><p
69、> 3.1.1 棋盤和棋子介紹</p><p> 中國象棋是由棋盤和棋子組成的,下面就詳細(xì)的介紹這兩部分。</p><p><b> ?。?)棋盤</b></p><p> 棋子活動的場所,叫做"棋盤",在長方形的平面上,繪有九條平行的豎線和十條平行的橫線相交組成,共九十個交叉點,棋子就擺在這些交叉點上。中間第
70、五、第六兩橫線之間未畫豎線的空白地帶,稱為"河界",整個棋盤就以"河界"分為相等的兩部分;兩方將帥坐鎮(zhèn)、畫"米"字方格的地方,叫做"九宮"。如圖3.1所示。</p><p> 圖3.1 中國象棋的棋盤和棋子</p><p><b> ?。?)棋子</b></p><p>
71、 中國象棋的棋子共三十二個,分為紅方和黑方兩組,各十六個,由對弈雙方各執(zhí)一組,兵種是一樣的,分為七種:</p><p> 紅方:帥、仕、相、車、馬、砲、兵</p><p> 黑方:將、士、象、車、馬、炮、卒</p><p> 其中帥與將、仕與士、相與象、兵與卒的作用完全相同,僅僅是為了區(qū)分紅棋和黑棋。</p><p> 3.1.2
72、 中國象棋的規(guī)則和勝負(fù)的判定</p><p> 俗話說,無矩不成方圓,作為一個這么成熟的游戲也肯定會有他的規(guī)則和判定方法。中國象棋的規(guī)則和判定方法為:</p><p> ?。?)對局時,由執(zhí)紅棋的一方先走,雙方輪流各走一著,直至分出勝、負(fù)、和,對局即終了。</p><p> 輪到走棋的一方,將某個棋子從一個交叉點走到另一個交叉點,或者吃掉對方的棋子而占領(lǐng)其交叉點
73、,都算走了一著。雙方各走一著,稱為一個回合。</p><p> ?。?)中國象棋各棋子走法</p><p> 帥(將):帥和將是棋中的首腦,是雙方竭力爭奪的目標(biāo)。它只能在"九宮"之內(nèi)活動,可上可下,可左可右,每次走動只能按豎線或橫線走動一格。帥與將不能在同一直線上直接對面,否則走方判負(fù)。</p><p> 仕(士):仕(士)是帥(將)的貼身保
74、鏢,它也只能在九宮內(nèi)走動。它的行棋路徑只能是九宮內(nèi)的斜線。</p><p> 相(象):相(象)的主要作用是防守,保護自己的帥(將)。它的走法是每次循對角線走兩格,俗稱"象走田"。相(象)的活動范圍限于"河界"以內(nèi)的本方陣地,不能過河,且如果它走的"田"字中央有一個棋子,就不能走,俗稱"塞象眼"。</p><p&
75、gt; 車:車在象棋中威力最大,無論橫線、豎線均可行走,只要無子阻攔,步數(shù)不受限制。因此,一車可以控制十七個點,故有"一車十子寒"之稱。</p><p> 炮:炮在不吃子的時候,走動與車完全相同。</p><p> 馬:馬走動的方法是一直一斜,即先橫著或直著走一格,然后再斜著走一個對角線,俗稱"馬走日"。馬一次可走的選擇點可以達(dá)到四周的八個點,
76、故有"八面威風(fēng)"之說。如果在要去的方向有別的棋子擋住,馬就無法走過去,俗稱"蹩馬腿"。</p><p> 兵(卒):兵(卒)在未過河前,只能向前一步步走,過河以后,除不能后退外,允許左右移動,但也只能一次一步。</p><p><b> ?。?)吃子</b></p><p> 任何棋子走動時,如果目標(biāo)
77、位置上有對方的棋子,就可以把對方的棋子拿出棋盤,再換上自己的棋子(即"吃子")。只有炮的吃子方式與其他子不同:炮與被吃子之間必須隔一個棋子,進(jìn)行跳吃,俗稱"架炮"或"炮打隔子"。</p><p><b> ?。?)勝負(fù)的判定</b></p><p> 對局時,一方出現(xiàn)下列情況之一,就算輸棋,對方得勝:<
78、;/p><p> ?、賻?將)被對方"將死",,即被對方將軍卻無法應(yīng)將;</p><p> ?、趲?將)被"將軍",無法避免地同對方將(帥)直接對面;</p><p> ?、郾?quot;困斃",即雖未被對方將軍,本方卻已無棋可走動;</p><p><b> ?、芊馄逯ㄓ姓`;<
79、/b></p><p> ?、葑咂暹`犯禁例,應(yīng)當(dāng)變著而不變,即一方長將不變,長將一方算輸;</p><p> ⑥在同一局棋中,單方面出現(xiàn)第三次"違例";</p><p><b> ?、咦约盒颊J(rèn)輸;</b></p><p> ?、嘁蜻`犯紀(jì)律被判輸棋。</p><p>
80、 出現(xiàn)下列情況之一,為和棋:</p><p> ?、匐p方均無可能取勝的簡單局勢;</p><p> ?、谝环教嶙h作和,另一方表示同意;</p><p> ?、垭p方走棋出現(xiàn)循環(huán)反復(fù)三次,符合“棋例”中“不變作和”有關(guān)規(guī)定;</p><p> ?、芊献匀幌拗幕睾弦?guī)定,即在連續(xù)規(guī)定回合中,雙方都沒有吃過</p><p>
81、<b> 一個棋子。</b></p><p> 3.2 中國象棋的走法分析</p><p> 明白了中國象棋的走法與規(guī)則之后,就需要來分析怎樣在棋盤上實現(xiàn)中國象棋的這些走法。</p><p> ?。?)帥(將)的走法:</p><p> 圖3.2 帥(將)的走法圖</p><p>
82、帥(將)的走法如上圖3.2所示。帥和將都是是雙方的首腦和指揮者,同時下棋雙方的最主要目標(biāo)也是將死對方的帥或?qū)?。帥和將位于兩個士的中間,他們的行走只能在九宮格中,而且在九宮格中只能走橫的或者豎的直線,不能斜走,并且每次只能走一步。一旦帥或者將被吃掉則游戲結(jié)束。</p><p> ?。?)士(仕)的走法:</p><p> 圖3.3 士(仕)的走法圖</p><p>
83、; 如圖3.2所示,士(仕)是護衛(wèi),是保護帥(將)的。士(仕)的走動范圍也是在九宮格之內(nèi),但士(仕)只能走斜線,不能橫豎走,而且每次也只能走一步,所以,由圖可以看出,士(仕)的走動范圍實際上就只有5個位置。</p><p> ?。?)相(象)的走法:</p><p> 圖3.4 相(象)的走法</p><p> 如圖3.4所示,相(象)的走法只能沿著自己的對
84、角線走兩個,即所說的相(象)走田。但有些特殊的是,如果象所走的斜對角的中間有棋子(象眼),如圖中的紅色圈中的棋子,則相(象)就被堵住了而不能走那個方位的地方(如圖中4位置就不能走),在實現(xiàn)時就需要先判斷象眼處是否有棋子。還有相(象)只能在自己一方走棋而不能過河,這樣其實相(象)能走的地方其實就只有7個。</p><p><b> (4)馬的走法:</b></p><p&
85、gt; 圖3.5 馬的走法</p><p> 馬的走法如圖3.5所示。俗話說,馬踏日,這就是說,馬只能走日字,而且只能走日字的對角線,當(dāng)然,這個日字可以是橫的也可以是豎的。但是有一種特殊情況,就是如果馬腳處有棋子的話,則馬就不能走這個日字,如圖,紅色圈內(nèi)就是蹩馬腿的情況,則此時馬就不能走到1的位置。這在算法實現(xiàn)時就應(yīng)當(dāng)首先判斷馬腳出是否有棋子,有則不能走。</p><p><b
86、> ?。?)車的走法:</b></p><p> 圖3.6 車的走法</p><p> 如圖3.6所示,在整個中國象棋中,車的走法是最自由的,同時也是殺傷力最大的。在整個棋盤內(nèi),車可以橫豎任意走動或者吃子,只要在車所走的橫線或者豎線上面沒有其他的棋子所阻擋,當(dāng)然若是對方的棋子就干掉他。</p><p><b> ?。?)炮的走法:&
87、lt;/b></p><p> 圖3.7 炮的走法</p><p> 如圖3.7所示。炮在行走時他的走法規(guī)則和車的走法是一樣的,只要所走的中間沒有棋子所阻擋,則可以任意橫沖直撞。但在吃子時,炮吃子需要在自己和被吃子的中間有一個棋子作為炮架子時,才能夠轟掉對方的棋子,沒有這個炮架子時則只能走棋不能吃子,當(dāng)然這個炮架子可以是對方的棋子,也可以是自己的棋子。所以在算法實現(xiàn)時,若想吃子
88、,則首先要判斷中間是否有這個炮架子,沒有或者有多個則不能夠吃子。</p><p> (7)兵(卒)的走法:</p><p> 圖3.8 兵(卒)的走法</p><p> 如圖3.8所示為兵(卒)的走法。兵(卒)的走法分為過河前和過河后。在過河前,兵(卒)只能向前直走,而且只能走一步,還不能夠后退。當(dāng)兵(卒)過河之后,他就能夠橫走也能夠向前直走了,此時也是只能
89、走一步,仍然不能夠后退。這在算法實現(xiàn)時,就需要判斷是過河前還是過河后,并且必須設(shè)定為只能往前走。</p><p> 在所有的棋子走法中,在符合自己棋子走法規(guī)則上,還需要判斷在所走的位置是否有棋子,若有棋子,則需要判斷這枚棋子是對方的棋子還是自己的棋子,若是自己的棋子,則也不能落子,若是對方的棋子,此時就可以將對方的棋子吃掉(炮除外)。</p><p> 4 中國象棋軟件的主要功能和界
90、面布局</p><p> 4.1 中國象棋軟件實現(xiàn)的主要功能</p><p> 此次設(shè)計的中國象棋為人人對弈版,而且是單屏設(shè)計,所以所要實現(xiàn)的功能比較簡單,設(shè)計也不是很復(fù)雜。相比于人機對弈而言,我的設(shè)計不需要機器所走棋的最優(yōu)算法。而相比于雙屏人人對弈來說,我的設(shè)計又不需要實現(xiàn)藍(lán)牙或者Wi-Fi的通訊連接功能,也不需要聯(lián)網(wǎng)對弈。所以說,我的設(shè)計主要就是能夠基本實現(xiàn)中國象棋的走法設(shè)計,所
91、以由于設(shè)計比較簡單,在軟件的界面美化上就可以做的好一些。</p><p> 在Android軟件開發(fā)中,界面美化也是很重要的,這是體現(xiàn)人性化的一點。用戶對這個軟件的第一映像首先就是這個界面,其次就是主要的功能。在Android組件中,提供了很多布局方法,開發(fā)者可以很輕松的入手,并且設(shè)計出自己理想的界面。下面就介紹一下我所設(shè)計的這個中國象棋軟件的主要功能。</p><p> 設(shè)計的主要實
92、現(xiàn)的功能如下:</p><p> ?。?)進(jìn)入軟件,首先有歡迎提示,這是體現(xiàn)人性化細(xì)節(jié)的一方面。</p><p> ?。?)在軟件的第一個界面中,有“中國象棋”、“幫助”、和“退出游戲”選項,點擊“中國象棋”即進(jìn)入開始游戲選項;點擊“幫助”按鈕即彈出幫助菜單信息,里面介紹軟件的操作和游戲的玩法規(guī)則;當(dāng)點擊“退出游戲”時,即彈出退出窗口,讓用戶選擇是否退出。</p><p
93、> ?。?)點擊“中國象棋”按鈕,進(jìn)入開始游戲選項,進(jìn)入之后有第二級菜單,里面有“紅方”與“黑方”選項按鈕,并提示用戶選擇。在這里用戶可以選擇紅方或者黑方來進(jìn)行游戲。</p><p> ?。?)選好“紅方”或者“黑方”之后,即正式的進(jìn)入到了游戲當(dāng)中。進(jìn)入之后,紅方先走棋,當(dāng)用戶點擊需要走的棋子時,會有相應(yīng)的光標(biāo)提示。</p><p> ?。?)當(dāng)游戲結(jié)束,即吃掉了對方的帥(將)時,就
94、有彈出紅方或者黑方勝利的消息,然后游戲結(jié)束。</p><p> 整個軟件的主要功能流程圖為:</p><p> 圖4.1 軟件功能模塊流程圖</p><p> 4.2 軟件的主要布局與實現(xiàn)[7]</p><p> 4.2.1 開始游戲選項界面</p><p> 開始游戲選項的具體設(shè)計為:</p&g
95、t;<p> ?。?)開始的歡迎提示。在Android開發(fā)中,我們可以添加一個“TextView”文本框,并將此文本框的內(nèi)容設(shè)置成循環(huán)滾動的形式來達(dá)到顯示歡迎提示內(nèi)容,其主要代碼如下:</p><p> ?。?)設(shè)置“中國象棋”、“幫助”、“退出”按鈕。在第一個頁面布局中,添加3個“Button”按鈕,并在每個“Button”下面設(shè)置按鈕的屬性和所實現(xiàn)的功能鏈接,主要代碼為:</p>
96、<p> 其中,chessBtn是實現(xiàn)點擊“中國象棋”按鈕之后開始游戲的一個函數(shù),函數(shù)體為:</p><p> exitBtn是實現(xiàn)退出游戲的一個函數(shù),當(dāng)點擊此按鈕時,彈出窗口,提示用戶是否退出,其函數(shù)主代碼為:</p><p> helpBtn的功能是:當(dāng)點擊此按鈕時,跳出一個窗口,并顯示幫助信息,點擊確定按鈕后,返回主界面。其實現(xiàn)代碼為:</p><
97、p> 4.2.2 中國象棋選項界面</p><p> 在第一個界面中,點擊“中國象棋”即進(jìn)入第二個選擇界面,在這里,用戶可以選擇操作紅方還是黑方,這樣我們可以添加兩個RadioButton來實現(xiàn)兩者的選擇功能,其主要的代碼為:</p><p> 界面的運行效果圖,開始?xì)g迎界面如圖4.2所示,幫助窗口如圖4.3所示,退出選項如圖4.4所示,開始前選擇界面如圖4.5所示。<
98、/p><p> 圖4.2 開始?xì)g迎選項界面 圖4.3 幫助窗口</p><p> 圖4.4 退出選項 4.5 開始前選擇界面</p><p> 5 中國象棋的算法設(shè)計與實現(xiàn)</p><p> 5.1 工程的建立</p><p> 在第二章
99、中,已經(jīng)對Android工程的開發(fā)環(huán)境的搭建以及工程的建立做了詳細(xì)的介紹?,F(xiàn)在,就建立一個“中國象棋人人對弈”的工程,來實現(xiàn)中國象棋的設(shè)計。</p><p> (1)在eclipse下新建Android工程,將工程名字命名為“中國象棋人人對弈”,取Package包的名字為“huang.chao” ,并在其下面建立一個“ChessActivity”類,此類的主要功能和目的是實現(xiàn)進(jìn)入軟件之后的“中國象棋”、“幫助”
100、、“退出游戲”三個按鈕各自的功能,其實現(xiàn)的代碼和函數(shù)在4.2.1節(jié)中已經(jīng)介紹過。此為游戲在開始前所必須實現(xiàn)的功能。</p><p> ?。?)再在此工程下建立一個Package包,取名為“huang.chao.hui”,在此包先需要建立多個類,用于實現(xiàn)中國象棋中不同的功能和算法,這幾個類包括:“Chess01Activity”、“ChessMove”、“GameView”、“Rule”,這幾個類的具體實現(xiàn)的功能將
101、在后面講到。建立好之后的工程如圖5.1所示:</p><p> 圖5.1 建立好之后的工程的各個類和模塊</p><p> 5.2 工程模塊的介紹</p><p> 5.2.1 各個類主要實現(xiàn)的功能</p><p> 在軟件的開發(fā)中,一個軟件需要實現(xiàn)多個不同功能,為了便于開發(fā)和檢查錯誤,增強程序的可移植性,通常我們會把每一個功能
102、放在一個類中或者一個包中。這些類或者包均放在src目錄文件下[8]。在此次工程中,各個類的主要功能為:</p><p> (1)Chess01Activity類。此類繼承了Activity類,他在本工程中的主要作用有兩個。一是在進(jìn)入軟件之后點擊“中國象棋”時,會出現(xiàn)選擇項,是選擇紅方還是黑方,然后選擇好之后按menu鍵進(jìn)行游戲,然后他的功能就是選擇功能和menu鍵的功能;另一個功能是進(jìn)行游戲的初始化。此類是整個
103、游戲的一個公共類,是游戲的一個控制器,可以控制整個游戲的切屏操作。詳細(xì)代碼見附錄。</p><p> ?。?)ChessMove類。該類為棋子的一個走法類,包含是什么棋子(自己的或者是對方的),起始點的位置,目標(biāo)點的位置,以及估值時所用到的score。此類的代碼為:</p><p> ?。?)GameView類。該類是整個程序的核心類,是整個主游戲的界面,包括中國象棋的棋盤、棋子、還有勝利
104、時的顯示,以及玩家和對家的選擇和切換等等,該界面繼承自SurfaceView并實現(xiàn)了SurfaceHolder.Callback接口,其中包含了一個刷幀的線程類。在該類中,基本上都有對其他類的引用,以實現(xiàn)在游戲中對整個界面的操控。該類的主要代碼詳見附錄。</p><p> ?。?)Rule類。顧名思義,此類就是定義了關(guān)于中國象棋的規(guī)則類。在該類中,其他類通過調(diào)用該類中的canMove方法給出起始位置與結(jié)束位置。該
105、類是走法的核心類,中國象棋中的7類棋子,共32枚,都在這個類中明確定義了相關(guān)的走法,不僅如此,他還定義了該棋子是對方的還是自己的,以及規(guī)定了每一方的地盤,即以河界為線。其主要代碼詳見附錄。</p><p> 5.2.2 工程中其他模塊的介紹</p><p> 在工程的框架圖中我們看到,除了有幾個類外,還有其他的一些模塊,那么,這些模塊的具體作用又是什么呢?下面我們詳細(xì)來介紹。<
106、/p><p> ?。?)gen目錄。該目錄在工程中是不需要我們編寫的,但他在Android工程中尤為關(guān)鍵。當(dāng)在其他類中所定義的一些方法或者是一些資源文件,只要是引用到了,那些文件都會在該文件下所定義。比較特殊的一點是,他所定義的所有東西,他會生成一個“.R”的文件存放,而且是系統(tǒng)自動生成的,不需要用戶進(jìn)行任何修改。若是在工程中不能生成這個.R文件,則一個工程是無法運行的,即使代碼沒有錯誤。</p>&l
107、t;p> ?。?)bin目錄。這個文件是存放程序編譯和運行之后生成的一些文件。</p><p> (3)res目錄。在該文件下,又有多個子目錄文件。這是存放軟件所需要用到的一些資源文件以及軟件的一些布局文件。其中drawable、drawable-ldpi、drawable-mdpi這三個文件夾是存放軟件所需用的資源文件的,如圖片文件、聲音文件或者是視頻文件等;而layout、menu和values是軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國象棋博弈系統(tǒng)畢業(yè)設(shè)計
- 基于android平臺的中國象棋人人對弈的游戲軟件畢業(yè)設(shè)計
- 中國象棋博弈系統(tǒng)畢業(yè)設(shè)計
- 基于android平臺的中國象棋設(shè)計與實現(xiàn)
- 中國象棋博弈系統(tǒng)畢業(yè)設(shè)計.doc
- 基于android技術(shù)的中國象棋人機對弈游戲的設(shè)計與實現(xiàn)畢業(yè)設(shè)計論文
- 基于Android平臺的中國象棋設(shè)計與實現(xiàn).pdf
- 畢業(yè)設(shè)計---中國象棋網(wǎng)上對弈系統(tǒng)
- 畢業(yè)設(shè)計(論文)中國象棋對弈系統(tǒng)
- 畢業(yè)設(shè)計---中國象棋網(wǎng)上對弈系統(tǒng)
- 畢業(yè)設(shè)計---中國象棋網(wǎng)上對弈系統(tǒng).doc
- 畢業(yè)設(shè)計---智能中國象棋系統(tǒng)的設(shè)計與實現(xiàn)
- 基于android平臺中國象棋對戰(zhàn)游戲本科設(shè)計
- vc象棋游戲畢業(yè)設(shè)計---智能中國象棋系統(tǒng)的設(shè)計與實現(xiàn)
- 中國象棋(設(shè)計)
- 基于android平臺中國象棋對戰(zhàn)游戲本科設(shè)計
- 中國象棋基礎(chǔ)教學(xué)片的制作【畢業(yè)設(shè)計】
- 中國象棋對戰(zhàn)平臺博弈系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---中國象棋棋盤與棋子的設(shè)計與加工
- 基于java的中國象棋
評論
0/150
提交評論