Guest User

Untitled

a guest
Apr 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. class Queen #a queen piece in chess
  2.  
  3. attr_accessor :file, :rank, :actual_queen_moves #setup attributes so we can store location in moves and change the array over time
  4.  
  5. def initialize
  6. @file = file
  7. @rank = rank
  8. @actual_queen_moves = actual_queen_moves
  9. end
  10. def moves(file, rank) #pass in the location of the piece into the moves, then generate the array of actual moves that are legitimate in that position at that time
  11. @queen_moves = [[file + 1, rank + 1], [file + 2, rank + 2], [file + 3, rank + 3], [file + 4, rank + 4], [file + 5, rank + 5], [file + 6, rank + 6],
  12. [file + 7, rank + 7], [file + 8, rank + 8], [file - 1, rank + 1], [file - 2, rank + 2], [file - 3, rank + 3], [file - 4, rank + 4], [file - 5, rank + 5],
  13. [file - 6, rank + 6], [file - 7, rank + 7], [file - 8, rank + 8], [file + 1, rank - 1], [file + 2, rank - 2], [file + 3, rank - 3], [file + 4, rank - 4],
  14. [file + 5, rank - 5], [file + 6, rank - 6], [file + 7, rank - 7], [file + 8, rank - 8], [file - 1, rank - 1], [file - 2, rank - 2], [file - 3, rank - 3],
  15. [file - 4, rank - 4], [file - 5, rank - 5], [file - 6, rank - 6], [file - 7, rank - 7], [file - 8, rank - 8], [file, rank + 1], [file, rank + 2],
  16. [file, rank + 3], [file, rank + 4], [file, rank + 5], [file, rank + 6], [file, rank + 7], [file, rank + 8], [file - 1, rank], [file - 2, rank],
  17. [file - 3, rank], [file - 4, rank], [file - 5, rank], [file - 6, rank], [file - 7, rank], [file - 8, rank], [file + 1, rank], [file + 2, rank],
  18. [file + 3, rank], [file + 4, rank], [file + 5, rank], [file + 6, rank], [file + 7, rank], [file + 8, rank], [file, rank - 1], [file, rank - 2], [file, rank - 3], [file, rank - 4], [file, rank - 5], [file, rank - 6], [file, rank - 7], [file, rank - 8]] #create an array of any possible move a queen could have anywhere on a board
  19. @queen_moves.each do |move|
  20. if move[0] >= 9 or move[1] >= 9 or move[0] <= 0 or move[1] <= 0
  21. move = nil
  22. elsif move[0] <= 9 or move[1] <= 9 or move[0] >= 1 or move[1] >= 1 #here, i am wanting to add any move that are within these conditional restraints
  23. @actual_queen_moves = Array.new
  24. @actual_queen_moves << move
  25. else print "error"
  26. end
  27. end
  28. print @actual_queen_moves.length
  29. print @actual_queen_moves
  30. end
  31. end
Add Comment
Please, Sign In to add comment