说明:这个小游戏是小马猿用了一个多月,自己一边学习一边码出来的,接近3000行的代码,所有算法都是自己不断摸索得到的,作为小马猿第一个游戏成品,现在分享给各位小伙伴。如果伙伴们在使用这份代码发现有什么不完整或不完美的地方,期待大家的指正,也希望得到一丝包容,毕竟小马猿敲这份代码时才一年多点的码龄。其中的棋子和棋盘的图片全来自网络。龄
1.游戏界面展示:棋子和棋盘图片来自网络分享,需要的知识有Swing界面加监听器,awt绘图和线程。其他的基本都是简单的判断语句和循环语句构成。
2.部分变量
ArrayList<Retract_Chess> array = new ArrayList<Retract_Chess>();
//获取当前平面分辨率,例如:1920x1080
int sWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
int sHeight = Toolkit.getDefaultToolkit().getScreenSize().height;
BufferedImage chess = null;
//保存坐标值
int x = 0;
int y = 0;
//判断坐标
int x1 = 0;
int y1 = 0;
//点击棋子
int cilk_X = -1;
int cilk_Y = -1;
//记录点击
int cilk_X0 = -1;
int cilk_Y0 = -1;
//移动棋子
int getX = -1;
int getY = -1;
//选择棋子
int chess_Cilk = -1;
int chess_Cilk2 = -1;
//判断黑方还是红方
boolean b = false;
//判断需应将方
boolean Back_RG = false;
boolean Red_RG = false;
boolean General_RG = false;
//判断行棋是否可行
boolean Red_Will_Chess = true;
//判断是否悔棋
boolean Retract_chess = false;
//悔棋的次数
int Red_num = 5;
int Back_num = 5;
//是否连续悔棋
int color = 0;
//保存下过的棋
int[][] allChess = new int[10][9];
//判输赢
int [][] RG_Red = new int[10][9];
int j = 17;
int j2 = 12;
// 标识当前应该是红子还是黑子
boolean isRed = true;
// 控制游戏是否可以玩
boolean canPlay = true;
// 保存游戏信息
String message = "红方先行";
// 保存最多拥有多少时间(秒)
int maxTime = 0;
// 做倒计时的线程类
Thread t = new Thread(this);
// 保存黑方与白方的剩余时间
int blackTime = 0;
int whiteTime = 0;
// 保存双方剩余时间的显示信息
String blackMessage = "无限制";
String whiteMessage = "无限制";
//走棋
ChessMoveRule rule = new ChessMoveRule();
//应将
RespondGeneral respondGeneral = new RespondGeneral();
//自动判断输赢
CanPlay Play = new CanPlay();
//判断是否将死
boolean Can_RG = true;
3.类目录:类自上而下依次是:启动游戏类,自动判断输赢类,行棋规则类,游戏界面类,象棋绘制类,将军判断类,棋子行为类。
完整代码奉上,希望有所帮助。
提取码:gax2