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