Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. class WhiteBishop < Piece
  2. def move1(position)
  3. @team = "white"
  4. @position = position
  5. @moves = []
  6. end
  7. def next_move(position, board)
  8. @team = "white"
  9. @position = position
  10. @moves = []
  11. position_column = [nil, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
  12. column = position[0]
  13. row = position[1].to_i
  14. ### up and to the right ###
  15. i = 1
  16. while i < 8
  17. diagonal_attack = position_column[position_column.find_index(column)+i].to_s + (row + i).to_s
  18. if empty_square?(diagonal_attack, board)
  19. @moves << diagonal_attack
  20. i+=1
  21. elsif enemy_square?(diagonal_attack, board)
  22. @moves << diagonal_attack
  23. i = 8
  24. else
  25. i = 8
  26. end
  27. end
  28. ### down and to the right ###
  29. i = 1
  30. while i < 8
  31. diagonal_attack = position_column[position_column.find_index(column)+i].to_s + (row - i).to_s
  32. if empty_square?(diagonal_attack, board)
  33. @moves << diagonal_attack
  34. i+=1
  35. elsif enemy_square?(diagonal_attack, board)
  36. @moves << diagonal_attack
  37. i = 8
  38. else
  39. i = 8
  40. end
  41. end
  42. ### up and to the left attack ###
  43. i = 1
  44. while i < 8
  45. diagonal_attack = position_column[position_column.find_index(column)-i].to_s + (row + i).to_s
  46. if empty_square?(diagonal_attack, board)
  47. @moves << diagonal_attack
  48. i+=1
  49. elsif enemy_square?(diagonal_attack, board)
  50. @moves << diagonal_attack
  51. i = 8
  52. else
  53. i = 8
  54. end
  55. end
  56. ### down and to the left ###
  57. i = 1
  58. while i < 8
  59. diagonal_attack = position_column[position_column.find_index(column)-i].to_s + (row - i).to_s
  60. if empty_square?(diagonal_attack, board)
  61. @moves << diagonal_attack
  62. i+=1
  63. elsif enemy_square?(diagonal_attack, board)
  64. @moves << diagonal_attack
  65. i = 8
  66. else
  67. i = 8
  68. end
  69. end
  70. end
  71.  
  72. def show
  73. "[♝]"
  74. end
  75.  
  76. def enemy_square?(diagonal_attack, board)
  77. board[diagonal_attack.to_sym] != nil && board[diagonal_attack.to_sym].team == "black"
  78. end
  79.  
  80. def empty_square?(diagonal_attack, board)
  81. (board[diagonal_attack.to_sym] != nil && board[diagonal_attack.to_sym].is_a?(Empty))
  82. end
  83. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement