Created
October 4, 2012 20:09
-
-
Save ajmalafif/3836094 to your computer and use it in GitHub Desktop.
[Bloc - ruby weekly] Print a 5 x 5 grid
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Define a method and accept an unspecified number of arguments and insert them into an | |
# array called coords. The array is created with the "*". | |
def print_grid_1a(*coords) | |
# Create an array called grid consisting of 5 elements each with a string | |
# consisting of 5 O's | |
grid = Array.new(5) {"O" * 5} | |
# Assign the variable x to the first element of the coords array and y to the second | |
x, y = coords | |
# Change the O to an X in the x indexed character inside the string ("OOOOO") | |
# that is in the y element of the grid array | |
grid[y][x] = "X" if x | |
# Print each element of the grid with a newline after each element | |
puts grid | |
end | |
#Error Checking | |
def print_grid_1b(*coords) | |
grid = Array.new(5) {"O" * 5} | |
# Extra error checking = If the max of the first two elements of the coords array | |
# (converted to an integer, in case of nil) is less than 5 | |
x, y = coords if coords[0..1].max.to_i < 5 | |
grid[y][x] = "X" if x | |
puts grid | |
end | |
###################################################### | |
def print_grid_2a(*coords) | |
# Create a empty array called grid | |
grid = [] | |
# 5 times insert a string consisting of 5 O's into the grid array | |
5.times {grid << "O" * 5} | |
x, y = coords | |
grid[y][x] = "X" if x | |
puts grid | |
end | |
#Error Checking | |
def print_grid_2b(*coords) | |
grid = [] | |
5.times {grid << "O" * 5} | |
x, y = coords | |
# Extra error checking = If x is not nil and x is less than 5 and y is less than 5 | |
grid[y][x] = "X" if x && x < 5 && y < 5 | |
puts grid | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment