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

正文內(nèi)容

基于j2me五子棋手機游戲開發(fā)(編輯修改稿)

2024-10-06 18:12 本頁面
 

【文章內(nèi)容簡介】 子和算法邏輯的。 開始玩家落子判定落子合法性判定游戲是否結(jié)束計算機落子判定游戲是否結(jié)束結(jié)束NNYYYN 圖 事件驅(qū)動 游戲循環(huán) 7 C a n v a s畫 布F I R C a n v a sF I R L o g i c邏 輯D o t棋 子F I R M I D l e t主 類M I D l e tA b o u t關(guān) 于 表 單A b o u t設(shè) 置 表 單圖 類結(jié)構(gòu) 游戲的流程 游戲啟動時, FIRMIDlet 對象先顯示游戲主屏,在屏幕下方一側(cè)是退出軟鍵,另一側(cè)是用軟鍵構(gòu)成的菜單,菜單元素主要有“設(shè)置”和“關(guān)于”選項。當(dāng)玩家選擇“設(shè)置”軟鍵時,則顯示游戲參數(shù)設(shè)置表單;當(dāng)玩家選擇“開局”軟鍵時,則顯示游戲?qū)?zhàn)主屏;當(dāng)玩家選擇“關(guān)于”軟鍵時,則顯示游戲介紹表單。 玩家進(jìn)入游戲參數(shù)設(shè)置表單,當(dāng)玩家按下“確定”軟鍵 時,則確認(rèn)當(dāng)前游戲參數(shù),返回游戲主屏;當(dāng)玩家按下“取消”軟鍵時,則放棄此次對游戲的修改,直接返回游戲主屏幕。 玩家進(jìn)入游戲?qū)?zhàn)畫布,對戰(zhàn)中畫布有兩個軟鍵,當(dāng)玩家按下“退出”軟鍵時,則退出游戲;當(dāng)玩家按下“悔棋”軟鍵時,則進(jìn)行悔棋操作;當(dāng)游戲結(jié)束時,“悔棋”軟鍵被換成“重玩”軟鍵。 整個游戲的界面切換流程圖如圖 所示。 8 圖 游戲的界面切換游戲圖 五子棋的人工智能 人工智能也就是所謂的 AI(Artificial Intelligence),它是一門很抽象的技術(shù)(或者也可以稱之為藝術(shù) ),游戲中的 AI可以在遵循一定規(guī)則的情況下,依程序設(shè)計者本身的思考邏輯制作。 可以這樣認(rèn)為,人工智能的核心是使計算機具有自動處理事件的能力,而設(shè)計者的所有研究也應(yīng)該圍繞著這一方向進(jìn)行。 最常見的 AI游戲就是棋盤式游戲。在這類游戲中,通常的策略類 AI 程序都是使計算機根據(jù)目前狀況計算所有可走的棋與可能的獲勝狀況,并計算當(dāng)前計算機可走棋步的獲勝分?jǐn)?shù)或者玩家可走棋步的獲勝分?jǐn)?shù),然后再決定出一個最佳法。下面介紹一下五子棋的 AI構(gòu)想。 五子棋的獲勝組合 在一 場五子棋的游戲中,計算機必須要知道有哪些獲勝組 合,因此我們必須求得獲勝組合的總數(shù)?,F(xiàn)在假定當(dāng)前的棋盤為 15x15: 1) 計算水平方向的獲勝組合數(shù),每一列的獲勝組合是 11,共 15 列,所以水平方向的獲勝組合數(shù)為: 11x15=165。 9 2) 計算垂直方向的獲勝組合數(shù),每一行的獲勝組合是 11,共 15 列,所以垂直方向的獲勝組合數(shù)為: 11x15=165。 3) 計算正對角線方向的獲勝組合數(shù),正對角線上的獲勝組合總數(shù)為 11+( 10+9+8+7+6+5+4+3+2+1) x2=121。 4) 計算反對角線方向的獲勝組合數(shù),反對角線上的獲勝組合總數(shù)為 11+( 10+9+8+7+6+5+4+3+2+1) x2=121。 這樣所有的獲勝組合數(shù)為: 165+165+121+121=572。 設(shè)計獲勝棋型 我們已 經(jīng)計算出了一個 15x15 的五子棋盤會有 572種獲勝方式,這樣我們可以利用數(shù)組建立一些常規(guī)棋型,棋型主要作用是:判斷是否有任何一方獲勝;根據(jù)當(dāng)前格局判斷最可能的落子方式。 然而在現(xiàn)實中,人們總結(jié)了很多能夠構(gòu)成獲勝棋型的“前奏” ,它們是通向勝利的捷徑,如“沖四” 、“活三” 、“雙三”等等。 MIDlet 簡介 MIDlet 是用 J2ME APIs 開發(fā)的程序 ,用于移動計算環(huán)境中。 MIDlet 需要一個特殊的運行環(huán)境,這個環(huán)境主要包含一個應(yīng)用程序管理器,它為在移動設(shè)備上選擇和運行 MIDlet 提供方便。 10 MIDlet 生命周期 所有 MIDlet都繼承自 ,該類包含了 MIDP平臺控制應(yīng)用程序執(zhí)行過程的方法。 當(dāng) MIDlet 被 初始化 后就進(jìn)入它的生命周期,該生命周期包含三種狀態(tài):激活態(tài)( Active)、暫停態(tài)( Paused)和銷毀態(tài)( Destroyed) ,這三種狀態(tài)的控 制完全由 JAM 來完成。當(dāng)出現(xiàn)狀態(tài)遷移時, JAM 會自動調(diào)用相應(yīng)的方法, MIDlet狀態(tài)遷移圖如 所示。 J A M 初 始 化M I D l e t暫 停 狀 態(tài)( P a u s e d )激 活 狀 態(tài)( A c t i v e )調(diào) 用 s t a r t A p p 方 法調(diào) 用 P a r s e A p p 方 法銷 毀 狀 態(tài)( D e s t r o y e d )調(diào) 用 d e s t r o y A p p 方 法調(diào) 用 d e s t r o y A p p 方 法 圖 MIDlet 狀態(tài) 遷移觸發(fā)的方法調(diào)用 JAM 加載 MIDlet 后,首先進(jìn)行初始化的工作,然后將狀態(tài)設(shè)置暫停態(tài),如果在初始化過程中沒有出現(xiàn)異常,那么將 MIDlet 的狀態(tài)設(shè)置為激活狀態(tài),否則將 MIDlet 的狀態(tài)設(shè)置為銷毀狀態(tài)。在每次狀態(tài)轉(zhuǎn)換的時候都要高用相應(yīng)的方法。 11 主類 FIRMIDlet 類 的實現(xiàn) FIRMIDlet類 繼承了 MIDlet 類, 負(fù)責(zé)程序的啟動和屏幕切換,該類用高級界面中的軟鍵來實現(xiàn)游戲菜單,在不同的手機上,軟鍵可能有不同的分布。FIRMIDlet 類的 UML 圖如圖 (1)所示,主界面如圖 (2)與 (3)所示。 圖 FIRMIDlet 類的 UML 圖 圖 (2) 初屏 圖 (3) 按下菜單后的屏幕 12 FIRMIDlet 類代碼片斷 //構(gòu)建主屏表單 public FIRMIDlet() { display=(this)。 form=new Form(null)。 try{ imgSplash=(/)。//加載屏幕圖片 } catch(IOException e){ imgSplash=(1, 1)。 } (imgSplash)。 CMD_EXIT=new Command(退出 ,7,1)。 //創(chuàng)建退出軟鍵 CMD_GO=new Command(開局 ,4,2)。 //創(chuàng)建開局軟鍵 CMD_OPTION=new Command(設(shè)置 ,1,3)。//創(chuàng)建設(shè)置軟鍵 CMD_ABOUT=new Command(關(guān)于 ,5,3)。//創(chuàng)建關(guān)于軟鍵 (CMD_EXIT)。 //將退出軟鍵添加到主表單 (CMD_GO)。 //將開局軟鍵添加到主表單 (CMD_OPTION)。 //將設(shè)置軟鍵添加到主表單 (CMD_ABOUT)。 //將關(guān)于軟鍵添加到主表單 (this)。 //監(jiān)聽主表單軟鍵事件 myCanvas=new FIRCanvas(this)。 //創(chuàng)建畫布 options=new Options(this)。 //創(chuàng)建設(shè)置表單 about=new About(this)。 //創(chuàng)建關(guān)于表單 } 游戲介紹表單的實現(xiàn) About是游戲介紹表單 類, 主 要是向玩家闡述五子棋的一些信息。其 UML 圖如 (1)所示,游戲截圖如 (2)所示。 圖 (1) About 類的 UML 圖 13 圖 (2) 關(guān)于表單界面 游戲設(shè)置表單的實現(xiàn) 游戲設(shè)置表單 Option 類用來對游戲的參數(shù)進(jìn)行設(shè)置,包括棋盤大小,游戲難度,是否先手,過程中使用了 Gauge 和 ChoiceGroup 兩種高級用戶界面組件。 Gauge 與 ChoiceGroup 組件介紹 Gauge 組件實現(xiàn)了一個圖形標(biāo)尺,通常被用來表示一個過程的進(jìn)展情況或者一些系列數(shù)字的選擇情況。 Gauge 的構(gòu)造方法根據(jù)指定的標(biāo)簽、交互模式、最大值、初始值生成一個新的 Gauge 對象,原型如下: Gauge( String label,Boolean interactive,int maxValue,int initialValue) ? Gauge 構(gòu)造方法有 4 個參數(shù): label、 interactive、 maxValue、 initialValue ? 參數(shù) label 用作 label 對象的標(biāo)簽,設(shè)置為 null 表示標(biāo)簽為空 ? 參數(shù) interactive 是一個 boolean 變量,表示這個 Gauge 對象的交互模式,設(shè)置為 true 表示交互模式,即用戶可以改變 Gauge 對象的值:如果設(shè)置為 flase,則表示非交互模式,即用戶不可以改變 Gauge 的值。 ? 參數(shù) maxValue是一個大于 0的整數(shù), 表示 Gauge 對象的最大值( Gauge 值的范 14 圍為 [0, maxValue]) 。這個值必須大于 0,否則會拋出 IllegaArgumentException。 ? 參數(shù) initialValue是一個整數(shù)值,表示 Gauge 對象的初始值,它的范圍是 [0,maxValue]。如果 initialValue小于 0,則 Gauge 對象的初始值被設(shè)置為 0;如果 initialValue大于 maxValue,則
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1