Estoy refaccionando un programa de damas, y estoy tratando de procesar una solicitud de movimiento de jugadores (en forma de "3, 3, 5, 5" por ejemplo) en una int formación. Tengo el siguiente método, pero no se siente como Ruby-como sé que podía ser:Refactoring Ruby: Conversión de matriz a matriz int
def translate_move_request_to_coordinates(move_request)
return_array = []
coords_array = move_request.chomp.split(',')
coords_array.each_with_index do |i, x|
return_array[x] = i.to_i
end
return_array
end
tengo la siguiente prueba RSpec con ella.
it "translates a move request string into an array of coordinates" do
player_input = "3, 3, 5, 5"
translated_array = @game.translate_move_request_to_coordinates(player_input)
translated_array.should == [3, 3, 5, 5]
end
La prueba pasa, pero creo que el código es bastante feo. Cualquier ayuda sería apreciada. Gracias.
Steve
move_request.split ("") mapa. (Y: to_i) – tokland
1: Yo no lo sabía. Hay una explicación interesante de esto en el libro "Programming Ruby 1.9" de [Pragmatic Bookshelf] (http://pragprog.com/) en la sección "The Symbol.to_proc Trick" en la página 363 (4ª impresión, mayo de 2011). – lkuty