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

正文內(nèi)容

畢業(yè)論文-基于android的五子棋游戲設(shè)計與實現(xiàn)(編輯修改稿)

2024-07-09 21:09 本頁面
 

【文章內(nèi)容簡介】 private boolean isPlayer2Run(){ return whoRun==2。 } private void setPlayer2Run(){ whoRun = 2。 } //正在下的過程中,主是因為電腦有較長的計算時間,這期間一定不可以再響 應觸摸事件 private void setOnProcessing(){ 10 whoRun = 1。 } //是否正在下某一步棋過程中,主是電腦下棋時需要較長的計算時間,這期間一定不可以再響應觸摸事件 private boolean isProcessing() { return whoRun == 1。 } 改寫 onTouchEvent 方法,監(jiān)聽觸摸事件,在觸摸處下棋子 //處理觸摸事件 public boolean onTouchEvent(MotionEvent event) { //只處理開局后的觸摸彈起事件 if(()!=){ return true。 } //是否正在處理一步棋的過程中 if(isProcessing()){ return true。 } //下一步棋 playerRun(event)。 return true。 } playerRun 方法判斷輪到誰下棋子 private synchronized void playerRun(MotionEvent event){ if(isPlayer1Run()){//第一玩家下棋 player1Run(event)。 }else if(isPlayer2Run()){//第二玩家下棋 player2Run(event)。 } } 玩家一下棋的方法 private void player1Run(MotionEvent event){ //取得正確座標的棋子 Point point = newPoint((), ())。 11 if(point==null){//在棋盤外 return 。 } if((point)){//此棋是否可下 //設(shè)置正在下棋子 setOnProcessing()。 ((),point)。 //刷新一下棋盤 refressCanvas()。 //判斷第一個玩家是否已經(jīng)贏了 if(!()){//我還沒有贏 if(player2==puter){//如果第二玩家是電腦 //10 豪秒后才給玩家 2下棋 (10)。 }else{ setPlayer2Run()。 } }else{ //否則,提示游戲結(jié)束 setMode(PLAYER_TWO_LOST)。 } } } 玩家二下棋的方法 private void player2Run(MotionEvent event){ Point point = newPoint((), ())。 if(point==null){ return 。 } if((point)){//此棋是否可下 setOnProcessing()。 ((),point)。 //刷新一下棋盤 refressCanvas()。 //判斷我是否贏了 12 if(!()){//我還沒有贏 setPlayer1Run()。 }else{ //否則,提示游戲結(jié)束 setMode(PLAYER_ONE_LOST)。 } } } 實現(xiàn)判斷輸贏的方法 private final Point temp = new Point(0, 0)。 //我是否是否贏了 public final boolean hasWin(){ if(()5){ return false。 } //只計算從最后一步棋子帶來的變化 Point point = (()1)。 int count = 1。 int x=(),y=()。 //橫向 (x).setY(y)。 while (((()1)) amp。amp。 ()=0 amp。amp。 count5) { count ++。 } if(count=5){ return true。 } (x).setY(y)。 while (((()+1)) amp。amp。 ()maxX amp。amp。 count5) { count ++。 } if(count=5){ return true。 13 } //縱向 count = 1。 (x).setY(y)。 while (((()1)) amp。amp。 ()=0) { count ++。 } if(count=5){ return true。 } (x).setY(y)。 while (((()+1)) amp。amp。 ()maxY amp。amp。 count5) { count ++。 } if(count=5){ return true。 } //正斜向 / count =1。 (x).setY(y)。 while (((()1).setY(()+1)) amp。amp。 ()=0 amp。amp。 ()maxY) { count ++。 } if(count=5){ return true。 } (x).setY(y)。 While (((()+1).setY(()1)) amp。amp。 ()maxX amp。amp。 ()=0 amp。amp。 count6) { count ++。 14 } if(count=5){ return true。 } //反斜 \ count = 1。 (x).setY(y)。 while (((()1).setY(()1)) amp。amp。 ()=0 amp。amp。 ()=0) { count ++。 } if(count=5){ return true。 } (x).setY(y)。 while (((()+1).setY(()+1)) amp。amp。 ()maxX amp。amp。 ()maxY amp。amp。 count5) { count ++。 } if(count=5){ return true。 } return false。 } 提示游戲結(jié)束 //設(shè)置運行狀態(tài) public void setMode(int newMode) { currentMode = newMode。 if(currentMode==PLAYER_TWO_LOST){ //提示玩家 2輸了 ()。 currentMode = READY。 }else if(currentMode==RUNNING){ 15 (null)。 }else if(currentMode==READY){ ()。 }else if(currentMode==PLAYER_ONE_LOST){ //提示玩家 1輸了 ()。 currentMode = READY。 } } 人機對戰(zhàn) 輪到電腦下棋時,電腦先取出一個空白棋位(一個 Point 對象),以此棋位為起點計算四個方向能形成多少步連續(xù)的棋子(即假設(shè)性下棋) 此為第一次計算。對應的結(jié)果類: FirstAnalysisResult{ //棋位 Point point。 //連續(xù)數(shù) int count。 //狀態(tài) int aliveState。 //方向 int direction。 } 因為第一次計算的結(jié)果對一個棋位都會形成四個結(jié)果(每個方向一個結(jié)果)這一步將這些結(jié)果匯總到一個類對象中 第二次計算。對應的結(jié)果類對象: SecondAnalysisResult implements ComparableSecondAnalysisResult{ //棋位 Point point。 //活 4 int alive4 = 0。 //活 3數(shù)量 int alive3 = 0。 //半活 4,一頭封的 int halfAlive4 = 0。 //半活 3,一頭封的 16 int halfAlive3 = 0。 //活 2數(shù)量 int alive2 = 0。 } 對第二次計算結(jié)果進行排序,將結(jié)果分成三個等級,每個等級由一個集合裝載,由子類在排序結(jié)果挑選想要下的棋子。為了性能,在第一次計算前,必須確定一個較小的計算范圍,不能全部都算。另外,在每次找到必殺棋時,直接返回,不再往下計算。 5 游戲的實現(xiàn) 游戲主界面 游戲的主界面如圖 51所示。 圖 51 游戲主界面 17 游戲幫助界面 游戲的幫助界面如圖 52所示。 圖 52 游戲的幫助界面 五子棋介紹界面 五子棋的介紹界面如圖 53 所示。 圖 53 五子棋的介紹界面 18 游戲界面 進入游戲后的界面如圖 54 所示。 圖 54 游戲界面 退出界面 游戲退出時的界面如圖 55 所示。 圖 55 游戲退出界面 19 6 結(jié)論 在本游戲的編寫過程中,我遇到了許多的問題。首先要自己先自學一下 Android 的游戲編程,雖然和 JAVAME 的思想差不多,但是 Android 上有許多的控件和類在 JAVAME 上是沒有的,在這方面我遇到了很大的難題。還有就是對五子棋游戲的算法不是很清楚。在編碼實現(xiàn)的時候,會出現(xiàn)一些開始完全意料不到的問題,也許這些問題當中,有的是老師講過的,不過我想大部分還是老師沒有講過,這個時候就是體現(xiàn)出自己解決問題的能力的時候了。在遇到問題時要學會如何去分析錯誤,再是學會如何去解決掉這個問題。在遇到問題是,不要有害怕困難的情緒,解決問題也是一個不斷學習進步的過程,遇到的問題越多,學到的東西也就越多。因此在遇到困難之時,不要輕 言放棄,要努力向前解決問題。我在2021 年 4月開始了我的畢業(yè)論文工作,認真總結(jié),經(jīng)過長時間的寫作到現(xiàn)在論文基本完成。寫畢業(yè)論文不是一件容易的事情,需要不斷的進行精心的修改,不斷地去研究各方面的文獻。經(jīng)過很久的努力,終于在 2021 年 5 月份完成了畢業(yè)論文。在這次畢業(yè)論文的寫作的過程中,我擁有了無數(shù)難忘的感動和收獲。后來,在與導師的交流討論中我的題目定了下來 ,我便立刻在學校的圖書館和網(wǎng)上找了一些著手資料的收集工作中,當時面對眾多網(wǎng)絡(luò)資料庫的文章真是有些不知所措,不知如何下手。我將這一困難告訴了指導老師,在老師的細 心的指導下,終于使我了解了應該怎么樣利用學校的浩瀚的資源找到自己需要的青春文學方面的資源。認真的閱讀,總結(jié)筆記,為自己的論文打好基礎(chǔ)。寫作畢業(yè)論文是我們每個大學生必須經(jīng)歷的一段過程,也是我們畢業(yè)前的一段寶貴的回憶。當我們看
點擊復制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1