一个象棋手机游戏的源代码.pdf
上传人:qw****27 上传时间:2024-09-11 格式:PDF 页数:21 大小:93KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

一个象棋手机游戏的源代码.pdf

一个象棋手机游戏的源代码.pdf

预览

免费试读已结束,剩余 11 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一个象棋手机游戏的源代码原文:http://www.easylib.org/question/game/11708.html作者:DLUT_608最近看到了一些五子棋,扫雷的代码讲解的文章,我也就写了个手机的象棋游戏,写的不是太全面,但还是能实现基本功能,共享出来供大家交流交流。先介绍一下我的大体思路吧,我采用canvas让手机自己画出棋盘和棋子,而不是采用调用图片,虽然麻烦,但能锻炼自己的编程能力还能让算法简单,同时还能节省空间。具体的细节在代码中在说吧。首先要有一个主程序Game,这里比较简单,大家一看就能明白,我就不多说了.importjavax.microedition.lcdui.Display;importjavax.microedition.midlet.MIDlet;publicclassGameextendsMIDlet{GameCanvasgame;//定义游戏界面的Canvas类GameCanvas的对象gobangpublicGame(){super();game=newGameCanvas(this);//生成GameCanvas类的对象game}protectedvoidstartApp(){Display.getDisplay(this).setCurrent(game);//在屏幕上绘出游戏见面game}protectedvoidpauseApp(){}protectedvoiddestroyApp(booleanarg0){}}然后就是程序的主题部分了--GameCanvas,这里实现了从画棋盘棋子一直到判断和输出.我的主题思想是把棋盘初始化为一个2维数组,在有棋子的地方初始化为非0数,其他的都初始化为0;大家可在代码中看到,在图象输出和棋子移动也都是基于这个数组进行的。importjavax.microedition.lcdui.*;importjavax.microedition.midlet.*;publicclassGameCanvasextendsCanvasimplementsCommandListener{protectedGamegame;protectedintempty;//屏幕右侧留的空间protectedintx;//棋盘输出的坐标protectedintcellWidth;//每个棋格的边长protectedintmapWidth,canvasW;//棋盘的宽度和画布的宽度1protectedinta,b,c,d;//这是画炮下面的那几个折线,没什么用protectedintchessR;//棋子的半径protectedintselectedX,selectedY;//选择框在棋盘格局上的x,y位置protectedstaticinti,j;protectedintm,n,p;//记住开始的selectedX,selectedY和point[selectedX][selectedY]protectedStringq;//记住word[selectedX][selectedY]protectedintguard,guard1,guard2,g,g1;//标记FIRE被按了多少次,g是用来判断走直线时前后的棋子,中间是否有其他棋子的累加器protectedstaticintg2,isRedWin,isWhiteWin;//g2表示该谁走了,后面那俩顾名思义了protectedCommandexitCmd;protectedintpoint[][]={{1,2,3,4,5,6,7,8,9},//初始化INT数组{0,0,0,0,0,0,0,0,0},{0,10,0,0,0,0,0,11,0},{12,0,13,0,14,0,15,0,16},{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0},{28,0,29,0,30,0,31,0,32},{0,26,0,0,0,0,0,27,0},{0,0,0,0,0,0,0,0,0},{17,18,19,20,21,22,23,24,25}};protectedString[][]word;publicGameCanvas(){};publicGameCanvas(Gamegame)//构造函数{this.game=game;empty=getWidth()/6;x=empty*1/3;canvasW=getWidth()-empty;mapWidth=canvasW-canvasW%8;cellWidth=mapWidth/8;a=cellW