一.题目简介
本课程设计主要是使用Swing这个Java自带的图形开发工具实现中国象棋棋子及棋盘的绘制,并根据相应的象棋规则,可以设计棋谱,完成棋谱的保存和对已保存的棋谱的演示,方便现在爱棋人士对残局的收藏于研究,而且达到了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,熟练的应用面向对象的思想和设计方法解决实际问题的能力的目的。
1.当两方有一方将(帅)被吃掉后,程序不能自动结束或提示游戏结束,但想到该程序并不是要进行两方对弈,而是要设计棋谱所以在能力实现范围内可以允许该事件发生;
2.用户不能自动的将棋子删除,使得在摆棋谱过程中增加了工作量,必须从一开始进行,记录每一个棋子的行走过程,因为该程序给用户提供按照一定的思路设计防止其他非专业用户乱走和乱摆。
二.结对分工及过程
姓 名
学号
承 担 的 任 务
李增佐
201303014031
棋盘界面设计,对弈规则的实现,设计棋谱
纪欣
201303014016
保存下棋的步骤从而实现悔棋的实现,完成保存棋谱
1.棋子的设计;
(1)声明一个ChessPiece类,完成各个棋子的外观设计;
public class ChessPiece extends JLabel
{String name;
Color backColor=null,foreColor;
String 颜色类别=null;
ChessBoard board=null;
int width,height;
public ChessPiece(String name,Color fc,Color bc,int width,int height,ChessBoard board){
this.name=name;
this.board=board;
this.width=width;
this.height=height;
foreColor=fc;
backColor=bc;
setSize(width,height);
setBackground(bc);
addMouseMotionListener(board);
addMouseListener(board);}
public void paint(Graphics g){
g.setColor(foreColor);
g.fillOval(2,2,width-2,height-2);
g.setColor(Color.white);
g.setFont(new Font("隶书",Font.BOLD,28));
g.drawString(name,7,height-8);
g.setColor(Color.yellow);
g.drawOval(2,2,width-2,height-2);}
public int getWidth(){return width;}
public int getHeight(){return height;}
public String getName(){return name;}
public Color 获取棋子颜色(){ return foreColor;}
public void set棋子类别(String 类别){颜色类别=类别;}
public String 棋子类别(){return 颜色类别;}}
(2)实现各个棋子外观;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ChessBoard extends JPanel implements MouseListener,MouseMotionListener{
public ChessPoint point[][];
public int unitWidth,unitHeight;
int x轴长,y轴长;
int x,y;
boolean move=false;
public String 红方颜色="红色",黑方颜色=&