Je suis en train de faire un remplissage d'inondation qui demande l'entrée d'utilisateur à partir du coin supérieur droit d'un tableau généré aléatoirement rempli de numéros 1-6 qui sont représentés par « couleurs ». J'ai ajouté la fonction oldColor/newColor juste maintenant et j'ai un message d'erreur et je ne sais pas exactement pourquoi. Autre que cela, l'algorithme continue à demander des entrées sans imprimer à quoi ressemble le nouveau remplissage à chaque étape.Ruby récursive inondation il
def floodfill(array_1, row, column, colours, oldColor, newColor)
#colours is an array of the 6 colours i'm going to be using
boxHeight = array_1.length
boxWeight = array_1[0].length
oldColor = array_1
#puts oldColor
print "> "
newColor = gets.chomp.downcase
if array_1[row][column] != oldColor
return
if newColor == "r"
newColor = colours[:red]
array_1[row][column] = newColor
floodfill(array_1, row + 1, column, colours, newColor) # right
floodfill(array_1, row - 1, column, colours, newColor) # left
floodfill(array_1, row, column + 1, colours, newColor) # down
floodfill(array_1, row, column - 1, colours, newColor)# up
print_it
else
puts "didnt get that"
array_1.each do |row|
row.each do |c|
print c
end
puts
end
end
end
end
floodfill(array_1,14,9,colours,0,0)
Je ne peux pas directement publier des images, mais voici ce que ma sortie ressemble actuellement et le message d'échec http://imgur.com/a/88UrK
Veuillez lire "[mcve]". Nous avons besoin du code minimal et des données d'entrée qui démontrent le problème, ainsi que de votre sortie attendue. Quel code d'erreur obtenez-vous? De plus, dans Ruby, nous utilisons snake_case pour les noms de variables. camelCaseIsTooHardToRead. –
Cette 'oldColor = array_1' n'a aucun sens. Pourquoi rejetez-vous l'argument et le remplacez par une copie de l'image? – Max
Mon processus de pensée était de faire en sorte que oldColors contienne ce qui était à l'origine, alors que newColors ait la responsabilité du remplissage. Cela ne fonctionnera-t-il pas? Je suis assez nouveau à ruby et voudrais être pointé dans la bonne direction pour que cela fonctionne – LeeKay220