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

部分代码:

  1 public void run(){
  2         while (true){
  3             //单击棋子第一下开始闪烁
  4             if (chessManClick){
  5                 play[Man].setVisible(false);
  6 
  7                 //时间控制
  8                 try{
  9                     tmain.sleep(100);
 10                 }
 11                 catch(Exception e){
 12                 }
 13                 
 14                 play[Man].setVisible(true);
 15             }
 16             
 17             //闪烁当前提示信息 以免用户看不见
 18             else {
 19                 text.setVisible(false);
 20                 //时间控制
 21                 try{
 22                     tmain.sleep(250);
 23                 }
 24                 catch(Exception e){
 25                 }
 26                 
 27                 text.setVisible(true);
 28             }
 29             
 30             try{
 31                 tmain.sleep(350);
 32             }
 33             catch (Exception e){
 34             }
 35         }
 36     }
 37     
 38     //单击棋子方法
 39     public void mouseClicked(MouseEvent me){
 40         System.out.println("Mouse");
 41         
 42         //当前坐标
 43         int Ex=0,Ey=0;
 44         
 45         //启动线程
 46         if (tmain == null){
 47             tmain = new Thread(this);
 48             tmain.start();
 49         }
 50         
 51         //单击棋盘(移动棋子)
 52         if (me.getSource().equals(image)){
 53             //该红棋走棋的时候
 54             if (chessPlayClick == 2 && play[Man].getName().charAt(1) == '2'){    
 55                 Ex = play[Man].getX();
 56                 Ey = play[Man].getY();
 57                 //移动卒、兵
 58                 if (Man > 15 && Man < 26){
 59                     rule.armsRule(Man,play[Man],me);
 60                 }            
 61                 
 62                 //移动炮
 63                 else if (Man > 25 && Man < 30){            
 64                     rule.cannonRule(play[Man],play,me);
 65                 }
 66                 
 67                 //移动车
 68                 else if (Man >=0 && Man < 4){
 69                     rule.cannonRule(play[Man],play,me);
 70                 }
 71                 
 72                 //移动马
 73                 else if (Man > 3 && Man < 8){
 74                     rule.horseRule(play[Man],play,me);
 75                 }
 76                 
 77                 //移动相、象
 78                 else if (Man > 7 && Man < 12){
 79                     rule.elephantRule(Man,play[Man],play,me);
 80                 }
 81                 
 82                 //移动仕、士
 83                 else if (Man > 11 && Man < 16){
 84                     rule.chapRule(Man,play[Man],play,me);
 85                 }
 86                 
 87                 //移动将、帅
 88                 else if (Man == 30 || Man == 31){                
 89                     rule.willRule(Man,play[Man],play,me);
 90                 }
 91                 
 92                 //是否走棋错误(是否在原地没有动)
 93                 if (Ex == play[Man].getX() && Ey == play[Man].getY()){
 94                     text.setText("               红棋走棋");
 95                     chessPlayClick=2;
 96                 }
 97                 
 98                 else {
 99                     text.setText("               黑棋走棋");
100                     chessPlayClick=1;
101                 }
102                 
103             }//if
104             
105             //该黑棋走棋的时候
106             else if (chessPlayClick == 1 && play[Man].getName().charAt(1) == '1'){
107                 Ex = play[Man].getX();
108                 Ey = play[Man].getY();
109 
110                 //移动卒、兵
111                 if (Man > 15 && Man < 26){
112                     rule.armsRule(Man,play[Man],me);
113                 }
114                 
115                 //移动炮
116                 else if (Man > 25 && Man < 30){
117                     rule.cannonRule(play[Man],play,me);
118                 }
119                 
120                 //移动车
121                 else if (Man >=0 && Man < 4){
122                     rule.cannonRule(play[Man],play,me);
123                 }
124                 
125                 //移动马
126                 else if (Man > 3 && Man < 8){
127                     rule.horseRule(play[Man],play,me);
128                 }
129                 
130                 //移动相、象
131                 else if (Man > 7 && Man < 12){
132                     rule.elephantRule(Man,play[Man],play,me);
133                 }
134                 
135                 //移动仕、士
136                 else if (Man > 11 && Man < 16){
137                     rule.chapRule(Man,play[Man],play,me);
138                 }
139                 
140                 //移动将、帅
141                 else if (Man == 30 || Man == 31){
142                     rule.willRule(Man,play[Man],play,me);
143                 }
144                 
145                 //是否走棋错误(是否在原地没有动)
146                 if (Ex == play[Man].getX() && Ey == play[Man].getY()){
147                     text.setText("               黑棋走棋");
148                     chessPlayClick=1;
149                 }
150                 
151                 else {
152                     text.setText("               红棋走棋");
153                     chessPlayClick=2;    
154                 }
155 
156                             
157             }//else if        
158             
159             //当前没有操作(停止闪烁)
160             chessManClick=false;
161             
162         }//if
163         
164         //单击棋子
165         else{
166             //第一次单击棋子(闪烁棋子)
167             if (!chessManClick){
168                 for (int i=0;i<32;i++){
169                     //被单击的棋子
170                     if (me.getSource().equals(play[i])){
171                         //告诉线程让该棋子闪烁
172                         Man=i;
173                         //开始闪烁
174                         chessManClick=true;
175                         break;
176                     }
177                 }//for
178             }//if
179             
180             //第二次单击棋子(吃棋子)
181             else if (chessManClick){
182                 //当前没有操作(停止闪烁)
183                 chessManClick=false;
184                 
185                 for (i=0;i<32;i++){
186                     //找到被吃的棋子
187                     if (me.getSource().equals(play[i])){
188                         //该红棋吃棋的时候
189                         if (chessPlayClick == 2 && play[Man].getName().charAt(1) == '2'){
190                             Ex = play[Man].getX();
191                             Ey = play[Man].getY();
192                             
193                             //卒、兵吃规则
194                             if (Man > 15 && Man < 26){
195                                 rule.armsRule(play[Man],play[i]);
196                             }
197                             
198                             //炮吃规则
199                             else if (Man > 25 && Man < 30){
200                                 rule.cannonRule(0,play[Man],play[i],play,me);
201                             }
202                             
203                             //车吃规则
204                             else if (Man >=0 && Man < 4){
205                                 rule.cannonRule(1,play[Man],play[i],play,me);
206                             }
207                             
208                             //马吃规则
209                             else if (Man > 3 && Man < 8){
210                                 rule.horseRule(play[Man],play[i],play,me);    
211                             }
212                             
213                             //相、象吃规则
214                             else if (Man > 7 && Man < 12){
215                                 rule.elephantRule(play[Man],play[i],play);
216                             }
217                             
218                             //士、仕吃棋规则
219                             else if (Man > 11 && Man < 16){
220                                 rule.chapRule(Man,play[Man],play[i],play);
221                             }
222                             
223                             //将、帅吃棋规则
224                             else if (Man == 30 || Man == 31){
225                                 rule.willRule(Man,play[Man],play[i],play);
226                                 play[Man].setVisible(true);    
227                             }
228                             
229                             //是否走棋错误(是否在原地没有动)
230                             if (Ex == play[Man].getX() && Ey == play[Man].getY()){
231                                 text.setText("               红棋走棋");
232                                 chessPlayClick=2;
233                                 break;
234                             }
235                                                         
236                             else{
237                                 text.setText("               黑棋走棋");
238                                 chessPlayClick=1;
239                                 break;
240                             }    
241                             
242                         }//if
243                         
244                         //该黑棋吃棋的时候
245                         else if (chessPlayClick == 1 && play[Man].getName().charAt(1) == '1'){
246                             Ex = play[Man].getX();
247                             Ey = play[Man].getY();
248                                                     
249                             //卒吃规则
250                             if (Man > 15 && Man < 26){
251                                 rule.armsRule(play[Man],play[i]);
252                             }
253                             
254                             //炮吃规则
255                             else if (Man > 25 && Man < 30){
256                                 rule.cannonRule(0,play[Man],play[i],play,me);
257                             }
258                             
259                             //车吃规则
260                             else if (Man >=0 && Man < 4){
261                                 rule.cannonRule(1,play[Man],play[i],play,me);    
262                             }
263                             
264                             //马吃规则
265                             else if (Man > 3 && Man < 8){
266                                 rule.horseRule(play[Man],play[i],play,me);
267                             }
268                             
269                             //相、象吃规则
270                             else if (Man > 7 && Man < 12){
271                                 rule.elephantRule(play[Man],play[i],play);
272                             }
273                             
274                             //士、仕吃棋规则
275                             else if (Man > 11 && Man < 16){
276                                 rule.chapRule(Man,play[Man],play[i],play);
277                             }
278                             
279                             //将、帅吃棋规则
280                             else if (Man == 30 || Man == 31){
281                                 rule.willRule(Man,play[Man],play[i],play);
282                                 play[Man].setVisible(true);            
283                             }
284                             
285                             //是否走棋错误(是否在原地没有动)
286                             if (Ex == play[Man].getX() && Ey == play[Man].getY()){
287                                 text.setText("               黑棋走棋");
288                                 chessPlayClick=1;
289                                 break;
290                             }
291                 
292                             else {
293                                 text.setText("               红棋走棋");
294                                 chessPlayClick=2;    
295                                 break;
296                             }
297                                                         
298                         }//else if 
299                         
300                     }//if
301                     
302                 }//for
303                 
304                 
305                 //是否胜利
306                 if (!play[31].isVisible()){
307                     JOptionPane.showConfirmDialog(
308                         this,"黑棋胜利","玩家一胜利",
309                         JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);
310                     //双方都不可以在走棋了
311                     chessPlayClick=3;
312                     text.setText("  黑棋胜利");
313                     
314                 }//if 
315 
316                 else if (!play[30].isVisible()){
317                     JOptionPane.showConfirmDialog(
318                         this,"红棋胜利","玩家二胜利",
319                         JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);
320                     chessPlayClick=3;
321                     text.setText("  红棋胜利");
322                 }//else if    
323                 
324             }//else
325             
326         }//else
327         
328     }
原文地址:https://www.cnblogs.com/JohnCena/p/5516753.html