资源简介
小弟写的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个文件信息
相关资源
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
评论
共有 条评论