1. 团队名称、团队成员介绍

团队名称:WY

团队成员:

  • 吴慧婷[组长] 201521123094 网络1514
  • 姚佳希 201521123042 网络1512

2 项目git地址

Java课程设计

3 项目git提交记录截图,老师将点击进去重点考核。



4 项目功能架构图与主要功能流程图

5 项目运行截图

开始

悔棋功能



重新开始

6 项目关键代码(不能太多)

  • Chess.java
public Chess() {
board = new ChessBoard(45, 45, 9, 10);
record = board.record;
setTitle("中国象棋:默认红棋先行");
con = getContentPane();
JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, board, record);
split.setDividerSize(5);
split.setDividerLocation(460);
con.add(split, BorderLayout.CENTER);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setVisible(true);
setBounds(60, 20, 670, 540);
con.validate();
validate();
}
  • ChessBoard.java
public void paintComponent(Graphics g)// 画棋盘
{
super.paintComponent(g);
for (int j = 1; j <= yaxislength; j++) {
g.drawLine(point[1][j].x, point[1][j].y, point[xaxislength][j].x, point[xaxislength][j].y);// 直线的起点坐标,终点坐标
}
for (int i = 1; i <= xaxislength; i++) {
if (i != 1 && i != xaxislength) {
g.drawLine(point[i][1].x, point[i][1].y, point[i][yaxislength - 5].x, point[i][yaxislength - 5].y);
g.drawLine(point[i][yaxislength - 4].x, point[i][yaxislength - 4].y, point[i][yaxislength].x,
point[i][yaxislength].y);// 竖直画线,多减一个格子总体向上平移一行
} else {
g.drawLine(point[i][1].x, point[i][1].y, point[i][yaxislength].x, point[i][yaxislength].y);
}
} g.drawLine(point[4][1].x, point[4][1].y, point[6][3].x, point[6][3].y);
g.drawLine(point[6][1].x, point[6][1].y, point[4][3].x, point[4][3].y);
g.drawLine(point[4][8].x, point[4][8].y, point[6][yaxislength].x, point[6][yaxislength].y);
g.drawLine(point[4][yaxislength].x, point[4][yaxislength].y, point[6][8].x, point[6][8].y);
g.setFont(new Font("Serif", 6, 22));
g.drawString("楚 河 汉 界", point[2][5].x, point[2][6].y);
}
  • ChessDo.java
public ChessDo(ChessBoard board, ChessPoint[][] point) {
this.board = board;
this.point = point;
scroll = new JScrollPane();
ChessManual = new LinkedList<MoveStep>();
EatPiece = new LinkedList<Object>();
buttonStart = new JButton("重新开始");
buttonStart.setFont(new Font("平体", Font.PLAIN, 20));
buttonUndo = new JButton("悔棋");
buttonUndo.setFont(new Font("平体", Font.PLAIN, 20));
buttonExit = new JButton("退出");
buttonExit.setFont(new Font("平体", Font.PLAIN, 20));
setLayout(new BorderLayout());
add(buttonStart, BorderLayout.CENTER);
add(buttonUndo, BorderLayout.NORTH);
add(buttonExit, BorderLayout.SOUTH);
buttonStart.addActionListener(this);
buttonUndo.addActionListener(this);
buttonExit.addActionListener(this);
}
public void recordChessManual(ChessPiece piece, int startI, int startJ, int endI, int endJ) {
//记录走棋内容
Point pStart = new Point(startI, startJ);
Point pEnd = new Point(endI, endJ);
MoveStep step = new MoveStep(pStart, pEnd);
ChessManual.add(step);
} public void recordPieceEaten(Object object) {
EatPiece.add(object);
} public LinkedList<MoveStep> getChessManual() {
return ChessManual;
} public void actionPerformed(ActionEvent e) {
if (e.getSource() == buttonStart) {
......
}
}

7 尚待改进或者新的想法

  • 尚待改进:
(1)让用户可以任意选择先手
(2)悔棋规定悔棋步数
(3)胜利时弹出胜利窗口
(4)界面的美化
(5)重新开始时不用弹出一个窗口而是消除原先的所有步骤。

8 团队成员任务分配,团队成员课程设计博客链接(以表格形式呈现),标明组长。

团队成员 个人博客链接 任务分配
吴慧婷[组长] 吴慧婷的博客 Chess类,ChessDo类,ChessRule类
姚佳希 姚佳希的博客 ChessBoard类,ChessPoint类,ChessPiece类

