• 大小: 383KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: Java
  • 标签: Java  中国象棋  

资源简介

小弟写的Java版中国象棋,不足之处还请多多赐教!

资源截图

代码片段和文件信息

package com.yaoyun.chess.controller;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

import com.yaoyun.chess.entity.Chess;
import com.yaoyun.chess.entity.ChessMan;
import com.yaoyun.chess.panel.GamePanel;

public class Controller extends MouseAdapter {

private Chess chess;
private ChessMan chessMan;
private GamePanel gamePanel;
private boolean gameover = false;

/*
 * 重新显示游戏界面
 */
public Controller(GamePanel gamePanel Chess chess ChessMan chessMan) {
this.chess = chess;
this.chessMan = chessMan;
this.gamePanel = gamePanel;
}

/*
 *  鼠标点击事件(non-Javadoc)
 * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)
 */
public void mouseClicked(MouseEvent e) {
// 获取鼠标的位置
int x = e.getX();
int y = e.getY();

// 如果鼠标点击的坐标有效
if ((x >= 40 && x <= 570) && (y >= 40 && y <= 630) && !gameover) {
// 把鼠标的坐标转换成棋子数组的下标
int newi = (y + 25) / 60 - 1;
int newj = (x + 25) / 60 - 1;
// 获取鼠标上一步点击位置数组的下标
int oldi = chessMan.getOldX();
int oldj = chessMan.getOldY();

// 获取保存棋子位置的数组
int[][] chessFlag = chessMan.getChessFlag();

// 判断选中的地方是否有棋子
if (chessFlag[newi][newj] == 0) {
gamePanel.setMessage(2);
// 判断上一步是否有选中棋子
if (oldi != -1 && oldj != -1) {
gamePanel.setMessage(5);
// 判断棋子是否能移动
if (isChessManMove(chessFlag newi newj)) {
//播放下棋声音
play(“go“);
// 移动棋子
chessMan.setChessFlag(newi newj chessFlag[oldi][oldj]);
chessMan.setChessFlag(oldi oldj 0);

// 移动成功后,清除上一步选中的棋子
chessMan.setOldX(-1);
chessMan.setOldY(-1);
gamePanel.dispaly(chess chessMan);



} else {
gamePanel.setMessage(3);
// 判断上一步是否有棋子
if (oldi == -1 && oldj == -1) { // 上一步没有棋子
// 如果有棋子,并且是自己
if ((oldi == newi && oldj == newj)) {
gamePanel.setMessage(6);
} else {
gamePanel.setMessage(8);
// 把选中的棋子设为选中状态
chessMan.setSelect(newi newj);

// 并把其保存为上一颗棋子
chessMan.setOldX(newi);
chessMan.setOldY(newj);
gamePanel.dispaly(chess chessMan);

}

} else { // 如果上一步有棋子

// 判断是否吃的到下一步的棋子
if (isChessManMove(chessFlag newi newj)) {
// 判断是否是自己一方的棋子
if ((chessFlag[oldi][oldj] >= 8 && chessFlag[newi][newj] < 8) || (chessFlag[oldi][oldj] < 8 && chessFlag[newi][newj] >= 8)) {
if (chessFlag[newi][newj] == 5) {
gamePanel.setMessage(9);
gameover = true;
} else if (chessFlag[newi][newj] == 14) {
gamePanel.setMessage(10);
gameover = true;
}
//播放吃棋子的声音
play(“eat“);
// 吃棋子
chessMan.setChessFlag(newi newjchessFlag[oldi][oldj]);
chessMan.setChessFlag(oldi oldj 0);

}

// 并

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-08-31 22:45  中国象棋(Java版)\
     文件         318  2012-08-31 14:47  中国象棋(Java版)\.classpath
     文件         399  2012-08-31 13:35  中国象棋(Java版)\.project
     目录           0  2012-08-31 22:44  中国象棋(Java版)\.settings\
     文件         598  2012-08-08 16:27  中国象棋(Java版)\.settings\org.eclipse.jdt.core.prefs
     文件         132  2012-08-31 22:52  中国象棋(Java版)\@.txt
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\com\
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\com\yaoyun\
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\com\yaoyun\chess\
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\com\yaoyun\chess\controller\
     文件        6188  2012-08-31 16:35  中国象棋(Java版)\bin\com\yaoyun\chess\controller\Controller.class
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\com\yaoyun\chess\entity\
     文件        2239  2012-08-31 16:35  中国象棋(Java版)\bin\com\yaoyun\chess\entity\Chess.class
     文件        3888  2012-08-31 16:35  中国象棋(Java版)\bin\com\yaoyun\chess\entity\ChessMan.class
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\com\yaoyun\chess\main\
     文件        2728  2012-08-31 22:40  中国象棋(Java版)\bin\com\yaoyun\chess\main\ChineseChess.class
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\com\yaoyun\chess\panel\
     文件        1676  2012-08-31 22:28  中国象棋(Java版)\bin\com\yaoyun\chess\panel\GamePanel.class
     目录           0  2012-08-31 22:44  中国象棋(Java版)\bin\com\yaoyun\chess\util\
     文件         376  2012-08-31 16:35  中国象棋(Java版)\bin\com\yaoyun\chess\util\Global.class
     目录           0  2012-08-31 22:44  中国象棋(Java版)\src\
     目录           0  2012-08-31 22:44  中国象棋(Java版)\src\com\
     目录           0  2012-08-31 22:44  中国象棋(Java版)\src\com\yaoyun\
     目录           0  2012-08-31 22:44  中国象棋(Java版)\src\com\yaoyun\chess\
     目录           0  2012-08-31 22:44  中国象棋(Java版)\src\com\yaoyun\chess\controller\
     文件        9842  2012-08-31 14:48  中国象棋(Java版)\src\com\yaoyun\chess\controller\Controller.java
     目录           0  2012-08-31 22:44  中国象棋(Java版)\src\com\yaoyun\chess\entity\
     文件        2770  2012-08-31 15:34  中国象棋(Java版)\src\com\yaoyun\chess\entity\Chess.java
     文件        3755  2012-08-31 15:55  中国象棋(Java版)\src\com\yaoyun\chess\entity\ChessMan.java
     目录           0  2012-08-31 22:44  中国象棋(Java版)\src\com\yaoyun\chess\main\
............此处省略12个文件信息

评论

共有 条评论