資源簡介
小弟寫的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個文件信息
評論
共有 條評論