Java课程设计—象棋的更多相关文章

  1. Java课程设计——象棋(201521123042 姚佳希)

    1. 团队课程设计博客链接 Java课程设计(团队版) 2 个人负责模块或任务说明 ChessBoard类创建棋盘及界面. ChessPoint类创建棋盘格点及界面. ChessPiece类创建棋子及 ...

  2. java(课程设计之记事本界面部分代码公布)

    代码:涉及记事本的一些界面......!! /* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查 ...

  3. java课程设计(计算器)

    JAVA课程 设 计 报 告 1206401-18   瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...

  4. Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)

    #课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...

  5. Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)

    Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...

  6. java课程设计--We Talk(201521123061)

    java课程设计--We Talk(201521123061) 团队博客链接:http://www.cnblogs.com/slickghost/ 数据库 一.通过Dao模式建立与数据库的连接 1.数 ...

  7. Java 课程设计 "Give it up"小游戏(团队)

    JAVA课程设计 "永不言弃"小游戏(From :Niverse) 通过Swing技术创建游戏的登陆注册界面,使用mySQL数据库技术完成用户的各项信息保存和游戏完成后的成绩保存. ...

  8. Java课程设计----仿Windows标准型计算器

    JAVA课程设计 仿Windows标准型计算器(By Yanboooooooo) 一.团队介绍: 连燕波[组长]:网络1513学生. 张文博[组员]:网络1513学生. 二.项目git地址 码云项目地 ...

  9. Java课程设计——猜数游戏(201521123111 陈伟泽)

    Java课程设计--猜数游戏(201521123111 陈伟泽) 1.团队课程设计博客链接 博客作业--猜数游戏 2.个人负责模块或任务说明 Answer:一些基础界面的构造,排行榜的构造,用文件录入 ...

随机推荐

  1. HDU 6006 Engineer Assignment:状压dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6006 题意: 在Google中,有个n项目,m个专家.第i个项目涉及c[i]个领域,分别为a[i][0 ...

  2. Ubuntu 简单安装和配置 GitLab

    使用的 Ubuntu Server 16.04 LTS 版本,服务器托管在 Azure 上,用的 1 元试用 1 个月服务器订阅(1500 元额度). 安装命令(推荐使用): curl -sS htt ...

  3. Mysql查询优化器浅析

    --Mysql查询优化器浅析 -----------------------------2014/06/11 1 定义    Mysql查询优化器的工作是为查询语句选择合适的执行路径.查询优化器的代码 ...

  4. 关于9080端口和80端口实现真正意义的WebServer+ApplicationServer结合应用

    出自:http://www.javahao.com/79/posts/79129320.shtml 关于9080端口和80端口实现真正意义的WebServer+ApplicationServer结合应 ...

  5. DLL基础

    Visual C++在创建DLL导出函数时,可能会对原始的函数名做修改.例如: int WINAPI Add(int nLeft, int nRight) 导出后的函数名称是_Add@8. 下面两种方 ...

  6. Redis数据结构底层知识总结

    Redis数据结构底层总结 本篇文章是基于作者黄建宏写的书Redis设计与实现而做的笔记 数据结构与对象 Redis中数据结构的底层实现包括以下对象: 对象 解释 简单动态字符串 字符串的底层实现 链 ...

  7. Writing A Threadpool in Rust

    文 Akisann@CNblogs / zhaihj@Github 本篇文章同时发布在Github上:https://zhaihj.github.io/writing-a-threadpool-in- ...

  8. .net core 2.0学习笔记(六):Remoting核心类库RealProxy迁移

    在学习.net core的过程中,我们已经明确被告知,Remoting将不会被支持.官方的解释是,.net framework 类型包含了太多的Runtime的内容,是一个非常重量级的服务实现,已被确 ...

  9. 鸟瞰spring

    一.spring框架概述: Spring框架主要提供了Ioc容器.AOP.数据访问.Web开发.消息.测试等相关技术的支持. 1.Spring的模块 1)核心容器 Spring-Core:核心工具类, ...

  10. 关于Eclipse启动报错,jvm版本不匹配的问题

    前几天重新下了个eclipse,eclipse需要java环境才能运行起来,我当时电脑上自己装了jdk1.8,然后直接运行新下载的eclipse,说我的jvm版本是1.6,但是我不记得安装过1.6的了 ...