Skip to content

Instantly share code, notes, and snippets.

@ajmalafif
Created October 4, 2012 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajmalafif/3836094 to your computer and use it in GitHub Desktop.
Save ajmalafif/3836094 to your computer and use it in GitHub Desktop.
[Bloc - ruby weekly] Print a 5 x 5 grid
# 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