Advertisement
Guest User

Untitled

a guest
Jul 2nd, 2015
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. package lógica;
  2.  
  3. public class Pawn extends Piece{
  4. private int originalPosition;
  5.  
  6. @Override
  7. public void isValid(Piece[][] spot){
  8. int i;
  9. int j;
  10.  
  11. for(i=0; i<8 ; i++){ //resetar a matriz de validade
  12. for(j=0; j<8; j++){
  13. valid[i][j] = false;
  14. }
  15. }
  16.  
  17. //Movimentos
  18. if(originalPosition == 1){
  19. i = posx+1;
  20. j = posy;
  21. if(i>=0 && i<8 && j>=0 && j<8){
  22. if(spot[i][j] == null) //movimento para frente
  23. valid[i][j] = true;
  24. if(posx == 1 && spot[i+1][j] == null)
  25. valid[i+1][j]= true;
  26. }
  27. }
  28. i = posx+1;
  29. j = posy+1;
  30. if(i>=0 && i<8 && j>=0 && j<8){
  31. if(spot[i][j] != null && spot[i][j].color != color){ //captura à direita
  32. valid[i][j] = true;
  33. }
  34. }
  35. i = posx+1;
  36. j = posy-1;
  37. if(i>=0 && i<8 && j>=0 && j<8){
  38. if(spot[i][j] != null && spot[i][j].color != color){ //captura à esquerda
  39. valid[i][j] = true;
  40. }
  41. }
  42. i = posx;
  43. j = posy;
  44. if(j>=0 && j<8){
  45. if(i==4 && j<7 && spot[i][j+1] != null && spot[i][j+1].movedTwo && spot[i][j+1].lastMoved == Board.moveCount){ //captura en passant a direita
  46. valid[i+1][j+1] = true;
  47. }
  48. if(i==4 && j>1 && spot[i][j-1] != null && spot[i][j-1].movedTwo && spot[i][j-1].lastMoved == Board.moveCount){ //captura en passant a esquerda
  49. valid[i+1][j-1] = true;
  50. }
  51. }
  52.  
  53.  
  54. if(originalPosition == 6){
  55. i = posx-1;
  56. j = posy;
  57. if(i>=0 && i<8 && j>=0 && j<8){
  58. if(spot[i][j] == null) //movimento para frente
  59. valid[i][j] = true;
  60. if(posx == 6 && spot[i-1][j] == null)
  61. valid[i-1][j]= true;
  62. }
  63. }
  64. i = posx-1;
  65. j = posy+1;
  66. if(i>=0 && i<8 && j>=0 && j<8){
  67. if(spot[i][j] != null && spot[i][j].color != color){ //captura à direita
  68. valid[i][j] = true;
  69. }
  70. }
  71. i = posx-1;
  72. j = posy-1;
  73. if(i>=0 && i<8 && j>=0 && j<8){
  74. if(spot[i][j] != null && spot[i][j].color != color){ //captura à esquerda
  75. valid[i][j] = true;
  76. }
  77. }
  78. i = posx;
  79. j = posy;
  80. if(j>=0 && j<8){
  81. if(i==3 && j<7 && spot[i][j+1] != null && spot[i][j+1].movedTwo && spot[i][j+1].lastMoved == Board.moveCount){ //captura en passant a direita
  82. valid[i-1][j+1] = true;
  83. }
  84. if(i==3 && j>1 && spot[i][j-1] != null && spot[i][j-1].movedTwo && spot[i][j-1].lastMoved == Board.moveCount){ //captura en passant a esquerda
  85. valid[i-1][j-1] = true;
  86. }
  87. }
  88. }
  89.  
  90.  
  91. Pawn(int x0, int y0, int cor) {
  92. type = pawn;
  93. color = cor;
  94. posx = x0;
  95. posy = y0;
  96. originalPosition = posx;
  97. lastMoved = 0;
  98. isMoved = false;
  99. isChecked = false;
  100. movedTwo = false;
  101. }
  102.  
  103. Pawn(Pawn p){ //construtor de cópia
  104. type = p.type;
  105. color = p.color;
  106. posx = p.posx;
  107. posy = p.posy;
  108. originalPosition = p.originalPosition;
  109. lastMoved = p.lastMoved;
  110. isMoved = p.isMoved;
  111. isChecked = p.isChecked;
  112. movedTwo = p.movedTwo;
  113.  
  114. for(int i=0; i<8; i++){
  115. for(int j=0; j<8; j++){
  116. valid[i][j] = p.valid[i][j];
  117. }
  118. }
  119.  
  120. }
  121.  
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement