部分代码:

 public void run(){
while (true){
//单击棋子第一下开始闪烁
if (chessManClick){
play[Man].setVisible(false); //时间控制
try{
tmain.sleep();
}
catch(Exception e){
} play[Man].setVisible(true);
} //闪烁当前提示信息 以免用户看不见
else {
text.setVisible(false);
//时间控制
try{
tmain.sleep();
}
catch(Exception e){
} text.setVisible(true);
} try{
tmain.sleep();
}
catch (Exception e){
}
}
} //单击棋子方法
public void mouseClicked(MouseEvent me){
System.out.println("Mouse"); //当前坐标
int Ex=,Ey=; //启动线程
if (tmain == null){
tmain = new Thread(this);
tmain.start();
} //单击棋盘(移动棋子)
if (me.getSource().equals(image)){
//该红棋走棋的时候
if (chessPlayClick == && play[Man].getName().charAt() == ''){
Ex = play[Man].getX();
Ey = play[Man].getY();
//移动卒、兵
if (Man > && Man < ){
rule.armsRule(Man,play[Man],me);
} //移动炮
else if (Man > && Man < ){
rule.cannonRule(play[Man],play,me);
} //移动车
else if (Man >= && Man < ){
rule.cannonRule(play[Man],play,me);
} //移动马
else if (Man > && Man < ){
rule.horseRule(play[Man],play,me);
} //移动相、象
else if (Man > && Man < ){
rule.elephantRule(Man,play[Man],play,me);
} //移动仕、士
else if (Man > && Man < ){
rule.chapRule(Man,play[Man],play,me);
} //移动将、帅
else if (Man == || Man == ){
rule.willRule(Man,play[Man],play,me);
} //是否走棋错误(是否在原地没有动)
if (Ex == play[Man].getX() && Ey == play[Man].getY()){
text.setText(" 红棋走棋");
chessPlayClick=;
} else {
text.setText(" 黑棋走棋");
chessPlayClick=;
} }//if //该黑棋走棋的时候
else if (chessPlayClick == && play[Man].getName().charAt() == ''){
Ex = play[Man].getX();
Ey = play[Man].getY(); //移动卒、兵
if (Man > && Man < ){
rule.armsRule(Man,play[Man],me);
} //移动炮
else if (Man > && Man < ){
rule.cannonRule(play[Man],play,me);
} //移动车
else if (Man >= && Man < ){
rule.cannonRule(play[Man],play,me);
} //移动马
else if (Man > && Man < ){
rule.horseRule(play[Man],play,me);
} //移动相、象
else if (Man > && Man < ){
rule.elephantRule(Man,play[Man],play,me);
} //移动仕、士
else if (Man > && Man < ){
rule.chapRule(Man,play[Man],play,me);
} //移动将、帅
else if (Man == || Man == ){
rule.willRule(Man,play[Man],play,me);
} //是否走棋错误(是否在原地没有动)
if (Ex == play[Man].getX() && Ey == play[Man].getY()){
text.setText(" 黑棋走棋");
chessPlayClick=;
} else {
text.setText(" 红棋走棋");
chessPlayClick=;
} }//else if //当前没有操作(停止闪烁)
chessManClick=false; }//if //单击棋子
else{
//第一次单击棋子(闪烁棋子)
if (!chessManClick){
for (int i=;i<;i++){
//被单击的棋子
if (me.getSource().equals(play[i])){
//告诉线程让该棋子闪烁
Man=i;
//开始闪烁
chessManClick=true;
break;
}
}//for
}//if //第二次单击棋子(吃棋子)
else if (chessManClick){
//当前没有操作(停止闪烁)
chessManClick=false; for (i=;i<;i++){
//找到被吃的棋子
if (me.getSource().equals(play[i])){
//该红棋吃棋的时候
if (chessPlayClick == && play[Man].getName().charAt() == ''){
Ex = play[Man].getX();
Ey = play[Man].getY(); //卒、兵吃规则
if (Man > && Man < ){
rule.armsRule(play[Man],play[i]);
} //炮吃规则
else if (Man > && Man < ){
rule.cannonRule(,play[Man],play[i],play,me);
} //车吃规则
else if (Man >= && Man < ){
rule.cannonRule(,play[Man],play[i],play,me);
} //马吃规则
else if (Man > && Man < ){
rule.horseRule(play[Man],play[i],play,me);
} //相、象吃规则
else if (Man > && Man < ){
rule.elephantRule(play[Man],play[i],play);
} //士、仕吃棋规则
else if (Man > && Man < ){
rule.chapRule(Man,play[Man],play[i],play);
} //将、帅吃棋规则
else if (Man == || Man == ){
rule.willRule(Man,play[Man],play[i],play);
play[Man].setVisible(true);
} //是否走棋错误(是否在原地没有动)
if (Ex == play[Man].getX() && Ey == play[Man].getY()){
text.setText(" 红棋走棋");
chessPlayClick=;
break;
} else{
text.setText(" 黑棋走棋");
chessPlayClick=;
break;
} }//if //该黑棋吃棋的时候
else if (chessPlayClick == && play[Man].getName().charAt() == ''){
Ex = play[Man].getX();
Ey = play[Man].getY(); //卒吃规则
if (Man > && Man < ){
rule.armsRule(play[Man],play[i]);
} //炮吃规则
else if (Man > && Man < ){
rule.cannonRule(,play[Man],play[i],play,me);
} //车吃规则
else if (Man >= && Man < ){
rule.cannonRule(,play[Man],play[i],play,me);
} //马吃规则
else if (Man > && Man < ){
rule.horseRule(play[Man],play[i],play,me);
} //相、象吃规则
else if (Man > && Man < ){
rule.elephantRule(play[Man],play[i],play);
} //士、仕吃棋规则
else if (Man > && Man < ){
rule.chapRule(Man,play[Man],play[i],play);
} //将、帅吃棋规则
else if (Man == || Man == ){
rule.willRule(Man,play[Man],play[i],play);
play[Man].setVisible(true);
} //是否走棋错误(是否在原地没有动)
if (Ex == play[Man].getX() && Ey == play[Man].getY()){
text.setText(" 黑棋走棋");
chessPlayClick=;
break;
} else {
text.setText(" 红棋走棋");
chessPlayClick=;
break;
} }//else if }//if }//for //是否胜利
if (!play[].isVisible()){
JOptionPane.showConfirmDialog(
this,"黑棋胜利","玩家一胜利",
JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);
//双方都不可以在走棋了
chessPlayClick=;
text.setText(" 黑棋胜利"); }//if else if (!play[].isVisible()){
JOptionPane.showConfirmDialog(
this,"红棋胜利","玩家二胜利",
JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);
chessPlayClick=;
text.setText(" 红棋胜利");
}//else if }//else }//else }

作业七:团队项目——Alpha版本冲刺阶段-10的更多相关文章

  1. 作业七:团队项目——Alpha版本冲刺阶段

      本次作业为期三周时间,要求各组结合所选项目并阅读教材<构建之法>第六章内容,完成项目的Alpha版本.本阶段的主要内容如下:(20分) 1. 每天组织一次站立会议,讨论每个成员的昨天进 ...

  2. 作业七:团队项目——Alpha版本冲刺阶段002

    今日进展:我们终于安装好了软件,今天开始进行作业设计. 今日安排:今天开始我们要开始我们的框架的设计.

  3. 作业七:团队项目——Alpha版本冲刺阶段-13

    对项目最后进行了完善. 代码如下: public void chapRule(int Man ,JLabel play,JLabel playTake,JLabel playQ[]){ //当前状态 ...

  4. 作业七:团队项目——Alpha版本冲刺阶段010

    今日安排:组内成员讨论 今日进程:组内成员讨论结束,并有明确的解决办法,每个人准备实践

  5. 作业七:团队项目——Alpha版本冲刺阶段009

    今日安排:组内成员讨论 今日进度:组内成员讨论分工细节以及可能遇到的问题,并提出解决方案

  6. 作业七:团队项目——Alpha版本冲刺阶段008

    今日进度:组内成员讨论 今日安排:组内成员分工

  7. 作业七:团队项目——Alpha版本冲刺阶段007

    今日进展:完善游戏主体代码. 今日安排:让游戏能运行起来.

  8. 作业七:团队项目——Alpha版本冲刺阶段006

    今日进展:完成主体代码. 今日安排:对程序主体进行编写.

  9. 作业七:团队项目——Alpha版本冲刺阶段005

    今日进展:编写代码. 今日安排:完成开始部分代码.

随机推荐

  1. Openfire 集群探究_压测情况

    一.(测试时间:20151220 - 下午14:00-17:00) windows环境 第一次测试,运行中发现在eclipse环境下.4w个连接耗尽了约1G的内存. 另外:服务本来可用的,压测客户端强 ...

  2. MVC中的常见问题

    1.  The model backing the 'MusicStoreDBContext' context has changed since the database was created. ...

  3. python hashlib模块

    用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib m=hash ...

  4. ASP数组全集,多维数组和一维数组[转]

    ASP数组是比较好用的装载大量数据的容器.1 定义数组 有两种方式:DIM和REDIM. DIM定义的是固定个数.数据类型的数组:而REDIM则不同,它可以定义不同类型的数据,也可以定义个数并非固定的 ...

  5. 用ajax动态获取数据显示在highcharts上

    html代码(index.html) <html><head> <meta charset="UTF-8" /> <title>Hi ...

  6. redis五种数据类型的使用(zz)

    redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ...

  7. Config文件的读写

    using System; using System.Configuration; using System.Xml; namespace COMMON { public class ConfigHe ...

  8. heap c++ 操作 大顶堆、小顶堆

    在C++中,虽然堆不像 vector, set 之类的有已经实现的数据结构,但是在 algorithm.h 中实现了一些相关的模板函数.下面是一些示例应用 http://www.cplusplus.c ...

  9. ORACLE导入、导出命令使用方法

    oracle导入.导出命令使用方法: 给用户增加导入数据权限的操作 第一,启动sql*puls 第二,以system/manager登陆 第三,create user 用户名 IDENTIFIED B ...

  10. c# 搭建高效分布式web (进一步实现软件的热插拔)

    一 加入 和其他网站相同的特性 nginx 做代理 并且和IIS 进行搭配搭建 web 前台 二 缓存使用 memcached 和session 共享做服务器的缓存处理减轻sql数据库的压力 包含关系 ...