Bonjour,
Je suis actuellement dans l'exercice du Javaquarium. Seulement j'ai cette méthode de ma classe Fish
qui plante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | def sex(aquarium) random_fish = Random.rand(0..aquarium.fish_ary.count) n_fish = aquarium.fish_ary[random_fish] puts n_fish # Le plus étonnant c'est que cette ligne n'affiche rien... if @species == n_fish.species && Random.rand(1..2) == 2 if @species == :clown || @species == :sole r = random_sex puts "Un nouveau bébé ! Quel est son nom ?" print '>> ' user_name_baby = gets.chomp.capitalize aquarium.fish_baby << Fish.new(user_name_baby, 0, @species, r) @nb_sex += 1 n_fish.nb_sex += 1 elsif @gender != n_fish.gender r = random_sex if @gender == :carpe || @gender == :thon puts "Un nouveau bébé ! C'est #{ r == :male ? "un male" : "une femelle"}. Quel est son nom ?" else puts "Un nouveau bébé ! Quel est son nom ?" end print '>> ' user_name_baby = gets.chomp.capitalize aquarium.fish_baby << Fish.new(user_name_baby, 0, @species, r) @nb_sex += 1 n_fish.nb_sex += 1 end end end |
Cette méthode prend comme argument un aquarium qui contient un attribut @fish_ary
qui est un array contenant tous les poissons en vie afin de les faire se reproduire.
Seulement voici l'erreur que j'obtient :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /home/louis/Documents/Lab/ruby/aquarium/Fish.rb:87:in `sex': undefined method `species' for nil:NilClass (NoMethodError) from /home/louis/Documents/Lab/ruby/aquarium/Aquarium.rb:135:in `block in new_turn' from /home/louis/Documents/Lab/ruby/aquarium/Aquarium.rb:126:in `each' from /home/louis/Documents/Lab/ruby/aquarium/Aquarium.rb:126:in `new_turn' from main.rb:74:in `simulate' from main.rb:80:in `simulate' from main.rb:80:in `simulate' from main.rb:80:in `simulate' from main.rb:80:in `simulate' from main.rb:80:in `simulate' from main.rb:80:in `simulate' from main.rb:80:in `simulate' from main.rb:32:in `main_menu' from main.rb:83:in `<main>' |
Je vous ai mis en fluo la ligne qui pose problème. Il semblerais que l'attribut @species
ne soit pas accessible mais pourtant j'ai bien dans mon code un attr_accessor :species
…
Le code entier est ici : https://github.com/boopr/Javaquarium
Merci de votre aide!
+0
-0