3.系统功能
实现中国象棋游戏,开始游戏,悔棋,退出功能。
二、系统展示
======
1.首页
2.黑棋走
3.红旗走
三、部分代码
ChineseCheseRule.java
package com.sjsq;
import java.awt.event.MouseEvent;
import javax.swing.JLabel;
/* 定义中国象棋规则的类 */
public class ChineseCheseRule {
/** 卒子的移动规则 */
public void armsRule(int Man, JLabel chessMain, MouseEvent me) {
int boardX = Math.round((float) (me.getX() - 24) / 57) * 57 + 24;
int boardY = Math.round((float) (me.getY() - 56) / 57) * 57 + 56;
// 黑卒向下
if (Man < 21) {
// 向下移动
if (boardY - chessMain.getY() == 57 && boardX == chessMain.getX()
&& boardY <= 569) {
ChineseChessMainFrame.list.add(String.valueOf(1));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getY()));
ChineseChessMainFrame.list.add(String.valueOf(Man));
chessMain.setBounds(chessMain.getX(), chessMain.getY() + 57,
55, 55);
}
// 向右移动,必须过河
else if (chessMain.getY() >= 341 && boardY == chessMain.getY()
&& boardX - chessMain.getX() == 57 && boardX <= 480) {
ChineseChessMainFrame.list.add(String.valueOf(1));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getY()));
ChineseChessMainFrame.list.add(String.valueOf(Man));
chessMain.setBounds(chessMain.getX() + 57, chessMain.getY(),
55, 55);
}
// 向左移动,必须过河
else if (chessMain.getY() >= 341 && boardY == chessMain.getY()
&& chessMain.getX() - boardX == 57 && boardX >= 24) {
ChineseChessMainFrame.list.add(String.valueOf(1));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getY()));
ChineseChessMainFrame.list.add(String.valueOf(Man));
chessMain.setBounds(chessMain.getX() - 57, chessMain.getY(),
55, 55);
}
}
// 红卒向上
else {
// 向上移动
if (chessMain.getY() - boardY == 57 && boardX == chessMain.getX()
&& boardY >= 56) {
ChineseChessMainFrame.list.add(String.valueOf(1));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getY()));
ChineseChessMainFrame.list.add(String.valueOf(Man));
chessMain.setBounds(chessMain.getX(), chessMain.getY() - 57,
55, 55);
}
// 向右移动,必须过河
else if (chessMain.getY() <= 284 && boardY == chessMain.getY()
&& boardX - chessMain.getX() == 57 && boardX <= 480) {
ChineseChessMainFrame.list.add(String.valueOf(1));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getY()));
ChineseChessMainFrame.list.add(String.valueOf(Man));
chessMain.setBounds(chessMain.getX() + 57, chessMain.getY(),
55, 55);
}
// 向左移动,必须过河
else if (chessMain.getY() <= 284 && boardY == chessMain.getY()
&& chessMain.getX() - boardX == 57 && boardX >= 24) {
ChineseChessMainFrame.list.add(String.valueOf(1));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain.getY()));
ChineseChessMainFrame.list.add(String.valueOf(Man));
chessMain.setBounds(chessMain.getX() - 57, chessMain.getY(),
55, 55);
}
}
}// 卒移动结束
/** 卒吃棋规则 */
public void armsRule(JLabel chessMain1, JLabel chessMain2) {
// 向右走
if (chessMain2.getX() - chessMain1.getX() == 57
&& chessMain1.getY() == chessMain2.getY()
&& chessMain2.isVisible()
&& chessMain1.getName().charAt(1) != chessMain2.getName()
.charAt(1)) {
// 黑棋要过河才能吃棋
if (chessMain1.getName().charAt(1) == ‘1’
&& chessMain1.getY() >= 341) {
ChineseChessMainFrame.list.add(String.valueOf(3));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain1.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain1.getY()));
ChineseChessMainFrame.list.add(String.valueOf(chessMain1
.getName().substring(2)));
ChineseChessMainFrame.list.add(String.valueOf(2));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain2.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain2.getY()));
ChineseChessMainFrame.list.add(String.valueOf(chessMain2
.getName().substring(2)));
chessMain2.setVisible(false);
chessMain1.setBounds(chessMain2.getX(), chessMain2.getY(), 55,
55);
}
// 红棋要过河才能吃棋
else if (chessMain1.getName().charAt(1) == ‘2’
&& chessMain1.getY() <= 284) {
ChineseChessMainFrame.list.add(String.valueOf(3));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain1.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain1.getY()));
ChineseChessMainFrame.list.add(String.valueOf(chessMain1
.getName().substring(2)));
ChineseChessMainFrame.list.add(String.valueOf(2));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain2.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain2.getY()));
ChineseChessMainFrame.list.add(String.valueOf(chessMain2
.getName().substring(2)));
chessMain2.setVisible(false);
chessMain1.setBounds(chessMain2.getX(), chessMain2.getY(), 55,
55);
}
}
// 向左走
else if (chessMain1.getX() - chessMain2.getX() == 57
&& chessMain1.getY() == chessMain2.getY()
&& chessMain2.isVisible()
&& chessMain1.getName().charAt(1) != chessMain2.getName()
.charAt(1)) {
// 黑棋要过河才能吃棋
if (chessMain1.getName().charAt(1) == ‘1’
&& chessMain1.getY() >= 341) {
ChineseChessMainFrame.list.add(String.valueOf(3));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain1.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain1.getY()));
ChineseChessMainFrame.list.add(String.valueOf(chessMain1
.getName().substring(2)));
ChineseChessMainFrame.list.add(String.valueOf(2));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain2.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain2.getY()));
ChineseChessMainFrame.list.add(String.valueOf(chessMain2
.getName().substring(2)));
chessMain2.setVisible(false);
chessMain1.setBounds(chessMain2.getX(), chessMain2.getY(), 55,
55);
}
// 红棋要过河才能吃棋
else if (chessMain1.getName().charAt(1) == ‘2’
&& chessMain1.getY() <= 284) {
ChineseChessMainFrame.list.add(String.valueOf(3));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain1.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain1.getY()));
ChineseChessMainFrame.list.add(String.valueOf(chessMain1
.getName().substring(2)));
ChineseChessMainFrame.list.add(String.valueOf(2));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain2.getX()));
ChineseChessMainFrame.list
.add(String.valueOf(chessMain2.getY()));
ChineseChessMainFrame.list.add(String.valueOf(chessMain2
.getName().substring(2)));
chessMain2.setVisible(false);
chessMain1.setBounds(chessMain2.getX(), chessMain2.getY(), 55,
55);
}
}
// 向上走或向下走
else if (chessMain1.getX() == chessMain2.getX()
&& Math.abs(chessMain1.getY() - chessMain2.getY()) == 57
&& chessMain2.isVisible()
&& chessMain1.getName().charAt(1) != chessMain2.getName()
.charAt(1)) {
// 黑棋只能向下吃棋<