freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的中國(guó)象棋游戲的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)論文-閱讀頁(yè)

2025-07-13 00:31本頁(yè)面
  

【正文】 tform Android , API 8 revision 2,點(diǎn)擊界面右下方Install Selected,開(kāi)始升級(jí)至 Android SDK 和 Android SDK 。4 應(yīng)用程序的總體設(shè)計(jì) 詳細(xì)規(guī)則   (1)棋盤(pán) 棋子活動(dòng)的場(chǎng)所,叫做棋盤(pán),在長(zhǎng)方形的平面上,繪有九條平行的豎線和十條平行的橫線相交組成,共九十個(gè)交叉點(diǎn),棋子就擺在這些交叉點(diǎn)上?! ?2)棋子   象棋的棋子共三十二個(gè),分為紅黑兩組,各十六個(gè),由對(duì)弈雙方各執(zhí)一組,每組兵種是一樣的,各分為七種:   紅方:帥(1)、仕(2)、相(2)、車(chē)(2)、馬(2)、炮(2)、兵(5)   黑方:將(1)、士(2)、象(2)、車(chē)(2)、馬(2)、炮(2)、卒(5) 對(duì)局時(shí),由執(zhí)紅棋的一方先走,雙方輪流各走一著,直至分出勝、負(fù)、和,對(duì)局即終了。雙方各走一著,稱為一個(gè)回合。它只能在九宮之內(nèi)活動(dòng),可上可下,可左可右,每次走動(dòng)只能按豎線或橫線走動(dòng)一格。   (2)仕(士):仕(士)是帥(將)的貼身保鏢,它也只能在九宮內(nèi)走動(dòng)。 (3)相(象):相(象)的主要作用是防守,保護(hù)自己的帥(將) 。相(象)的活動(dòng)范圍限于河界以內(nèi)的本方陣地,不能過(guò)河,且如果它走的田字中央有一個(gè)棋子,就不能走,俗稱塞象眼。因此,一車(chē)可以控制十七個(gè)點(diǎn),故有一車(chē)十子寒之稱。   (6)馬:馬走動(dòng)的方法是一直一斜,即先橫著或直著走一格,然后再斜著走一個(gè)對(duì)角線,俗稱馬走日。如果在要去的方向有別的棋子擋住,馬就無(wú)法走過(guò)去,俗稱蹩馬腿。   任何棋子走動(dòng)時(shí),如果目標(biāo)位置上有對(duì)方的棋子,就可以把對(duì)方的棋子拿出棋盤(pán),再換上自己的棋子(即吃子) 。 、應(yīng)將、將死、困斃   一方的棋子攻擊對(duì)方的帥(將) ,并在下一著要把它吃掉,稱為將軍,或簡(jiǎn)稱將。 如果被將軍而無(wú)法應(yīng)將,就算被將死。 勝負(fù)判定方法勝、負(fù)、和   對(duì)局時(shí),一方出現(xiàn)下列情況之一,為輸棋(負(fù)) ,對(duì)方取勝:   (1) 帥(將)被對(duì)方將死,即被對(duì)方將軍卻無(wú)法應(yīng)將;   (2)被困斃,即雖未被對(duì)方將軍,本方卻已無(wú)棋可走動(dòng); 16  (3)自己宣布認(rèn)輸。   出現(xiàn)以下情況,算和局:   (1) 一方輪走時(shí),提議作和,對(duì)方同意;   (2)雙方長(zhǎng)將不變,符合棋例中不變作和的規(guī)定,雙方又不愿變著時(shí)。如此寵大的護(hù)衛(wèi)部隊(duì)削弱了攻擊的 力量,另一方面卻增強(qiáng)了防御體系,即使前線戰(zhàn)士全部馬革裹尸還,也可能殺和敵軍的騷擾,這些反映出中國(guó)君王傳統(tǒng)的求穩(wěn)怕亂的心理和習(xí)慣。 中國(guó)象棋的兵(卒)只能一步步向前走,不能后退,雖有過(guò)河小卒當(dāng)小車(chē)之說(shuō),但它終究是卒,到頭無(wú)非一老卒而矣,隱喻著生死有命、富貴在天的愚民信條。象棋有法度森嚴(yán)的精神,中國(guó)象棋對(duì)棋子的限制尤為突出,區(qū)區(qū)十六個(gè)子有五個(gè)不能過(guò)河,士、象有法定的路線,馬有拐腳之制約, 縱是千里馬一旦受制也難以縱橫馳騁,表現(xiàn)著壓抑個(gè)性的封建體制。 (1)車(chē)行走規(guī)則圖 41車(chē)行走規(guī)則圖如上圖 41是車(chē)行走規(guī)則圖,首先車(chē)的位置在棋盤(pán)四角,車(chē)走直線分為橫向和縱向,如果走橫向,先判斷終點(diǎn)有沒(méi)有落子,如果沒(méi)有,就可走,如果有落子,再判斷是敵方還是自己的棋子,如果是敵方的棋子可以落到對(duì)方位置并且吃了對(duì)方的棋子,如果是自己的棋子就不可走。(3)士行走規(guī)則圖 43 士行走規(guī)則圖如上圖 43是士的行走規(guī)則圖,士位于九宮格中,起始位置在帥或?qū)⒌呐赃吪c相的旁邊,士的走法首先不能出九宮格,還有只能走斜線,實(shí)際上可走的位置只在五個(gè)地方,九宮格的四角和中心,并且判斷不能有自己一方的棋子才可走。 (4)炮行走規(guī)則圖18圖 44 炮行走規(guī)則圖如上圖 44是炮行走規(guī)則圖。(5)象行走規(guī)則圖圖 45 象行走規(guī)則圖如上圖 45是象行走規(guī)則圖。如果田的中心也就是象心有棋子的話,象就別腿了,就不能到達(dá)終點(diǎn)。(6)兵行走規(guī)則圖19圖 46 兵(卒)行走規(guī)則圖如上圖 46為兵行走規(guī)則圖。(7)將或帥行走規(guī)則圖 圖 47 將(帥)行走規(guī)則圖如上圖 47是將(帥)行走規(guī)則圖。將(帥)是象棋游戲的關(guān)鍵,一旦將(帥)這顆子被對(duì)方吃了,整個(gè)游戲就代表輸了。Chess 工程源代碼的結(jié)構(gòu)如圖 51所示。2. 輔助界面相關(guān)類的介紹通過(guò)圖 52能形象顯示出該游戲的框架。(1)游戲界面 GameView該類是整個(gè)程序最主要的類,是主游戲的界面 該界面繼承自 SurfaceView并實(shí)現(xiàn)了 其中包含了一個(gè)刷幀的線程類(2)走法類 ChessMove該類為棋子的一個(gè)走法 包含是什么棋子 起始點(diǎn)的位置 目標(biāo)點(diǎn)的位置 以及估值時(shí)所用到的 score (3)思考時(shí)間線程 TimeThread該類為計(jì)算思考時(shí)間的線程類 誰(shuí)正在思考,該類便將誰(shuí)的總思考時(shí)間加一 (4)規(guī)則類 Guize 該類是象棋的規(guī)則類,其他類通過(guò)調(diào)用 canMove方法給出起始位置與結(jié)束位置22 其他類通過(guò)調(diào)用 searchAGoodMove方法得到最當(dāng)然棋局最好的走法而其中的 allPossibleMoves方法得到的是當(dāng)前棋局的所有的走法 過(guò)程中的邏輯處理當(dāng)點(diǎn)擊棋盤(pán)時(shí),先行判斷當(dāng)前玩家是否有已經(jīng)選中的棋子,如果沒(méi)有則選中。第一步:當(dāng)點(diǎn)擊棋盤(pán)時(shí),先行判斷是否玩家走棋。第三步:如果之前有選中的棋子,再判斷點(diǎn)擊的位置是否為空地,對(duì)方的棋子還是自己的棋子。第五步:是對(duì)方的棋子同樣判斷是否可走,能走自然能吃子。amp。amp。amp。int[] pos = getPos(event)。j = pos[1]。即下面黑子selectqizi = qizi[i][j]。//標(biāo)記當(dāng)前有選中的棋子startI = i。}}}else{//之前選中過(guò)棋子if(qizi[i][j] != 0){//點(diǎn)擊的位置有棋子if(qizi[i][j] 7){//如果是自己的棋子.selectqizi = qizi[i][j]。startJ = j。23endJ = j。if(canMove){//如果可以移動(dòng)過(guò)去caiPan = false。//勝利了 }else{if(){()。//移動(dòng)棋子qizi[startI][startJ] = 0。startJ = 1。endJ = 1。//標(biāo)記當(dāng)前沒(méi)有選中棋子ChessMove cm = (qizi)。//播放下棋聲音}qizi[][] = qizi[][]。caiPan = true。endJ = j。//查看是否可走if(canMove){//如果可以移動(dòng)caiPan = false。//播放下棋聲音24}qizi[endI][endJ] = qizi[startI][startJ]。//將原來(lái)處置空startI = 1。endI = 1。//還原保存點(diǎn)focus = false。//得到一步走法 if(qizi[][] == 8){//電腦吃了您的將status = 2。//播放下棋聲音}qizi[][] = qizi[][]。caiPan = true。}Guize類是對(duì)這些規(guī)則進(jìn)行封裝,當(dāng)玩家要走某步棋的時(shí)候需要通過(guò)該類判斷是否可走。游戲的策劃是游戲開(kāi)發(fā)過(guò)和中的最重要的一個(gè)開(kāi)發(fā)環(huán)節(jié),只有寫(xiě)好了游戲策劃才能繼續(xù)游戲開(kāi)發(fā),游戲策劃是游戲開(kāi)發(fā)的一個(gè)流程,把策劃寫(xiě)好了就可以近照策劃一步步進(jìn)行開(kāi)發(fā),可見(jiàn)策劃的重要性。 棋子走法流程圖25 圖 54 棋盤(pán)位置流程圖如圖 54是棋盤(pán)形狀圖,通過(guò)經(jīng) X,Y 軸坐標(biāo)的判斷棋盤(pán)的大小,棋盤(pán)的落子位置先畫(huà)出棋盤(pán)橫線,再計(jì)算棋盤(pán)的豎線,橫線和豎線交叉的位置就是棋子的落點(diǎn)。棋盤(pán)的位置就是通過(guò)這種坐標(biāo)實(shí)現(xiàn)的。符合象棋走法規(guī)則也不一定能下,還要注意象、馬捌腿,象心等關(guān)鍵地方。26圖 55 棋子移動(dòng)流程圖如圖 55為人行走時(shí)棋子移動(dòng)流程圖,本游戲?yàn)槿藱C(jī)對(duì)弈的象棋游戲,本圖是人走的流程圖,人行走是用鼠鍵點(diǎn)擊的方式,先用鼠標(biāo)點(diǎn)擊要走的棋子獲取棋子對(duì)象,按下鼠標(biāo)拖到終點(diǎn)位置,由機(jī)器檢測(cè)通坐標(biāo)確定終點(diǎn)位置,再把棋子由起點(diǎn)位置移動(dòng)到終點(diǎn)位置。27圖 56 獲取棋子流程圖如圖 56是人或者機(jī)器移動(dòng)棋子時(shí),獲取棋子對(duì)象,使棋盤(pán)釋放棋子對(duì)象,再將釋放傳給棋盤(pán),釋放響應(yīng)事件。 游戲模擬運(yùn)行如圖 58運(yùn)行程序進(jìn)入開(kāi)機(jī)動(dòng)畫(huà)界面,也就是游戲歡迎頁(yè)面左上角是國(guó)際象棋的標(biāo)志,右邊是“中國(guó)象棋之博弈的藝術(shù)” ,還有兩張圖片和一個(gè)菜單按紐,點(diǎn)擊菜單進(jìn)入菜單欄。可以讓人在任何時(shí)間任何地點(diǎn)都可以下棋放松、休閑。關(guān)閉聲音是控制聲音的播放,由關(guān)閉聲音可以切換到開(kāi)機(jī)音樂(lè),點(diǎn)擊幫助按鈕可以進(jìn)入幫助頁(yè)面,退出游戲按鈕就是退出游戲。左下角和右下角有一個(gè)指針,當(dāng)指向黑方走時(shí),機(jī)器走一步棋,當(dāng)指向紅方的時(shí)候,人走一步棋。29圖 510 游戲界面 如圖 511是游戲勝利界面,顯示的是紅方勝利界面,黑方勝利界面同樣如此,只不過(guò)將紅將改為黑帥。 改進(jìn)和優(yōu)化陣營(yíng)選擇:一種更人性化的設(shè)計(jì)是正式進(jìn)入游戲之前,讓玩家選擇此次游戲陣營(yíng)的選擇,即選擇紅方或者黑方棋子。估值算法的優(yōu)化: 因?yàn)楸居螒騻?cè)重點(diǎn)是 Android技術(shù)的開(kāi)發(fā)應(yīng)用并非算法的介紹,所以規(guī)則中的最優(yōu)走法的方法只是從所有合法的走法中任意抽取的一個(gè)移動(dòng)棋子,在正式的人機(jī)對(duì)弈中需要對(duì)所有的走法進(jìn)行估值計(jì)算,取出對(duì)自己最有利的走法,可以對(duì)自行開(kāi)發(fā)估計(jì)算法中的規(guī)則類的 SearchAGoodMove方法進(jìn)行改進(jìn)。不管如何,Android 作為一款開(kāi)放性嵌入式操作系統(tǒng),具有較強(qiáng)的自主開(kāi)發(fā)延伸性,無(wú)論是硬件廠商還是軟件廠商或是系統(tǒng)集成商,都可以根據(jù)自身需要進(jìn)行特色鮮明的產(chǎn)品開(kāi)發(fā),并確保自己開(kāi)發(fā)結(jié)果的唯一性,這恰恰適合正在不斷從中國(guó)制造向中國(guó)創(chuàng)造轉(zhuǎn)型中的中國(guó)電子產(chǎn)業(yè),因此,如何學(xué)好并利用好 Android這樣一款面向龐大終端消費(fèi)市場(chǎng)的操作系統(tǒng)就顯得極為重要。經(jīng)過(guò)了細(xì)心的調(diào)試和排錯(cuò)解決了絕大部分的問(wèn)題。大學(xué)四年做過(guò)很多課程設(shè)計(jì),大多規(guī)模很小。因?yàn)槠涓鱾€(gè)模塊間的聯(lián)系十分緊密,代碼重復(fù)執(zhí)行率高,當(dāng)經(jīng)過(guò)無(wú)數(shù)次的調(diào)試、修改后,能最終看到成品,感到無(wú)比自豪。很多相關(guān)的技術(shù),如需要使用到的線程、Game 包的新功能、高級(jí)、低級(jí)圖形界面的使用、貼圖等,每一項(xiàng)都需要花一定的時(shí)間去掌握和熟悉。幸運(yùn)的是,互聯(lián)網(wǎng)上有那么多無(wú)私的人給了我很大的幫助。 Android 系 統(tǒng) 手 機(jī) 在 中 國(guó) 已 經(jīng) 火 熱 流 行 開(kāi) 來(lái) , 設(shè) 計(jì) 本 課 題 時(shí) 通過(guò) 查 閱 相 關(guān) 資 料 讓 自 己 了 解 到 了 更 多 Android 手 機(jī) 的 前 沿 信 息 , 理 清 軟 件 開(kāi) 發(fā) 流 程 , 進(jìn)一 步 加 固 了 對(duì) Java 知 識(shí) 的 運(yùn) 用 。在我的大學(xué)學(xué)習(xí)生活中和本次畢業(yè)設(shè)計(jì)中,金老師給予我的鼓勵(lì)和耐心指導(dǎo),為我順利完成課題奠定了堅(jiān)實(shí)的基礎(chǔ),并且給了我面對(duì)困難和解決困難的勇氣。 感謝我的輔導(dǎo)員陳雯老師,四年來(lái)一直默默的為的班級(jí)導(dǎo)航,將對(duì)未來(lái)充滿懵懂的,慢慢引入各自的發(fā)展領(lǐng)域中,無(wú)論從生活上還是學(xué)習(xí)上都給了無(wú)微不至的關(guān)心和指導(dǎo)。欽佩他們不僅是淵博的知識(shí),還有高尚的道德情操,祝我所有的老師永遠(yuǎn)平安健康快樂(lè)。感謝我的母校,給了我一個(gè)濃厚的學(xué)習(xí)氛圍,同時(shí)給了豐富的實(shí)驗(yàn)資源和圖書(shū)資源。NEW,2022.[17]鄭建,賀超. Android 和 Chrome的發(fā)展與未來(lái)[J].移動(dòng)通信,20223.[18]張鵬. 中國(guó)企業(yè)為什么青睞 android[J]. 通信世界,20223.[19] 應(yīng)用開(kāi)發(fā)詳解[M].北京:電子工業(yè)出版社,2022.[20][M].北京:水利水電出版社,2022.34[21]吳亞峰, 應(yīng)用案例開(kāi)發(fā)大全[M].北京:人民郵電出版社,2022.35附錄部分重要程序(1)public void onCreate(Bundle savedInstanceState) {//重寫(xiě)的onCreate (savedInstanceState)。getWindow().setFlags( , )。//加載歡迎聲音(true)。//游戲過(guò)程的背景聲音(true)。//初始化歡迎界面}(2)/** * 該類是象棋的規(guī)則類,其他類通過(guò)調(diào)用canMove 方法給出起始位置與結(jié)束位置 * 其他類通過(guò)調(diào)用searchAGoodMove方法得到最當(dāng)然棋局最好的走法 * 而其中的allPossibleMoves 方法得到的是當(dāng)前棋局的所有的走法 */public class GuiZe {boolean isRedGo = false。int j = 0。//起始位置是什么棋子int targetID。}if(toX8){//當(dāng)右邊出界時(shí)return false。}36if(toY9){//當(dāng)下邊出界時(shí)return false。amp。}moveChessID = qizi[fromY][fromX]。//得帶終點(diǎn)棋子if(isSameSide(moveChessID,targetID)){//如果是同一陣營(yíng)的return false。}if(((fromYtoY)+(toXfromX))1){//只能走一步return false。case 5://黑士if(toY2||toX3||toX5){//出了九宮格return false。}bre
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1