java课程设计中国象棋对弈xitong_java课程设计中国象棋对弈系统txt

这是一个基于Java的中国象棋对弈系统,包括图形用户界面和游戏规则。用户可以通过点击棋盘上的棋子进行移动,并支持重新开始、悔棋和退出功能。程序利用了ChessRule类来实现象棋的规则判断。
摘要由CSDN通过智能技术生成

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

import java.io.*;

public class Chess{

public static void main(String args[]){

new ChessMainFrame("中国象棋:观棋不语真君子,棋死无悔大丈夫");

}

}

class ChessMainFrame extends JFrame implements ActionListener,MouseListener,Runnable{

//玩家

JLabel play[] = new JLabel[32];

//棋盘

JLabel image;

//窗格

Container con;

//工具栏

JToolBar jmain;

//重新开始

JButton anew;

//悔棋

JButton repent;

//退出

JButton exit;

//当前信息

JLabel text;

//保存当前操作

Vector Var;

//规则类对象(使于调用方法)

ChessRule rule;

/**

** 单击棋子

** chessManClick = true 闪烁棋子 并给线程响应

** chessManClick = false 吃棋子 停止闪烁 并给线程响应

*/

boolean chessManClick;

/**

** 控制玩家走棋

** chessPlayClick=1 黑棋走棋

** chessPlayClick=2 红棋走棋 默认红棋

** chessPlayClick=3 双方都不能走棋

*/

int chessPlayClick=2;

//控制棋子闪烁的线程

Thread tmain;

//把第一次的单击棋子给线程响应

static int Man,i;

ChessMainFrame(){

new ChessMainFrame("中国象棋");

}

/**

** 构造函数

** 初始化图形用户界面

*/

ChessMainFrame(String Title){

//获行客格引用

con = this.getContentPane();

con.setLayout(null);

//实例化规则类

rule = new ChessRule();

Var = new Vector();

//创建工具栏

jmain = new JToolBar();

text = new JLabel("欢迎使用象棋对弈系统");

//当鼠标放上显示信息

text.setToolTipText("信息提示");

anew = new JButton(" 新 游 戏 ");

anew.setToolTipText("重新开始新的一局");

exit = new JButton(" 退 出 ");

exit.setToolTipText("退出象棋程序程序");

repent = new JButton(" 悔 棋 ");

repent.setToolTipText("返回到上次走棋的位置");

//把组件添加到工具栏

jmain.setLayout(new GridLayout(0,4));

jmain.add(anew);

jmain.add(repent);

jmain.add(exit);

jmain.add(text);

jmain.setBounds(0,0,558,30);

con.add(jmain);

//添加棋子标签

drawChessMan();

//注册按钮监听

anew.addActionListener(this);

repent.addActionListener(this);

exit.addActionListener(this);

//注册棋子移动监听

for (int i=0;i<32;i++){

con.add(play[i]);

play[i].addMouseListener(this);

}

//添加棋盘标签

con.add(image = new JLabel(new ImageIcon("image\\Main.GIF")));

image.setBounds(0,30,558,620);

image.addMouseListener(this);

//注册窗体关闭监听

this.addWindowListener(

new WindowAdapter() {

public void windowClosing(WindowEvent we){

System.exit(0);

}

}

);

//窗体居中

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

Dimension frameSize = this.getSize();

if (frameSize.height > screenSize.height){

frameSize.height

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.io.*; //主类 public class Chess{ public static void main(String args[]){ new ChessMainFrame("中国象棋:观棋不语真君子,棋死无悔大丈夫"); } } //主框架类 class ChessMainFrame extends JFrame implements ActionListener,MouseListener,Runnable{ //玩家 JLabel play[] = new JLabel[32]; //棋盘 JLabel image; //窗格 Container con; //工具栏 JToolBar jmain; //重新开始 JButton anew; //悔棋 JButton repent; //退出 JButton exit; //当前信息 JLabel text; //保存当前操作 Vector Var; //规则类对象(使于调用方法) ChessRule rule; /** ** 单击棋子 ** chessManClick = true 闪烁棋子 并给线程响应 ** chessManClick = false 吃棋子 停止闪烁 并给线程响应 */ boolean chessManClick; /** ** 控制玩家走棋 ** chessPlayClick=1 黑棋走棋 ** chessPlayClick=2 红棋走棋 默认红棋 ** chessPlayClick=3 双方都不能走棋 */ int chessPlayClick=2; //控制棋子闪烁的线程 Thread tmain; //把第一次的单击棋子给线程响应 static int Man,i; ChessMainFrame(){ new ChessMainFrame("中国象棋"); } /** ** 构造函数 ** 初始化图形用户界面 */ ChessMainFrame(String Title){ //获行客格引用 con = this.getContentPane(); con.setLayout(null); //实例化规则类 rule = new ChessRule(); Var = new Vector(); //创建工具栏 jmain = new JToolBar(); text = new JLabel("欢迎使用象棋对弈系统"); //当鼠标放上显示信息 text.setToolTipText("信息提示"); anew = new JButton(" 新 游 戏 "); anew.setToolTipText("重新开始新的一局"); exit = new JButton(" 退 出 "); exit.setToolTipText("退出象棋程序程序"); repent = new JButton(" 悔 棋 "); repent.setToolTipText("返回到上次走棋的位置"); //把组件添加到工具栏 jmain.setLayout(new GridLayout(0,4)); jmain.add(anew); jmain.add(repent); jmain.add(exit); jmain.add(text); jmain.setBounds(0,0,558,30); con.add(jmain); //添加棋子标签 drawChessMan(); //注册按扭监听 anew.addActionListener(this); repent.addActionListener(this); exit.addActionListener(this); //注册棋子移动监听 for (int i=0;i<32;i++){ con.add(play[i]); play[i].addMouseListener(this); } //添加棋盘标签 con.add(image = new JLabel(new ImageIcon("image\\Main.GIF"))); image.setBounds(0,30,558,620); image.addMouseListener(this); .................... ....................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值