【正文】
et廣播形式發(fā)送消息,使用端口8001。那么處于局域網(wǎng)內(nèi)部所有處于監(jiān)聽(tīng)該端口的設(shè)備都可以收到此消息,方便了群聊天室和平臺(tái)玩家信息更新的實(shí)現(xiàn)。DatagramSocket類型的socket變量綁定端口,進(jìn)行監(jiān)聽(tīng),以便接收數(shù)據(jù),接收數(shù)據(jù)調(diào)用receive()方法實(shí)現(xiàn),對(duì)接收到的數(shù)據(jù)進(jìn)行解析,就可以得到傳輸?shù)挠行畔?;發(fā)送數(shù)據(jù)時(shí)需要將待發(fā)送信息和目標(biāo)IP以及端口進(jìn)行組合形成新的格式化數(shù)據(jù),調(diào)用send()方法實(shí)現(xiàn)數(shù)據(jù)的發(fā)送。 。UDP報(bào)頭由4個(gè)域組成,其中每個(gè)域各占用2個(gè)字節(jié),具體如下:UDP源端口號(hào)、目標(biāo)端口號(hào)、數(shù)據(jù)報(bào)長(zhǎng)度、檢驗(yàn)值。在網(wǎng)絡(luò)質(zhì)量令人不十分滿意的環(huán)境下,UDP協(xié)議數(shù)據(jù)包丟失會(huì)比較嚴(yán)重。每一個(gè)數(shù)據(jù)包的前8個(gè)字節(jié)用來(lái)包含報(bào)頭信息,剩余字節(jié)則用來(lái)包含具體的傳輸數(shù)據(jù)。UDP協(xié)議的主要作用是將網(wǎng)絡(luò)數(shù)據(jù)流量壓縮成數(shù)據(jù)包的形式。 基于UDP協(xié)議的Socket通信UDP 是User Datagram Protocol的簡(jiǎn)稱, 中文名是用戶數(shù)據(jù)包協(xié)議,是 OSI 參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)。 import 。對(duì)接收到的信息使用DataInputStream進(jìn)行處理即可得到數(shù)據(jù),發(fā)送數(shù)據(jù)時(shí)使用DataOutputStream對(duì)數(shù)據(jù)進(jìn)行處理,調(diào)用writeUTF()方法發(fā)送即可。 import 。 在擁塞控制上,采用廣受好評(píng)的TCP擁塞控制算法(也稱AIMD算法),該算法主要包括三個(gè)主要部分:1,加性增、乘性減;2,慢啟動(dòng);3,對(duì)超時(shí)事件做出反應(yīng)。 首先,TCP建立連接之后,通信雙方都同時(shí)可以進(jìn)行數(shù)據(jù)的傳輸,其次,它是全雙工的;在保證可靠性上,采用超時(shí)重傳和捎帶確認(rèn)機(jī)制。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽(tīng)狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。服務(wù)器監(jiān)聽(tīng):是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)。客戶隨機(jī)申請(qǐng)一個(gè)socket,系統(tǒng)為之分配一個(gè)socket號(hào);服務(wù)器擁有全局公認(rèn)的 socket ,任何客戶都可以向它發(fā)出連接請(qǐng)求和信息請(qǐng)求。抽象出來(lái),socket實(shí)質(zhì)上提供了進(jìn)程通信的端點(diǎn),進(jìn)程通信之前,雙方首先必須各自創(chuàng)建一個(gè)端點(diǎn),否則是沒(méi)有辦法建立聯(lián)系并相互通信的。任意兩臺(tái)設(shè)備再進(jìn)行Socket通信之前,首先先要占用自己的設(shè)備,申請(qǐng)一個(gè)Socket,即發(fā)出連接請(qǐng)求,對(duì)方設(shè)備若存在且處于未被占用狀態(tài),則連接接通,兩者即可通信。第四章 中國(guó)象棋基于WIFI的通訊機(jī)制 Socket通訊簡(jiǎn)介Socket稱作“套接字”,作為UNIX的通信機(jī)制,用于描述IP地址和端口,是一個(gè)通信鏈的句柄。對(duì)和棋狀態(tài)的判斷,需要根據(jù)當(dāng)前的棋盤布局,設(shè)計(jì)一個(gè)判斷算法,判斷每一種新的棋盤狀態(tài)是否進(jìn)入和棋狀態(tài),若進(jìn)入,則自動(dòng)結(jié)束游戲和棋。 黑方勝①若黑方走棋,目標(biāo)棋子是紅方的將,即8號(hào)棋子,且該步走法是可行的,則黑方吃點(diǎn)紅方的將,黑方勝,紅方??;②若紅方棋手在游戲中主動(dòng)退出中國(guó)象棋游戲?qū)慕缑?,則系統(tǒng)判定黑方勝,紅方敗;③若紅方棋手在游戲中主動(dòng)向黑方棋手提出認(rèn)輸請(qǐng)求,則系統(tǒng)判定黑方勝,紅方敗。坐標(biāo)(0,0)到坐標(biāo)(8,4)之間的坐標(biāo)代表楚河漢界的一方,坐標(biāo)(0,5)到坐標(biāo)(8,9)之間的坐標(biāo)代表楚河漢界的另一方,即紅黑雙方各自的領(lǐng)土。規(guī)則類的設(shè)計(jì)則采用了常規(guī)的辦法,因?yàn)槠遄拥姆N類只有7種,且紅黑雙方處于棋盤的兩端,某些棋子走動(dòng)時(shí)的方向不一樣,設(shè)計(jì)時(shí)就要進(jìn)行分類討論設(shè)計(jì),供存在14中不同的判別方法來(lái)對(duì)所以的棋子走法進(jìn)行判別是否可行,每一個(gè)判別方法都對(duì)應(yīng)于其獨(dú)有的判斷算法。將、帥:只可以在己方陣營(yíng)走動(dòng),且僅限于9個(gè)點(diǎn),即己方底三行中三列形成的9個(gè)交叉點(diǎn),也就是俗稱的“九宮”,一步只可以走動(dòng)一個(gè)方格的直線距離作為本方的主將,鎮(zhèn)守大本營(yíng),雙方的主將是不能夠處于同一條直線而主將之間不存在其他的棋子進(jìn)行隔擋。一步只可以走動(dòng)一個(gè)方格的斜線距離。象、相:只可以在己方陣營(yíng)走動(dòng),且僅限于7個(gè)點(diǎn),即己方“田”字格上的7個(gè)點(diǎn),走的是斜線,走動(dòng)時(shí),起始點(diǎn)與目標(biāo)點(diǎn)構(gòu)成一條斜線,若該斜線的中點(diǎn)位置存在其他棋子,則被絆住無(wú)法走動(dòng)。當(dāng)兵卒位于己方陣營(yíng)時(shí),只可以向前走動(dòng)。炮吃子的條件是與目標(biāo)棋子在一條直線上,且兩子之間必須有且只有一個(gè)棋子作為“跳板”,讓炮進(jìn)行跳躍式攻擊。若目標(biāo)位置為空,即可走過(guò),若為對(duì)方的棋子,即可吃掉。車吃子的條件是與目標(biāo)棋子在一條直線上,且兩子之間不得存在任何其他的棋子。認(rèn)輸按鈕用來(lái)認(rèn)輸,即玩家若覺(jué)得己方以為勝算且不愿意在浪費(fèi)時(shí)間在必輸?shù)钠寰稚?,則可以直接認(rèn)輸,結(jié)束本局棋,認(rèn)輸只有在當(dāng)前游戲開(kāi)始后才是有效的,認(rèn)輸時(shí)也會(huì)出現(xiàn)如下圖35的提示信息進(jìn)行確認(rèn):圖35 游戲認(rèn)輸提示消息很多人認(rèn)為應(yīng)該設(shè)計(jì)悔棋策略,但俗話說(shuō)的好“棋場(chǎng)如人生,一著不慎滿盤皆輸”,生活尚不可后悔,何況棋乎,因此忽略中國(guó)象棋的悔棋功能,但增加點(diǎn)擊棋子后的一個(gè)顯示功能,可以看出玩家是否選擇正確,避免點(diǎn)錯(cuò)棋子的意外發(fā)生,如下圖36的提示邊框:圖36 游戲中棋子按下提示邊框認(rèn)輸按鈕和退出按鈕之間的指針,其意義在于指針的指向代表當(dāng)前輪到哪一方走棋,而紅黑兩個(gè)總時(shí)間則分別代表了紅黑雙方的走棋思考時(shí)間,當(dāng)輪到紅方走棋時(shí)啟動(dòng)紅方計(jì)時(shí)線程,當(dāng)輪到黑方走棋時(shí)紅方計(jì)時(shí)線程暫停并啟動(dòng)黑方計(jì)時(shí)線程。棋盤上需要更新的數(shù)據(jù)有棋子的位置、指向當(dāng)前走棋玩家一方的指針、玩家按下棋盤上某個(gè)位置后出現(xiàn)的提示框和紅黑雙方玩家的總思考時(shí)間,棋子位置依靠一個(gè)10*9的數(shù)組來(lái)維護(hù),代表每一個(gè)坐標(biāo)是什么棋子,總時(shí)間則依靠紅黑雙方各一個(gè)計(jì)時(shí)線程來(lái)實(shí)現(xiàn)時(shí)間的計(jì)算。中國(guó)象棋對(duì)戰(zhàn)界面設(shè)計(jì)圖31和圖32。當(dāng)處于“[等待中]”狀態(tài)和“[閑逛中]”配對(duì)成功后,“[閑逛中]”狀態(tài)的玩家也進(jìn)入游戲?qū)慕缑?,然后雙方玩家狀態(tài)都更新為“[游戲中]”。進(jìn)入對(duì)弈界面的架構(gòu)設(shè)計(jì)邏輯模型如圖23所示。 中國(guó)象棋游戲?qū)?zhàn)平臺(tái)架構(gòu)設(shè)計(jì) 中國(guó)象棋游戲?qū)?zhàn)平臺(tái)的開(kāi)發(fā),目的是實(shí)現(xiàn)一個(gè)平臺(tái),方便玩家在此尋找玩家進(jìn)行中國(guó)象棋對(duì)弈,并可以實(shí)現(xiàn)最基本的文字聊天功能,系統(tǒng)的邏輯設(shè)計(jì)模型如下圖22所示。由于Android設(shè)備的屏幕分為標(biāo)屏和寬屏兩種,因此程序設(shè)計(jì)時(shí)需要針對(duì)不同的屏幕進(jìn)行設(shè)計(jì),需要準(zhǔn)備兩套資源文件進(jìn)行適應(yīng),給程序的設(shè)計(jì)增加了難度。圖21 設(shè)備連接示意圖 圖中可以看到,無(wú)線路由器、Android操作系統(tǒng)平板電腦和Android手機(jī)均可以作為無(wú)線路由器使用,建立無(wú)線局域網(wǎng)絡(luò),用以使程序進(jìn)行通訊。平臺(tái)的運(yùn)行需要連接無(wú)線網(wǎng)絡(luò),即WIFI,因此需要無(wú)線路由器來(lái)搭建一個(gè)無(wú)線局域網(wǎng)絡(luò),而Android系統(tǒng)實(shí)現(xiàn)了自建無(wú)線網(wǎng)絡(luò)的功能,就相當(dāng)于一個(gè)路由器,只是作為路由器的終端設(shè)備是無(wú)線網(wǎng)絡(luò)的網(wǎng)關(guān),通訊中具有特殊性。第七章總結(jié),總結(jié)了中國(guó)象棋游戲?qū)?zhàn)平臺(tái)的開(kāi)發(fā),對(duì)全文進(jìn)行概括性的論述。第五章中國(guó)象棋游戲快捷對(duì)弈機(jī)制,詳細(xì)介紹了NFC近場(chǎng)通訊技術(shù),以及該技術(shù)在系統(tǒng)中的應(yīng)用。第三章中國(guó)象棋游戲規(guī)則和走法設(shè)計(jì),系統(tǒng)全面的介紹了中國(guó)象棋游戲的玩法以及代碼實(shí)現(xiàn)時(shí)的設(shè)計(jì)思路和算法,具體功能的實(shí)現(xiàn)等。本文共分為六章:第一章緒論,講述了android操作系統(tǒng)的大環(huán)境,以及系統(tǒng)中應(yīng)用到的技術(shù)和中國(guó)象棋的簡(jiǎn)介等。本文詳細(xì)講解了Android平臺(tái)上的軟件開(kāi)發(fā),以及與新技術(shù)的搭配使用,包括軟件開(kāi)發(fā)環(huán)境及平臺(tái)等的搭建,硬件的介紹,新技術(shù)如何在系統(tǒng)中完美的應(yīng)用。如果NFC技術(shù)能得到普及,它將在很大程度上改變?nèi)藗兪褂迷S多電子設(shè)備的方式,甚至改變使用信用卡、鑰匙和現(xiàn)金的方式。目前,NFC 論壇在全球擁有 70 多個(gè)成員,包括:萬(wàn)事達(dá)卡國(guó)際組織、松下電子工業(yè)有限公司、微軟公司、摩托羅拉公司、NEC 公司、瑞薩科技公司、三星公司、德州儀器制造公司和 Visa 國(guó)際組織。 NFC近場(chǎng)通訊技術(shù)現(xiàn)狀NFC近場(chǎng)通訊技術(shù)作為一種新興的技術(shù),從面市之初就有了快速的發(fā)展,不過(guò)目前相對(duì)而言仍處于初級(jí)階段,大眾并不是很熟悉,不過(guò)越來(lái)越多的手機(jī)終端開(kāi)發(fā)使用了支持NFC功能的芯片和手機(jī),使得這一技術(shù)可以很快的被大家應(yīng)用接受。常用的Socket有兩種類型,流式Socket(SOCK_STREAM)和數(shù)據(jù)報(bào)式Socket(SOCK_DGRAM)。Android操作系統(tǒng)也在不斷地進(jìn)行更新,添加更多的新技術(shù)支持的功能,完善已有的功能,android從開(kāi)發(fā)至今已經(jīng)歷的版本如下:紙杯蛋糕(Android ),甜甜圈(Android ),松餅(Android ),凍酸奶(Android ),姜餅(Android ),蜂巢(Android ),冰激凌三明治(Android ),而且新一代的果凍豆(Android )也即將面世。2011年第一季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。 Android系統(tǒng)現(xiàn)狀A(yù)ndroid操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā),最初主要支持手機(jī)。傳統(tǒng)的Socket通訊技術(shù)為大家所熟知,也是作為主要的通訊方式進(jìn)行操作的。當(dāng)前android 市場(chǎng)中的游戲多為單機(jī)版的小游戲或者是網(wǎng)絡(luò)游戲,單機(jī)游戲缺乏互動(dòng)性,而網(wǎng)絡(luò)游戲又因?yàn)橄膶氋F的上網(wǎng)流量而不太受大家的歡迎,難以推廣普及,而局域網(wǎng)對(duì)戰(zhàn)的游戲則剛好彌補(bǔ)了這兩者的不足,即可以和朋友互動(dòng)娛樂(lè),又不耗費(fèi)流量。NFC采用主動(dòng)和被動(dòng)兩種讀取模式。TCP協(xié)議通訊需要維護(hù)客戶端與服務(wù)端之間的連接,UDP協(xié)議則不需進(jìn)行客戶端和服務(wù)端維護(hù),并且不存在客戶端和服務(wù)端,通訊雙方處于對(duì)等的狀態(tài)。接入局域網(wǎng)內(nèi)的終端都會(huì)獲得一個(gè)IP,因此終端的通訊就可以以IP為橋梁進(jìn)行傳輸,只需考慮應(yīng)用層上的實(shí)現(xiàn),無(wú)需考慮底層硬件等。簡(jiǎn)單的棋規(guī),便捷的載體,使得象棋成為雅俗共賞的競(jìng)技項(xiàng)目。中國(guó)象棋發(fā)展至今已有二千三、四百年的歷史,早在戰(zhàn)國(guó)時(shí)期就有正式的記載,堪稱中國(guó)的國(guó)粹。匹馬郭令來(lái),一士汲暗在?!h(yuǎn)砲勿虛發(fā),冗卒要精汰。屹然兩國(guó)立,限以大河界。南宋詩(shī)人劉克莊長(zhǎng)達(dá)240字的五言古詩(shī)《象弈》中寫到“小藝雖難精,上智有未解。系統(tǒng)更多的安全功能通過(guò)權(quán)限機(jī)制提供。系統(tǒng)的各部分也分別使用各自獨(dú)立的識(shí)別方式。Android本身是一個(gè)權(quán)限分立的操作系統(tǒng)。如圖11所示為Android應(yīng)用程序的系統(tǒng)架構(gòu),藍(lán)色區(qū)塊代表應(yīng)用程序、管理與服務(wù)組件;綠色區(qū)塊代表數(shù)據(jù)庫(kù)組件;黃色區(qū)塊代表操作系統(tǒng)的執(zhí)行時(shí)期組件;紅色區(qū)塊代表系統(tǒng)核心與驅(qū)動(dòng)組件。但是同樣也有支持X86架構(gòu)的Android操作系統(tǒng),比如Google的Google TV就是使用一個(gè)特別定制的X86架構(gòu)版本的Android操作系統(tǒng)。包括:智慧型手機(jī),上網(wǎng)本,平板電腦,個(gè)人電腦,筆記本電腦,電視,機(jī)頂盒,MP3播放器,MP4播放器,掌上游戲機(jī),家用主機(jī),電子手表,電子收音機(jī),耳機(jī),汽車設(shè)備,導(dǎo)航儀,CD機(jī),VCD機(jī),DVD機(jī),機(jī)頂盒以及其他設(shè)備。Android操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā),最初主要支持手機(jī),2005年由Google收購(gòu)注資,并組建開(kāi)放手機(jī)聯(lián)盟進(jìn)行操作系統(tǒng)的開(kāi)發(fā)和改良,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域中。中國(guó)象棋具有悠久的歷史,經(jīng)過(guò)幾千年的流傳不斷地完善和改進(jìn),深得人們的喜愛(ài),成為人們休閑娛樂(lè)、鍛煉腦力思維的好方式。關(guān)鍵字:Android,NFC,WIFI,Socket通信,中國(guó)象棋游戲ABSTRACT Chinese Chess is a casual brain game with long history and great play Chinese Chess to Influences the sentiment and improve their intelligence,and enjoy the happiness that Chinese Chess takes Chinese Chess is still a fun game for young and the popularity of smart phone,more and more people have smart phone with Android operating people occasionally need to play Chinese Chess without real Chinese Chess for playing,this software could be a good succedaneum of real Chinese in this fasttempo society,people are more satisfied with the use of mobile mobile phone can be used in anywhere,not like the real Chiness