Hello, and welcome, code explorer! Today's journey takes us through the intricate paths within a 2-dimensional array, often likened to a game board. Our mission is to identify ideal spots for game piece placement. Sounds like an adventure, doesn't it? Let's embark!
Visualize a chessboard in the form of a 2D array, where each cell could be marked 'E'
for empty or 'P'
for a piece. Our quest involves summoning a Ruby method named find_positions()
. Upon examining this 2D array, this method identifies all the spots where a new piece could be placed so that it can move to another empty cell in one move. The catch is that a piece can move only to an immediately neighboring cell directly above, below, to the left, or right, but not diagonally.
Consider this 4x4 board, for instance:
The method should render an output as: [(0, 1), (0, 2), (1, 2), (2, 1), (3, 1)]
. This output represents the positions where a new piece can fit perfectly and then be able to move in the next turn.
Stepping right into action, we start with an empty positions
array to help us log the sought positions. Understanding the dimensions of our 'board' paves the way for defining boundaries in our exploration mission. Now, how does one determine the size of a Ruby array? The answer lies in Ruby's length
method.
