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

正文內(nèi)容

基于j2me五子棋手機游戲開發(fā)-閱讀頁

2024-09-20 18:12本頁面
  

【正文】 圖 (2) 初屏 圖 (3) 按下菜單后的屏幕 12 FIRMIDlet 類代碼片斷 //構(gòu)建主屏表單 public FIRMIDlet() { display=(this)。 try{ imgSplash=(/)。 } (imgSplash)。 //創(chuàng)建退出軟鍵 CMD_GO=new Command(開局 ,4,2)。//創(chuàng)建設(shè)置軟鍵 CMD_ABOUT=new Command(關(guān)于 ,5,3)。 //將退出軟鍵添加到主表單 (CMD_GO)。 //將設(shè)置軟鍵添加到主表單 (CMD_ABOUT)。 //監(jiān)聽主表單軟鍵事件 myCanvas=new FIRCanvas(this)。 //創(chuàng)建設(shè)置表單 about=new About(this)。其 UML 圖如 (1)所示,游戲截圖如 (2)所示。 Gauge 與 ChoiceGroup 組件介紹 Gauge 組件實現(xiàn)了一個圖形標尺,通常被用來表示一個過程的進展情況或者一些系列數(shù)字的選擇情況。 ? 參數(shù) maxValue是一個大于 0的整數(shù), 表示 Gauge 對象的最大值( Gauge 值的范 14 圍為 [0, maxValue]) 。 ? 參數(shù) initialValue是一個整數(shù)值,表示 Gauge 對象的初始值,它的范圍是 [0,maxValue]。 ChoiceGroup 組件用來構(gòu)造選擇框,棋構(gòu)造方法如下: ChoiceGroup(String label,int choiceType) 該構(gòu)造 方法有兩個參數(shù),其中參數(shù) label 用來設(shè)置此選項組的標簽。構(gòu)造完成后,還可以使用setLabel 方法和 getLabel 方法來分別設(shè)置和獲取對象的標簽。 ? MULTIPLE,值為 2,一次可以有多個元素被選擇。 ? POPUP,值為 4,彈出式菜單,當被選擇時,彈出選項。 15 圖 (1) Option 類的 UML 圖 圖 (2) 設(shè)置表單界面 Option 類代碼片斷 //保存記錄的方法 public void saveOptions(){ try{ RecordStore rs=(Options, true)。 bs[0]=(byte)boardSize。 //先手 bs[2]=(byte)degree。 else (bs,0,3)。 //關(guān)閉記錄 } catch(RecordStoreException e){ } } 棋子 Dot 類的實現(xiàn) Dot 類代表了現(xiàn)實中的棋子,該類主要和于記錄棋子的位置和檢查落子的合法性(是否越界)??紤]到移動設(shè)備的資源有限,以及盡可能減少系統(tǒng)資源占用,程序不在下每一步棋時生成一個對象,而是在游戲進行時,玩家或者計算機每下一步棋,在數(shù)組相應(yīng)位置生成該棋子的對象, 而將已經(jīng)下過的棋子保存到數(shù)組中隨時檢索,這樣可以避免過多的棋子對象占用系統(tǒng)內(nèi)存。 圖 Dot 類的 UML 圖 17 對戰(zhàn)邏輯 FIRlogic 類的實現(xiàn) FIRLogic 類是整個游戲的邏輯類,包含了人工智能算法,這些算法主要體現(xiàn)在對各種棋型的檢測并計算一個最佳的落子點。 落子與悔棋 當 對戰(zhàn)某一方在棋盤上落子時,就將棋盤數(shù)組的相應(yīng)位置設(shè)置為該方代碼(計算機方為 1,玩家方為 2)。此外,還使用堆棧來存儲最近的 10 步棋,以便玩家悔棋。 棋型檢測 的實現(xiàn) connectedIn1D 方法用于檢測棋盤上任意一點在指定方向上的同類棋子相連個數(shù),傳入落 子方標志(區(qū)分計算機還是玩家)、檢測位置的行列坐標和檢測方向,返回在該方向上相連棋子的個數(shù),若檢測到對方棋子或者空白棋面則停止檢測。 expandedIn1D 方法跟 connectedIn1D 方法相似,不同的是 expandedIn1D 方法是檢測自己棋子以及空白 棋子 (最多連續(xù)四空白點)的個數(shù),當遇上敵方棋子, 18 棋子邊緣或連續(xù) 5 點空白棋子,則停止檢測。 設(shè)計好 connectedIn8D 和 expandedIn8D 方法后,即可輕松地檢測棋型。 “活四”是五子棋中常見的棋型,在下棋的過程中經(jīng)常遇到,有兩個點能形成“連五”的四就是活四。amp。 只有一個點可以形成“連五”的四叫做“沖四” ,也叫做“單四” 。 “雙四” 、“四三”與“雙三” ,其檢測原理為:在某一空白點,如果落下已方的棋子,并且在不同方向分別檢測出“沖四”或者“活三” ,那么判斷為存在“雙四” 、“四三”或“雙三”情況。 按上述順序?qū)謩葸M行檢測,若檢測出相應(yīng)的棋型就在該點落子。 棋規(guī)則是:計算指定位置在某個方向上的得分,從指定位置向某個方向逐步 移動,在移動過程中發(fā)現(xiàn)已方棋了,得分權(quán)重為 5;若發(fā)現(xiàn)敵方棋子,得分權(quán)重為 3;若發(fā)現(xiàn)空白點,得分權(quán)重為 1。最后得分最高的點為最佳點,則在該點落子。 19 圖 類的 UML 圖 FIRlogic 類代碼片斷 //檢測 連續(xù)棋子數(shù)目的方法 private int connectedIn1D(int player,int row,int col,int direction){ int n=0。 //在當前位置創(chuàng)建棋子 do{ (moveOneStep(d,direction))。amp。 //計數(shù)器加 1 else return n。 } //檢測連續(xù)棋子與空白點(最多連續(xù) 4點)數(shù)目的方法 private int expandedIn1D(int player,int row,int col,int direction){ int n=0。 //循環(huán)記數(shù)器 Dot d=new Dot(row,col)。 //返回在指定方向上移動后的棋子 if(!(boardSize)) //如果超出棋盤則終止檢測 break。 //獲取棋盤在該位置的狀態(tài) if(p==0) //如果移動后的位置是空白 c++。amp。 n++。 } 游戲畫布 游戲 畫布是人機對戰(zhàn)的交互界面。除此之外, Canvas 類還定義了屏幕屬性、全屏的運行模式以及后臺運行的功能 ,其主要方法如表 。因為 Canvas 類本身并不提供具體繪制屏幕的過程,它需要依靠一個 抽象的方法向系統(tǒng)提供一個繪制屏幕的過程,這個方法就是pain,它具體定義了圖形繪制的過程。 FIRCanvas 類 實現(xiàn) FIRCanvas 類繼承了 Canvas 類,負責游戲界面的繪制,包括棋盤、棋子和狀態(tài)提示。 繪制方法:首先是繪制棋盤,在繪制區(qū)域用底色填充,然后逐條繪制行和列線條。根據(jù) getTable 返回的數(shù)組繪制棋盤的棋子,并在最后一步棋的位置繪制引導(dǎo)框。當游戲并未結(jié)束且計算機方不在思考當中時,玩家可以選擇空白處落子。引導(dǎo)框?qū)⒏S玩家的方向移動,當按下確認鍵后,則調(diào)用落子方法,進行玩家落子。amp。 Dot lastDot=()。 int c=。 int input=getGameAction(keyCode)。 (r, c)。 } else if(input==||keyCode==54){ //用戶按下右鍵 if(++cbs1) //列加 1 c=0。 repaintAt(r,c)。 (r, c)。 } else if(input==||keyCode==56){ //用戶按下下鍵 if(++rbs1) //行加 1 r=0。 repaintAt(r,c)。 //玩家落子 } } } 6. 結(jié) 束語 基于 J2ME 技術(shù) , 設(shè)計并開發(fā) 了 一款嵌入式 棋牌 類手機游戲 , 最終整套游戲以 人機對戰(zhàn)方式完成,先達到五子連株者為贏家。較為強大的人工智能,游戲具有一 定的可玩性。e, Vorderer Peter. The Video Game Experience as “True” Identification: A Theory of Enjoyable Alterations of Players39
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1