二維手機游戲-五步棋_第1頁
二維手機游戲-五步棋_第2頁
二維手機游戲-五步棋_第3頁
二維手機游戲-五步棋_第4頁
二維手機游戲-五步棋_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、二維手機游戲?qū)嶒瀳蟾孳浖Q 五步棋 作者姓名邵飛飛 作者學(xué)號201226630309 專業(yè)班級 軟件工程1203 所在學(xué)院計算機科學(xué)與技術(shù)學(xué)院 編寫日期2015年06月19日 目 錄1.游戲界面設(shè)計31.1游戲模式選擇界面31.1.1語言概述31.1.2 圖片展示31.2 游戲棋盤界面31.2.1 語言概述31.2.2 圖片展示42.游戲設(shè)計52.1設(shè)計目的52.2 游戲結(jié)構(gòu)設(shè)計52.2.1 總體設(shè)計52.2.2 游戲模塊類設(shè)計63. 程序的開發(fā)和功能演示83.1 開發(fā)難點解析83.1.1 畫棋盤83.1.2 聯(lián)機模式的實時更新界面。93.1.3 實時判斷是否湊齊5步棋的5步了113.2.

2、功能演示133.2.1 圖片演示133.2.2 視頻演示151.游戲界面設(shè)計1.1游戲模式選擇界面1.1.1語言概述模式選擇界面要包含兩部分。第一部分是單機模式按鈕,第二部分是聯(lián)機模式按鈕。1.1.2 圖片展示1.2 游戲棋盤界面1.2.1 語言概述游戲棋盤要盡量的大,這樣的話也比較像真正的棋盤,下棋起來也比較有感覺。因為該游戲中共有兩種模式,一種單機,一種聯(lián)機。所以這兩個的棋盤所在的activity界面應(yīng)該不同。單機版的棋盤是以每格50像素的大小確定的,根據(jù)手機屏幕的大小會顯示不同格數(shù)的棋盤。聯(lián)機版的棋盤是固定的,9行,15列。但是每格的大小是不同的,大小是有由具體手機的屏幕大小決定的。由于

3、這些圖片都是我自己的手機上截下來的,所以單機盤棋盤和聯(lián)機版棋盤是一樣的。1.2.2 圖片展示單機模式聯(lián)機模式2.游戲設(shè)計2.1設(shè)計目的該款游戲主要作用是用來下五步棋的,它可以是一個手機上的單機游戲,也可以是兩個手機進行聯(lián)機打游戲。2.2 游戲結(jié)構(gòu)設(shè)計2.2.1 總體設(shè)計2.2.2 游戲模塊類設(shè)計 單機模塊類設(shè)計 聯(lián)機模塊類設(shè)計3. 程序的開發(fā)和功能演示3.1 開發(fā)難點解析3.1.1 畫棋盤首先在用到的重現(xiàn)加載onDraw方法。對于畫的設(shè)置是用到了Paint這個類。代碼:Overrideprotected void onDraw(Canvas canvas) / TO

4、DO Auto-generated method stubsuper.onDraw(canvas); Paint paint1=new Paint();paint1.setColor(Color.BLACK);for(int i=0;imaxRows;i+)canvas.drawLine(x0, y0+i*D,x0+(maxColx-1)*D ,y0+i*D, paint1);/化橫線for(int i=0;imaxColx;i+)canvas.drawLine(x0+i*D, y0, x0+i*D, y0+(maxRows-1)*D, paint1);/畫豎線canvas.drawBitma

5、p(stop, 500, 1000, paint1);/*paint1.setColor(Color.CYAN);/青色,介于藍色和綠色之間paint1.setTextSize(50);canvas.drawText(我的五子棋, 250, 80, paint1);*/for(int i=0;imaxRows;i+)for(int j=0;j0)/判斷棋盤是否被占用if(chessij=1)paint1.setColor(Color.BLACK);else paint1.setColor(Color.WHITE);/System.out.println(chessij);canvas.draw

6、Circle(x0+j*D, y0+i*D, 20,paint1);/System.out.println(x0+j*D); checkWinner();if(winner0)paint1.setColor(Color.RED);paint1.setTextSize(70);String s=winner=1?黑子贏了:白子贏了;/1是黑棋贏了,2是白棋贏了 canvas.drawText(s, 100, 300, paint1); /* try Thread.sleep(5000);rePlay(); catch (InterruptedException e) / TODO Auto-ge

7、nerated catch blocke.printStackTrace(); */ /顯示我要悔棋paint1.setTextSize(50);paint1.setColor(Color.BLUE);canvas.drawText(悔棋, 300, 1000, paint1);/public void drawText (String text, float x, float y, Paint paint).canvas.drawBitmap(start, 100, 1000, paint1);/開始游戲paint1.setTextSize(30);paint1.setColor(Color

8、.WHITE);canvas.drawText(重, maxColx*D+30,maxRows*D/2-20, paint1);/(先X,后Y)canvas.drawText(新, maxColx*D+30,maxRows*D/2, paint1);canvas.drawText(來, maxColx*D+30,maxRows*D/2+20, paint1);3.1.2 聯(lián)機模式的實時更新界面。首先兩個人進行下棋,一個人下完一步棋后會把這步棋的數(shù)據(jù)存入電腦的服務(wù)器中,而另一個人就得不斷的訪問數(shù)據(jù)庫,把變化了的數(shù)據(jù)取出來,然后重新畫界面。代碼:new Thread(new Runnable()

9、Overridepublic void run() /while(true)/ TODO Auto-generated method stubMessage msg = handler.obtainMessage();try HttpClient httpClient = new DefaultHttpClient();HttpGet httpGet = new HttpGet(URL);while(true)/這個就是不斷的訪問數(shù)據(jù)庫了HttpResponse httpResponse = httpClient.execute(httpGet);/ 這句話沒有執(zhí)行,if (httpRespo

10、nse.getStatusLine().getStatusCode() = 200) HttpEntity entity = httpResponse.getEntity();String response = EntityUtils.toString(entity, utf-8);parseXMLWithPull(response);/Bundle b = new Bundle();/b.putString(time, records.get(0).getTime();/b.putString(context, records.get(0).getContext();/msg.setData

11、(b);/ 傳遞數(shù)據(jù)handler.sendEmptyMessage(0);sleep();/Thread.sleep(2000);/Thread.sleep(1000); catch (Exception e) / aaa.setText(加載失敗);handler.sendEmptyMessage(1);e.printStackTrace();/).start();3.1.3 實時判斷是否湊齊5步棋的5步了判斷是寫個onDraw方法里面的,這樣每畫一次就判斷一次。代碼:private void checkWinner() / 從上到下,從左到右 依次搜索for(int i=0;imaxRo

12、ws;i+)for(int j=0;jmaxColx;j+)if(chessij = 0)continue; /后面的語句不在執(zhí)行,繼續(xù)執(zhí)行下一次循環(huán)/以該位置為基準,搜索4個方向 右 ,下,右上,右下/判斷是否有五個同類型的棋子/ 向右方向int count=1; for(int k=1;k=4 & (j+k= 5)winner = chessij;return ;/跳出checkWinner()方法的執(zhí)行/ 向下方向count=1;for(int k=1;k=4 & (i+k= 5)winner = chessij;return ;/跳出checkWinner()方法的執(zhí)行/斜上count=1;for(int k=1;k=4 & (j+k0);k+)if(chessi-kj+k != chessij) break;elsecount+;if(count = 5)winner =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論