📄 interfaceplayer.java
字号:
/* * (Copyleft) coucou747 * Code sous licence GPL, * pour toute degradation de votre honneur, * je ne saurais en aucun cas etre tennu responsable * * Si l'une des proprietes suivante vennait a etre verifiee : * -Si vous avez des idees d'ameliorations possibles, * -Si vous avez developpe des ameliorations * -Si mon projet vous plait * -Si mon code vous plait * -Si vous vous servez de mon code * -Si vous aimez les chips * -Si vous avez trouve des bugs * -Si vous avez fixe des bugs (c'est gentil :) ) * -Si vous avez fait un projet base sur celui-ci * -Si vous voullez me faire des bisous * faites le moi savoir * -par mail a l'adresse coucou747@wanadoo.fr * -par irc sur uni-irc.net salon #programmation * -par msn a l'adresse coucou747@hotmail.com * * Remerciements a mon ex-petite amie, * c'est probablement grace a elle que j'ai trouve le temps de coder ca... */package echec;/** * * @author max */public class InterfacePlayer implements java.awt.event.MouseListener{ public InterfacePlayer(){ tour=0; colorToPlay=Color.white; } /* public String getString(){ String s=""; char c='\0'; try{ while ((c=(char) System.in.read()) !='\n'){ if (c != '\r') s+=c; } }catch (Exception e){ System.out.println("Erreur de frappe"); System.exit(0); } return s; } public void get(){ String s; try{ System.out.println("Entrez un coup."); s=getString(); start=new Position(s.charAt(0)-'a', s.charAt(1)-'1'); end=new Position(s.charAt(2)-'a', s.charAt(3)-'1'); } catch (Exception e){ System.out.println(e); } }*/ public Position getStart(){ return start; } public Position getEnd(){ return end; } private boolean isPetitRoque(){ if (chessboard.isKing(start)){ if (start.equals(4, 0) && end.equals(6, 0)){ return true; } if (start.equals(4, 7) && end.equals(6, 7)){ return true; } } return false; } private boolean isGrandRoque(){ if (chessboard.isKing(start)){ if (start.equals(4, 0) && end.equals(2, 0)){ return true; } if (start.equals(4, 7) && end.equals(2, 7)){ return true; } } return false; } public void apply() throws CoupException{ if (isPetitRoque()){ chessboard.PetitRoque(); }else if (isGrandRoque()){ chessboard.GrandRoque(); }else if (chessboard.CanTakeInPass(start, end)){ chessboard.TakeInPass(start, end); }else{ chessboard.move(start, end); } if (chessboard.canPromote()){ System.out.println("promotion"); chessboard.promote(new Dame()); } } public void drawFirstCoup(){ /* int i, j; Position p; for (i=0;i<8;i++){ for (j=0;j<8;j++){ try{ p=new Position(i, j); if (chessboard.CanPlay(start, p)){ graph.setColor(new java.awt.Color(200, 200, 55)); graph.drawOval(30+i*40+5, 30+40*7-j*40+5, 30, 30); graph.drawOval(30+i*40+6, 30+40*7-j*40+6, 28, 28); } }catch (Exception e){ System.out.println(e); e.printStackTrace(); System.exit(0); } } } * */ graph.setColor(new java.awt.Color(200, 200, 55)); Position p; CoupFromIterator cfi=new CoupFromIterator(start, chessboard); while (cfi.hasNext()){ p=cfi.next(); graph.drawOval(30+p.x*40+5, 30+40*7-p.y*40+5, 30, 30); graph.drawOval(30+p.x*40+6, 30+40*7-p.y*40+6, 28, 28); } } public void mouseClicked(java.awt.event.MouseEvent e){ int x=e.getX(), y=e.getY(); x=(x-30)/40; y=(30+40*8-y)/40; graph.setColor(new java.awt.Color(0, 200, 255)); graph.drawOval(30+x*40, 30+40*7-y*40, 40, 40); graph.drawOval(30+x*40+1, 30+40*7-y*40+1, 38, 38); try{ if (tour%2==0){ start=new Position(x, y); drawFirstCoup(); }else{ end=new Position(x, y); apply(); chessboard.showOn(layer); //chessboard.print(); } tour++; }catch (Exception ex){ System.out.println(ex); //ex.printStackTrace(); layer.repaint(); tour=0; } } public void mouseEntered(java.awt.event.MouseEvent e){ } public void mouseExited(java.awt.event.MouseEvent e){ } public void mousePressed(java.awt.event.MouseEvent e){ } public void mouseReleased(java.awt.event.MouseEvent e){ } public void relier( javax.swing.JLayeredPane layer){ this.layer=layer; } public void relier(Chessboard c){ chessboard=c; } public void relier(java.awt.Graphics graph){ this.graph=graph; } private java.awt.Graphics graph; private Chessboard chessboard; private javax.swing.JLayeredPane layer; private Position start, end; private int tour; private Color colorToPlay;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -