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

正文內容

畢業(yè)論文--基于java的手機游戲中國象棋的設計與實現(xiàn)(完整版)

2025-02-21 20:54上一頁面

下一頁面
  

【正文】 ME; WTK; Eclipse 。在我國,中國象棋的普及程度是其它棋類無法相比的,大至國際、國內比賽,小至社區(qū)街道。本設計主要是對手機游戲的開發(fā)過程的各個環(huán)節(jié)做了詳細的介紹,其中包括:手機游戲開發(fā)平臺的搭建與測試、具體設計及開發(fā)步驟、軟件測試運行與打包生成等,實現(xiàn)了經典游戲 —— 中國象棋的手機嵌入, 以便滿足一些手機用戶的娛樂需求。 中國象棋 中國象棋是我國國粹,歷史悠久,普及流行。 移動規(guī)則:它每一步只可以沿對角線方向移動一點 。 ⑥ .炮 移動范圍:任何位置 。 50年來,我國棋類項目的發(fā)展有目共睹。真正要學得精,必須要學中文,對中國文化有所了解,這樣才能真正理解象棋的精華,這對外國人而言的確比較難。導致這種現(xiàn)象的主要因素有:第一,就東亞地區(qū),圍棋的影響力勝于中國象棋。 面向對象 Java 提供了簡單的類機制和動態(tài)的構架模型。 安全性 用于網(wǎng)絡、分布環(huán)境下的 Java必須要防止病毒的入侵, Java不支持指針,一切對內存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止了程序員使用欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產生的錯誤 [3]。 ⑶ .點擊退出按鈕,然后重新打開游戲開始新的游戲 。各種棋子走法不同,最后把對方將死為勝,不分勝負則為和棋。 ⑹ .炮在不吃子的時候,走法同車一樣。 在此文件中定義了類XIActivity,這是本實例游戲控制器類,功能是在合適的時候初始化相應的用戶界面,根據(jù)其他界面的要求 切換到需要的界面。我們知道象棋是有規(guī)則的,例如馬走日,象走田。//游戲聲音 Handler myHandler = new Handler(){//用來更新 UI線程中的控件 public void handleMessage(Message msg) { if( == 1){ //WeleView或 HelpView或 GameView傳來的消息,切換到 MenuView initMenuView()。//加載歡迎聲音 (true)。//停止播放聲音 startSound = null。//畫布 while () {//循環(huán) c = null。//WeleView的引用 public WeleThread(WeleView weleView){//構造器 = weleView。 } += 15。 } } try{ (100)。amp。//睡眠的毫秒數(shù) private SurfaceHolder surfaceHolder。 go = ((), )。//棋子的背景 win = (getResources(), )。//退出按鈕圖片 sound2 = (getResources(), )。//黑炮 heiZi[4] = (getResources(), )。//紅仕 hongZi[5] = (getResources(), )。//黑色數(shù)字 5 number[6] = (getResources(), )。//紅色數(shù)字 3 redNumber[4] = (getResources(), )。 (background, 0,0, null)。 } else if(qizi[i][j] == 2){//為黑車時 (heiZi[1], 12+j*34, 13+i*35, paint)。 } else if(qizi[i][j] == 10){//為紅馬時 (hongZi[2], 12+j*34, 13+i*35, paint)。//換算時間 String timeStr = temp+。 timeStr = temp+。//紅方的冒號 int temp2 = 。//繪制 } //畫分鐘 temp2 = %60。//繪制時間數(shù)字 } if(caiPan == true){//當該玩家走棋時 ,即紅方走棋 (right, 155, 420, paint)。 } if(status == 2){//失敗后 (lost, 85, 150, paint)。 ()440+()){//按下了 聲音按鈕 = !。amp。 ()269){//點擊了確定按鈕 (1)。//發(fā)送消息,切換到 MenuView } } /** * 游戲過程中的邏輯處理 * 當點擊棋盤時,先判斷當前是否為玩家走棋, * 然后再判斷當然玩家是否已經有選中的棋子 ,如果沒有則選中 * 如果之前有選中的棋子,再判斷點擊的位置是空地、對方棋子還是自己的棋子 * 是空地判斷是否可走 * 是對方棋子同樣判斷是否可以走,能走自然吃子 * 是自己的棋子則選中該棋子 */ else if(status == 0){//游戲中 時 if(()10amp。//根據(jù)坐標換算成所在的行和列 i = pos[0]。//將該棋子設為選中的棋子 startI = i。//播放下棋聲音 } qizi[endI][endJ] = qizi[startI][startJ]。//根據(jù)當前局勢查詢一個最好的走法 if(){ ()。//不讓玩家走了 if(){ ()。//標志位設 false Move cm = (qizi)。 double x = ()。 y10+()){//點擊的是棋盤時 pos[0] = ((float)((y21)/36))。//啟動刷幀線程 (true)。//設置循環(huán)標志位為 false } catch (InterruptedException e) {//不斷地循環(huán),直到等待的線程結束 } } } class TutorialThread extends Thread{//刷 幀線程 private int span = 300。//畫布 while () {//循環(huán)繪制 c = null。//起始的坐標 int fromY。//棋子的目標點 x 坐標 = toY。//紅方時間自加 } try{ (1000)。 } if(toX8){//當右邊出界時 return false。//得帶終點棋子 if(isSameSide(moveChessID,targetID)){//如果是同一陣營的 return false。 } if((fromXtoX) != 2 || (fromYtoY。 } if(((fromYtoY)+(toXfromX))1){// 只能走一步 return false。 } if(toY9){//當下邊出界時 return false。//打印異常信息 } } } } public class GuiZe { boolean isRedGo = false。 } } public class TimeThread extends Thread{ private boolean flag = true。//目的地的坐標 int toY。 synchronized () { (c)。//SurfaceHolder 的引用 private Game gameView。//啟動思考時間的線程 } public void surfaceDestroyed(SurfaceHolder holder) {//view 被釋放時調用的 boolean retry = true。//取得所在的列 } else{//點擊的位置不是棋盤時 pos[0] = 1。//得到點擊位置的 y坐標 if(x10 amp。//切換游戲狀態(tài)為失敗 } if(){//需要播放聲音時 ()。//移動棋子 qizi[startI][startJ] = 0。//移動棋子 qizi[][] = 0。//將原來處設 空 startI = 1。 } else{//如果是對方的棋子 endI = i。 if(focus == false){//之前沒有選中的棋子 if(qizi[i][j] != 0){//點擊的位置有棋子 if(qizi[i][j] 7){//點擊的是自己的棋子。()310 amp。amp。//發(fā)送消息,切換到 MenuView } if(status == 1){//勝利后 if(()135amp。//播放音樂 } } } else{ if( != null){//gamesound 不為空時 if(()){//當前有音樂時 ()。 } } /** * 該方法是游戲主要邏輯接口 * 接受玩家輸入 * 根據(jù)點擊的位置和當前的游戲狀態(tài)做出相應的處理 * 而當需要切換 View時,通過給 Activity 發(fā)送 Handler消息來處理 * 注意的是只取屏幕被按下的事件 */ Override public boolean onTouchEvent(MotionEvent event) {//重寫的屏幕監(jiān)聽 if(() == ){//只取鼠標按下的事件 if(()10amp。//繪制向左的指針 } (current, 138, 445, paint)。//轉換成字符串 if(()2){//不足兩位時前面用 0補 timeStr2 = 0 + timeStr2。//轉換成字符串 if(()2){//當不足兩位時前面填 0 timeStr2 = 0 + timeStr2。//當長度小于 2時在前面添加一個 0 } for(int i=0。 } for(int i=0。 } else if(qizi[i][j] == 12){//為紅仕時 (hongZi[4], 12+j*34, 13+i*35, paint)。 } else if(qizi[i][j] == 4){//為黑炮時 (heiZi[3], 12+j*34, 13+i*35, paint)。//繪制棋盤 for(int i=0。//紅色數(shù)字 5 redNumber[6] = (getResources(), )。//黑色數(shù)字 7 number[8] = (getResources(), )。//紅卒 number[0] = (getResources(), )。//黑象 heiZi[6] = (getResources(), )。//黑色冒號 redtime = (getResources(), )。//失敗的圖片 ok = (getResources(), )。//初始化刷幀線程 = new TimeThread(this)。//父類的引用 private boolean flag = false。amp。//打印異常信息 } } } } public void initBitmap(){//初始化圖片資源圖片 startGame = (getResources(), )。 } += 50。 } public void run(){//重寫的 run方法 try{ (300)。 synchronized () {//同步
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1