部分代码:
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 }