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

正文內(nèi)容

基于j2me的手機(jī)五子棋游戲的設(shè)計與實(shí)現(xiàn)(參考版)

2025-06-21 17:03本頁面
  

【正文】 于是我分析了幾種算法,加上自己的理解,選擇了合適的方式組織了代碼。后來通過網(wǎng)絡(luò)尋找對應(yīng)的視頻學(xué)習(xí)相關(guān)知識,再加上老師的指導(dǎo),一點(diǎn)點(diǎn)進(jìn)行下去。要使得編寫的代碼更加有條理,更加符合軟件工程的標(biāo)準(zhǔn),之前的需求分析以及架構(gòu)設(shè)計是很重要的。即使是對于一個并不大的程序,代碼的組織都是非常重要的,因?yàn)檫@關(guān)系到日后的維護(hù)以及擴(kuò)展。但是由于能力和時間的關(guān)系,總是覺得有很多不盡人意的地方,譬如功能不是很多、外觀比較粗糙等等。6 結(jié) 束 語畢業(yè)設(shè)計基本完成。界面簡單,沒有過多復(fù)雜的場景畫面,原本準(zhǔn)備擴(kuò)展Image類的使用,考慮制作動圖或者在Form窗口放置圖像,沒有完全成功。 圖510 菜單選擇項(xiàng)顯示可以實(shí)現(xiàn)“悔棋”、“重玩”功能,開始忽略了不能悔棋的情況,后添加判斷語句,使用Alert類增加了無法悔棋的消息提示。 圖59 “贏”結(jié)果顯示選擇“重玩”,可以重新開始本局,回到棋盤界面。此次對弈結(jié)果如圖59所示。b)進(jìn)入黑白棋子選擇界面后,讓機(jī)器選擇黑子先手,玩家選擇白子。圖56 提示信息若中途希望暫時停止,選擇菜單項(xiàng)中的“暫?!?,結(jié)果如圖57所示。假設(shè)走棋結(jié)果機(jī)器獲勝,結(jié)果如圖55所示。圖52選擇棋子界面“開始游戲”后,先是玩家選擇黑子先手,則進(jìn)入棋盤界面,如圖53所示。若希望機(jī)器先行,選擇白子。 測試結(jié)果 a) 選擇“DefaultColorPhone”模擬器平臺運(yùn)行程序;開始界面后,游戲說明界面如下所示:YY游戲開始及說明界面如圖51所示。在開發(fā)工具所提供的四種模擬器下或者下載至手機(jī)上試運(yùn)行?!鞍缀袦y試”指的是測試者清楚待測對象內(nèi)部工作機(jī)制的測試;“黑盒測試”指的是測試者無需了解測試對象內(nèi)部工作機(jī)制的測試。沒有經(jīng)過測試的軟件是無法大量投入使用的,因?yàn)樗鼰o法保證可以在用戶那邊健壯地運(yùn)行。如圖412簡單體現(xiàn)了判斷的方法。首先,獲取當(dāng)前下棋點(diǎn)(x,y)和棋子的顏色;然后以(x,y)點(diǎn)向上、下、左、右、左上、右上、左下、右下各最多移動4個點(diǎn);接著計算連續(xù)的相同顏色的棋子;有連續(xù)5個相同的棋子則return true;給出本次棋局結(jié)果。 根據(jù)各種情況,設(shè)計的主要算法如下圖411所示。雙四:由于黑方走一著在無子交叉點(diǎn)上同時形成二個或二個以上黑方“四”的局面。跳活三:中間僅間隔一個無子交叉點(diǎn)的連三,但兩端延長線均至少有一個無子的交叉點(diǎn)與此三子相連?!盎钊狈譃椤斑B活三”和“跳活三”。 沖四:只有一個點(diǎn)能形成“連五”的四叫做“沖四”,或者叫做“單四”。 由于不考慮禁手問題,在實(shí)現(xiàn)“連五”過程中,可以考慮完成“雙四”,“四三”,“雙三”,“沖四”,“活三”,“活四”來實(shí)現(xiàn)目的。 對戰(zhàn)一方落子后,在該處向8個方向檢測連續(xù)的同類棋子,如果檢測到直線方向上存在5個連續(xù)的同類棋子,則判斷為“連五”并結(jié)束檢測。 走棋算法 對于五子棋游戲,主要就是判斷棋盤上是否存在五子連珠情況,這既是游戲名字的由來,也是游戲結(jié)束的標(biāo)志。一般數(shù)字越小,在列表中的級別就越高。表411 方 法 描 述命令類型BACK 導(dǎo)航命令,要求返回顯示前一個屏幕 CANCEL 取消當(dāng)前的屏幕對話框動作EXIT 離開當(dāng)前狀態(tài)HELP 要求顯示在線幫助信息ITEM 該命令向MIDlet實(shí)例暗示顯示item或choice元素OK 用戶用來確認(rèn)當(dāng)前動作SCREEN 規(guī)范另一個虛擬鍵運(yùn)行的動作,屬于當(dāng)前屏幕STOP 停止一些程序、操作的運(yùn)行續(xù)表411方 法 描 述方法Command(String label,int mandType,int priority)構(gòu)造一個新的命令int getCommandType() 返回命令類型String getLabel() 獲取標(biāo)簽int getPriority() 獲取優(yōu)先級設(shè)計舉例:public class StartGame extends List implements CommandListener {private Command ok = new Command(完成, , 1)。命令種類為規(guī)范所使用的命令意義,定義八種命令形式。動作定義在CommandListener,并且結(jié)合顯示狀態(tài),主要提供接口與使用者交互模式。手機(jī)鍵盤與平常設(shè)備鍵盤不同,命令的執(zhí)行主要通過mand類設(shè)計。接著,以一定的頻率反復(fù)執(zhí)行這一任務(wù)。下面是一個重復(fù)按鍵功能的詳細(xì)步驟:首先,建立一個需要重復(fù)執(zhí)行的任務(wù)。當(dāng)按鍵一直沒有釋放時,這個功能將一直將被反復(fù)地執(zhí)行。 模擬重復(fù)按鍵:首先分析重復(fù)按鍵功能是如何實(shí)現(xiàn)的。hasRepeatEvents()方法通常是在keyRepeated()方法中調(diào)用的,典型的代碼如下:protected void keyRepeated(int keyCode){ if(hasRepeatEvents()) { keyPressed(keyCode)。可以通過MIDP的編程來模擬重復(fù)按鍵功能,雖然本次游戲設(shè)計中涉及這個內(nèi)容不是很多,在此還是闡述一下這一功能: 判斷系統(tǒng)是否支持重復(fù)按鍵:在決定使用MIDP模擬重復(fù)按鍵前,首先應(yīng)該在程序中判斷MDlet運(yùn)行的設(shè)備是否支持重復(fù)按鍵功能。 目前,并不是所有的電話都具有重復(fù)按鍵功能,但是在很多情況下程序中又非常需要使用重復(fù)按鍵功能。使用這些按鍵可以確保應(yīng)用程序在任何符合MIDP規(guī)范的移動設(shè)備上運(yùn)行。 上述按鍵代碼包括數(shù)字0~星號和#號。 在MIDP中,每一個按鍵事件將產(chǎn)生一個按鍵代碼。 用戶按鍵設(shè)計 游戲是交互的,因此在游戲中一個重要的內(nèi)容就是響應(yīng)用戶的按鍵操作。 ()。在Alert中,可以通過setTimeout()方法來設(shè)定間隔的時間,setImage()來定義圖片,setString() 來定義內(nèi)含文字,同時通過getType(),getImage(),getString()來取得相應(yīng)的對象。使用time alert時,開啟一定時間,窗口自動小時;調(diào)用Alert類的setTimeout()方法,如果,可以具備modal Alert對話框的特性。在有錯誤信息或者其它異常狀況時,會提供一個警告窗口,窗口可以包含文字和圖片。表410 類 型 描 述ALARM 警告用戶一個先前要求通知的消息CONFIRMATION 提示用戶完成相關(guān)動作或事件的確認(rèn)音效續(xù)表410ERROR 指出有一些錯誤發(fā)生INFO 指出一些需要的消息WARNING 警告用戶一類Alert在一定的時間內(nèi)顯示一個信息,然后自我銷毀;另一類等待用戶的確認(rèn),可以理解為有模式的Alert。AlertType 共有5個類型:ALARM(警報),CONFIRMATION(確定),ERROR(錯誤),INFO(信息提示),WARNING(警告)。表49 方 法 描 述Alert(String title) 構(gòu)造一個簡單的Alert,它會在經(jīng)過一個系統(tǒng)定義的時間后自動消失Alert(String title,String alertText,Image alertImage,AlertType alertType)使用一個標(biāo)題、一個消息、一個圖像和一個類型來構(gòu)造一個Alertint getDefaultTimeout() 獲取MID使用的默認(rèn)超時時長Image getImage() 獲取Alert的圖像String getString() 獲取Alert的字符串AlertType getType() 獲取當(dāng)前類型void setImage(Image img) 設(shè)置圖像void setTimeout(int time) 設(shè)置超時時長常數(shù)名稱 說 明EXCLUSIVE 只能選擇列表中的單個項(xiàng)目 MUTIPLE 可以選擇多項(xiàng)IMPLICIT 選擇一項(xiàng)時Command事件會執(zhí)行void setType(AlertType type) 設(shè)置類型void setString(String str) 設(shè)置Alert的消息設(shè)置Alert的類型,AlertType類提供自動的警告方式。因?yàn)樗且粋€screen,所以接管整個屏幕。圖410菜單選擇界面 設(shè)計中,對游戲中的部分疏忽給予提示,使用到Alert類。表47 方 法 描 述List(String title,int listType) 用特定的標(biāo)題和list類型來創(chuàng)建一個listList(String title,int listType,String[] stringElements,Image[] imageElements)使用預(yù)先定義的一組選項(xiàng)和相應(yīng)的圖像來構(gòu)造一個listint append(String stringPart,Image imagePart)添加一個元素(choice)到一個列表(也可指定一個可選的圖像)void set(int elementNum,String stringPart,Image imagePart)直接設(shè)置一個元素的字符串和圖像Image getImage(int elementNum) 返回與一個元素相關(guān)的圖像String getString(int elementNum) 返回與一個元素相關(guān)的字符串boolean isSelected(int elementNum) 返回一個布爾值,表明一個特定的選項(xiàng)是否被選中int getSelectedIndex() 獲取當(dāng)前被選中選項(xiàng)的索引值List類對象中,listType定義的參數(shù)為Choice類型的三個常數(shù),如表48所示。命令c在Displayable d上被執(zhí)行時觸發(fā)了對這個方法的調(diào)用List可以給用戶顯示一組備選項(xiàng)的組件。表46 方 法 描 述void addCommand(Command cmd) 增加一個新的命令void removeCommand(Command cmd) 刪除一個命令void setCommandListener(Command Listener 1)設(shè)置一個CommandListener,將Command設(shè)置到當(dāng)前顯示,取代之前的CommandListener。一個MIDlet中可以有多個Displayable對象,但是在特定的時間只能有一個在屏幕中,示意圖如圖49所示。也可以是附有選擇按鈕的列表與附有復(fù)選框的列表。 Form類是能夠?qū)⒁粋€以上的圖像,文本,Item類的子類混合顯示的組件,本游戲設(shè)計中涉及使用很少。在通常情況下,報警僅僅顯示文本信息,但是實(shí)際上報警可以顯示圖像和發(fā)出聲音。 一個Alert是在屏幕上顯示的一個信息,可以用來提示用戶出現(xiàn)一個需要注意的信息。下面的代碼展示了如何創(chuàng)建Image對象: Image img。Image類的Static方法,提供了從byte數(shù)組中提取Image對象,以及指定與MIDlet 相同JAR文件內(nèi)的PNG文件的路徑后獲取對象的功能。PNG與GIF格式相比,文件有時較大,但不需支付版權(quán)費(fèi)用。如圖48所示。Displayable類的子類大致可以分為兩種,分別為用來進(jìn)行線與圖形,圖像的低級描繪類,與用于顯示警告與文本的輸入,選擇列表等UI組件類。因此,我們要使用提供了管理畫面顯示功能的ja。使用Image類中的createImage函數(shù)可從整圖中分割出所需要的元素。PNG格式圖片中包含許多定義其圖片特性的冗余部分(Chunks)。目前,大多數(shù)手機(jī)游戲均采用PNG作為主要的圖形資源。,還支持RGB字節(jié)數(shù)組的格式。為了消除這種現(xiàn)象,游戲都采用了緩沖技術(shù)。游戲循環(huán)的每一幀當(dāng)中,繪圖部分占去了80%以上的時間,減少繪圖函數(shù)的調(diào)用次數(shù)可以大幅度提高游戲運(yùn)行的速度,達(dá)到更好的效果。由于手機(jī)游戲運(yùn)行的速度及其大小通常和手機(jī)游戲中繪制的圖像和使用的圖片有很大的關(guān)系,為了手機(jī)游戲性能更好及其容量不大,對圖形資源處理的時候要遵循以下幾個原則:移動設(shè)備可供裝在移動應(yīng)用的空間有限,可供應(yīng)用使用的內(nèi)存空間也有限,游戲中往往會用到大量的圖片,減小圖片的尺寸就能直接的節(jié)省ROM和RAM的大小。這樣理解,就有了兩個緩沖區(qū),一個在屏幕上,另一個在屏幕外,可以在任何時間在上面繪圖。但是,在游戲循環(huán)中,這么做會出現(xiàn)問題。繪制圖像通常是在paint方法中加入代碼。 (x * h0 + x0 h0 / 2, y * h0 + y0 h0 / 2, h0, h0)。(x0 + h0 * i, y0, x0 + h0 * i, y0 + h0 * 15)。 i 16。 y0 = (maxH h0 * 15) / 2。} h0 = (minV 16) / 15。使用上述方法繪制棋盤,先是求得每個單元格的高度和棋盤左上角的坐標(biāo):if (maxW maxH) { minV = maxH。Public void fillRect(int x,int y,int width,int height)可以繪制起始坐標(biāo)為x,y點(diǎn)、
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1