Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Queen #a queen piece in chess
- attr_accessor :file, :rank, :actual_queen_moves #setup attributes so we can store location in moves and change the array over time
- def initialize
- @file = file
- @rank = rank
- @actual_queen_moves = actual_queen_moves
- end
- 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
- @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],
- [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],
- [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],
- [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],
- [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],
- [file, rank + 3], [file, rank + 4], [file, rank + 5], [file, rank + 6], [file, rank + 7], [file, rank + 8], [file - 1, rank], [file - 2, rank],
- [file - 3, rank], [file - 4, rank], [file - 5, rank], [file - 6, rank], [file - 7, rank], [file - 8, rank], [file + 1, rank], [file + 2, rank],
- [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
- @queen_moves.each do |move|
- if move[0] >= 9 or move[1] >= 9 or move[0] <= 0 or move[1] <= 0
- move = nil
- 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
- @actual_queen_moves = Array.new
- @actual_queen_moves << move
- else print "error"
- end
- end
- print @actual_queen_moves.length
- print @actual_queen_moves
- end
- end
Add Comment
Please, Sign In to add comment