【Android源码 栏目提醒】:网学会员为需要Android源码 的朋友们搜集整理了android中国象棋源代码 - 中考高考相关资料,希望对各位网友有所帮助!
ChessActivity.javapackage wyf.ytlimport
android.app.Activity//引入相关的包import
android.media.MediaPlayerimport
android.os.Bundleimport
android.os.Handlerimport
android.os.Messageimport
android.view.Windowimport
android.view.WindowManagerpublic class ChessActivity extends Activity boolean isSound true//是否播放声音 MediaPlayer startSound//开始和菜单时的音乐 MediaPlayer gamesound//游戏声音 Handler myHandler new Handler//用来更新UI线程中的控件 public void handleMessageMessage msg ifmsg.what 1 //WelcomeView或HelpView或GameView传来的消息,切换到MenuView initMenuView//初始化并切换到菜单界面 else ifmsg.what 2//MenuView传来的消息,切换到GameView initGameView//初始化并切换到游戏界面 else ifmsg.what 3//MenuView传来的消息,切换到HelpView initHelpView//初始化并切换到帮助界面 public void onCreateBundle savedInstanceState //重写的onCreate super.onCreatesavedInstanceState //全屏 requestWindowFeatureWindow.FEATURE_NO_TITLE getWindow.setFlagsWindowManager.LayoutParams.FLAG_FULLSCREEN WindowManager.LayoutParams.FLAG_FULLSCREEN startSound MediaPlayer.createthis R.raw.startsound//加载欢迎声音 startSound.setLoopingtrue//设置游戏声音循环播放 gamesound MediaPlayer.createthis R.raw.gamesound//游戏过程的背景声音 gamesound.setLoopingtrue//设置游戏声音循环播放 this.initWelcomeView//初始化欢迎界面 public void initWelcomeView//初始化欢迎界面 this.setContentViewnew WelcomeViewthisthis//切换到欢迎界面 ifisSound//需要播放声音时 startSound.start//播放声音 public void initGameView//初始化游戏界面 this.setContentViewnew GameViewthisthis //切换到游戏界面 public void initMenuView//初始化菜单界面 ifstartSound null//停止 startSound.stop//停止播放声音 startSound null ifthis.isSound//是否播放声音 gamesound.start//播放声音 this.setContentViewnew MenuViewthisthis//切换View public void initHelpView//初始化帮助界面 this.setContentViewnew HelpViewthisthis//切换到帮助界面 222222222222222222222222222222222222222222222222222222222222222222222222222222ChessMove.javapackage wyf.ytl/ 该类为棋子的一个走法 包含是什么棋子 起始点的位置 目标点的位置 以及估值时所用到的score /public class ChessMove int ChessID//表明是什么棋子 int fromX//起始的坐标 int fromY int toX//目的地的坐标 int toY int score//值估值时会用到 public ChessMoveint ChessID int fromXint fromYint toXint toYintscore//构造器 this.ChessID ChessID//棋子的类型 this.fromX fromX//棋子的起始坐标 this.fromY fromY this.toX toX//棋子的目标点x坐标 this.toY toY//棋子的目标点y坐标 this.score score 33333333333333333333333333333333333333333333333333333333333333333333333GameView.javapackage wyf.ytlimport
android.content.Contextimport
android.graphics.Bitmapimport
android.graphics.BitmapFactoryimport
android.graphics.Canvasimport
android.graphics.Colorimport
android.graphics.Paintimport
android.media.MediaPlayerimport
android.view.MotionEventimport
android.view.SurfaceHolderimport
android.view.SurfaceView/ 该类是整个程序最主要的类,是主游戏的界面 该界面继承自SurfaceView并实现了SurfaceHolder.Callback接口 其中包含了一个刷帧的线程类 /public class GameView extends SurfaceView implementsSurfaceHolder.Callback private TutorialThread thread//刷帧的线程 TimeThread timeThread ChessActivity activity//声明Activity的引用 Bitmap qiPan//棋盘 Bitmap qizibackground//棋子的背景图片 Bitmap win//胜利的图片 Bitmap lost//失败的图片 Bitmap ok//确定按钮 Bitmap vs//黑方红方VS的图片 Bitmap right//向右的指针 Bitmap left//向左的指针 Bitmap current//“当前”文字Bitmap exit2//退出按钮图片Bitmap sound2//声音按钮图片Bitmap sound3//当前是否播放了声音Bitmap time//冒号Bitmap redtime//红色冒号Bitmap background//背景图片MediaPlayer go//下棋声音Paint paint//画笔boolean caiPan true//是否为玩家走棋boolean focus false//当前是否有选中的棋子int selectqizi 0 //当然选中的棋子int startI startJ//记录当前棋子的开始位置int endI endJ//记录当前棋子的目标位置Bitmap heiZi new Bitmap7//黑子的图片数组Bitmap hongZi new Bitmap7//红子的图片数组Bitmap number new Bitmap10//数字的图片数组,用于显示时间Bitmap redNumber new Bitmap10//红色数字的图片,用于显示时间GuiZe guiZe//规则类int status 0//游戏状态。
0游戏中,1胜利 2失败int heiTime 0//黑方总共思考时间int hongTime 0//红方总共思考时间int qizi new int//棋盘 236515632 000000000 040000040 707070707 000000000 000000000 14014014014014 01100000110 000000000 9109public GameViewContext contextChessActivity activity //构造器 supercontext this.activity activity//得到Activity的引用 getHolder.addCallbackthis go MediaPlayer.createthis.getContext R.raw.go//加载下棋的声音 this.thread new TutorialThreadgetHolder this//初始化刷帧线程 this.timeThread new TimeThreadthis//初始化思考时间的线程 init//初始化所需资源 guiZe new GuiZe//初始化规则类 public void init//初始化方法 paint new Paint//初始化画笔 qiPan BitmapFactory.decodeResourcegetResourcesR.drawable.qipan//棋盘图片 qizibackground BitmapFactory.decodeResourcegetResourcesR.drawable.qizi//棋子的背景 win BitmapFactory.decodeResourcegetResourcesR.drawable.win//胜利的图片 lost BitmapFactory.decodeResourcegetResourcesR.drawable.lost//失败的图片 ok BitmapFactory.decodeResourcegetResourcesR.drawable.ok//确定按钮图片 vs BitmapFactory.decodeResourcegetResourcesR.drawable.vs//vs字样的图片 right BitmapFactory.decodeResourcegetResourcesR.drawable.right//向右的指针 left BitmapFactory.decodeResourcegetResourcesR.drawable.left//向左的指针 current BitmapFactory.decodeResourcegetResourcesR.drawable.current//文字“当前” exit2 BitmapFactory.decodeResourcegetResourcesR.drawable.exit2//退出按钮图片 sound2 BitmapFactory.decodeResourcegetResourcesR.drawable.sound2//声音按钮图片 time BitmapFactory.decodeResourcegetResourcesR.drawable.time//黑色冒号 redtime BitmapFactory.decodeResourcegetResourcesR.drawable.redtime//红色冒号 sound3 BitmapFactory.decodeResourcegetResourcesR.drawable.sound3 heiZi0 BitmapFactory.decodeResourcegetResourcesR.drawable.heishuai//黑帅 heiZi1 BitmapFactory.decodeResourcegetResourcesR.drawable.heiju//黑车 heiZi2 BitmapFactory.decodeResourcegetResourcesR.drawable.heima//黑马 heiZi3 BitmapFactory.decodeResourcegetResourcesR.drawable.heipao//黑炮 heiZi4 BitmapFactory.decodeResourcegetResourcesR.drawable.heishi//黑士 heiZi5 BitmapFactory.decodeResourcegetResourcesR.drawable.heixiang//黑象 heiZi6 BitmapFactory.decodeResourcegetResourcesR.drawable.heibing//黑兵 hongZi0 BitmapFactory.decodeResourcegetResourcesR.drawable.hongjiang//红将 hongZi1 BitmapFactory.decodeResourcegetResourcesR.drawable.hongju//红车 hongZi2 BitmapFactory.decodeResourcegetResourcesR.drawable.hongma//红马 hongZi3 BitmapFactory.decodeResourcegetResourcesR.drawable.hongpao//红炮 hongZi4 BitmapFactory.decodeResourcegetResourcesR.drawable.hongshi//红仕 hongZi5 BitmapFactory.decodeResourcegetResourcesR.drawable.hongxiang//红相 hongZi6 BitmapFactory.decodeResourcegetResourcesR.drawable.hongzu//红卒 number0 BitmapFactory.decodeResourcegetResourcesR.drawable.number0//黑色数字0 number1 BitmapFactory.decodeResourcegetResourcesR.drawable.number1//黑色数字1 number2 BitmapFactory.decodeResourcegetResourcesR.drawable.number2//黑色数字2 number3 BitmapFactory.decodeResourcegetResourcesR.drawable.number3//黑色数字3 number4 BitmapFactory.decodeResourcegetResourcesR.drawable.number4//黑色数字4 number5 BitmapFactory.decodeResourcegetResourcesR.drawable.number5//黑色数字5 number6 BitmapFactory.decodeResourcegetResourcesR.drawable.number6//黑色数字6 number7 BitmapFactory.decodeResourcegetResourcesR.drawable.number7//黑色数字7 number8 BitmapFactory.decodeResourcegetResourcesR.drawable.number8//黑色数字8 number9 BitmapFactory.decodeResourcegetResourcesR.drawable.number9//黑色数字9 redNumber0 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber0//红色数字0 redNumber1 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber1//红色数字1 redNumber2 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber2//红色数字2 redNumber3 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber3//红色数字3 redNumber4 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber4//红色数字4 redNumber5 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber5//红色数字5 redNumber6 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber6//红色数字6 redNumber7 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber7//红色数字7 redNumber8 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber8//红色数字8 redNumber9 BitmapFactory.decodeResourcegetResourcesR.drawable.rednumber9//红色数字9 background BitmapFactory.decodeResourcegetResourcesR.drawable.bacnground / 该方法是自己定义的并非重写的 该方法是死的,只根据数据绘制屏幕 / public void onDrawCanvas canvas//自己写的绘制方法 canvas.drawColorColor.WHITE canvas.drawBitmapbackground 00 null//清背景 canvas.drawBitmapqiPan 10 10 null//绘制棋盘 forint i0 iltqizi.length i forint j0 jltqizii.length j//绘制棋子 ifqiziij 0 canvas.drawBitmapqizibackground 9j34 10i35null//绘制棋子的背景 ifqiziij 1//为黑帅时 canvas.drawBitmapheiZi0 12j34 13i35paint else ifqiziij 2//为黑车时 canvas.drawBitmapheiZi1 12j34 13i35paint else ifqiziij 3//为黑马时 canvas.drawBitmapheiZi2 12j34 13i35paint else ifqiziij 4//为黑炮时 canvas.drawBitmapheiZi3 12j34 13i35paint else ifqiziij 5//为黑士时 canvas.drawBitmapheiZi4 12j34 13i35paint else ifqiziij 6//为黑象时 canvas.drawBitmapheiZi5 12j34 13i35paint else ifqiziij 7//为黑兵时 canvas.drawBitmapheiZi6 12j34 13i35paint else ifqiziij 8//为红将时 canvas.drawBitmaphongZi0 12j34 13i35paint else ifqiziij 9//为红车时 canvas.drawBitmaphongZi1 12j34 13i35paint else ifqiziij 10//为红马时 canvas.drawBitmaphongZi2 12j34 13i35paint else ifqiziij 11//为红炮时 canvas.drawBitmaphongZi3 12j34 13i35paint else ifqiziij 12//为红仕时 canvas.drawBitmaphongZi4 12j34 13i35paint else ifqiziij 13//为红相时 canvas.drawBitmaphongZi5 12j34 13i35paint else ifqiziij 14//为红卒时 canvas.drawBitmaphongZi6 12j34 13i35paint canvas.drawBitmapvs 10 360 paint//绘制VS背景图 //绘制黑方的时间 canvas.drawBitmaptime 81 411 paint//绘制冒号 int temp this.heiTime/60//换算时间 String timeStr tempquotquot//转换成字符串 iftimeStr.lengthlt2//当不足两位时前面填0 timeStr quot0quot timeStr forint i0ilt2i//循环绘制时间 int tempScoretimeStr.charAti-0 canvas.drawBitmapnumbertempScore 65i7 412 paint //画分钟 temp this.heiTime60 timeStr tempquotquot//转换成字符串 iftimeStr.lengthlt2 timeStr quot0quot timeStr//当长度小于2时在前面添加一个0 forint i0ilt2i//循环 int tempScoretimeStr.charAti-0 canvas.drawBitmapnumbertempScore 85i7 412 paint//绘制 //开始绘制红方时间 canvas.drawBitmapthis.redtime 262 410 paint//红方的冒号 int temp2 this.hongTime/60//换算时间 String timeStr2 temp2quotquot//转换成字符串 iftimeStr2.lengthlt2//当不足两位时前面填0 timeStr2 quot0quot timeStr2 forint i0ilt2i//循环绘制时间 int tempScoretimeStr2.charAti-0 canvas.drawBitmapredNumbertempScore 247i7 411paint//绘制 //画分钟 temp2 this.hongTime60//求出当前的秒数 timeStr2 temp2quotquot//转换成字符串 iftimeStr2.lengthlt2//不足两位时前面用0补 timeStr2 quot0quot timeStr2 forint i0ilt2i//循环绘制 int tempScoretimeStr2.charAti-0 canvas.drawBitmapredNumbertempScore 267i7 411paint//绘制时间数字 ifcaiPan true//当该玩家走棋时即红方走棋 canvas.drawBitmapright 155 420 paint//绘制向右的指针 else//黑方走棋,即电脑走棋时 canvas.drawBitmapleft 120 420 paint//绘制向左的指针 canvas.drawBitmapcurrent 138 445 paint//绘制当前文字 canvas.drawBitmapsound2 10 440 paint//绘制声音 ifactivity.isSound//如果正在播放声音 canvas.drawBitmapsound3 80 452 paint//绘制 canvas.drawBitmapexit2 250 440 paint//绘制退出按钮 ifstatus 1//当胜利时 canvas.drawBitmapwin 85 150 paint//绘制胜利图片 canvas.drawBitmapok 113 240 paint ifstatus 2//失败后 canvas.drawBitmaplost 85 150 paint//绘制失败界面 canvas.drawBi.