首页 > 分享 > Javaの象棋

Javaの象棋

Chinese Chess

目录:

1.团队成员及任务
2.项目简介与要求
3.git提交地址
4.git提交截图
5. 项目功能架构图、主要功能流程图
6.主要函数
7.项目运行截图
8.核心代码截图

 

1.团队成员及任务

团队名称:RX-104ff

组长:王晨旭    计科20-2  202003010060

负责任务:讲解、所有工作的审核,游戏演示、架构
 棋子管理以及车、马、炮棋子运行规则代码书写

组员:赵永浩    计科20-2   202003010051

负责任务:架构、报告(结构和代码和总结)、github运作以及提交代码工作汇总、音乐播放器代码编译、游戏主方法的制作、兵与士棋子代码的书写。

          唐瑞锴     计科20-2   202003010055

负责任务:将、象代码的书写、棋盘图形化界面制作、棋子图形化界面图片搜集、
 绘制结构图。

2.项目简介与要求

中国象棋使用方形格状棋盘,棋盘为10行9列,圆形棋子共有32个,红黑二色各有16个棋子,摆放和活动在交叉点上,棋盘上共有90个交叉点。双方交替行棋,先把对方的将(帅)“将死”的一方获胜。

实现过程,将所有棋子抽象为一个对象,不同的棋子实现方法不同,建立多个棋子类。另外图形化界面用paint进行重绘,并给棋子添加监听器,鼠标点击触发监听器。创建一个音乐播放类,负责播放音乐。棋子和棋盘图片是从网络上收集的。

主要工作:

红黑双方交替下棋,直到一方的将被吃掉。 所有棋子的移动方法。 图形化界面。 开启新游戏。 播放音乐。 退出游戏。

 3.项目git提交地址

https://gitee.com/rx-104ff/chinese-chess.git

 4.git提交截图

5 项目功能架构图、主要功能流程图

6.主要函数

(1)ChessGame:建立JFrame窗口,添加按钮,为按钮添加触发器。

(2)Canvas:继承JPanel,负责棋盘初始化,将棋子paint到棋盘上,下棋的判断。

(3)ChessManager:使用HashMap对应棋子和编号,声明所有棋子,并且区分红黑棋。

(4)ArmsChess:卒与兵的移动规则。

(5)CannonChess:炮的移动规则。

(6)CarChess:车的移动规则。

(7)ChapChess:士和仕的移动规则。

(8)GeneralChess:将和帅的移动规则。

(9)HourseChess:马的移动规则。

(10)Chess:棋子父类,所有棋子继承该类。

(11)ImageTool:获取图片的类。

(12)musicStuff:音乐播放器。

(13)RangeChecker:判断所走棋子是否合法。

(14)test文件夹:所有棋子的测试。

7.项目运行截图

8.核心代码截图

唐瑞楷负责模块

1)棋盘设计制作(by 唐瑞楷)

package com;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.JLabel;

import javax.swing.JPanel;

import org.chess.Chess;

import org.chess.ImageTool;

import org.chess.RangeChecker;

public class Canvas extends JPanel {

/**

*

*/

private static final long serialVersionUID = 1L;

public static final int row=10;//棋盘行数

public static final int line=9;//棋盘列数

int[][] map = new int[row][line];

JLabel Icon;

Image chessimage = null;

Font font;

public static final int BLACK = 1000;

public static final int WHITE = 0;

boolean isBlack = false; //当前是谁下子

int select_c = -1;

int select_r = -1;

public Canvas(){//棋盘为10行9列,默认就好,不用改

font = new Font("宋体",Font.BOLD,30);

initMap();

addMouseListener(new MouseAdapter(){

@Override

public void mouseClicked(MouseEvent e){

//super.mouseClicked(e);

//System.out.println(e.getButton());

if(e.getButton()==MouseEvent.BUTTON1){

int x = e.getX();

int y = e.getY();

//System.out.println(e.getX()+","+e.getY()+"["+x+","+y+"]")

相关知识

福州市运会象棋比赛收官 时隔4年姐妹花再夺冠亚军
Java案例
JAVA编程艺术
「平安好医生Java招聘信息」
Java 并没有死!那么,Java这朵“永生花”是怎么永葆青春的呢?
花束の送料・花束のお届け・花束の梱包について
从国花看中日企业文化的差异[日语论文]国花から見る中日の企業文化の特徴の相違
借花献佛!朋友干了5年整的Java面试官,给我分享了一份面试官最爱问的Java面试题
植物の繁殖-自殖?他殖?
成都パンダ基地の概要

网址: Javaの象棋 https://m.huajiangbk.com/newsview166541.html

所属分类:花卉
上一篇: 花卉的生长和开花有什么规律性
下一篇: 花卉的生长发育过程课件.ppt