0

Lorsque j'exécute le code suivant, j'obtiens une erreur qui indique "fig_match: rb: 5: in '': constante non initialisée Match :: Fig (NameError) de fig_match.rb: 4: dans"Erreur de constante non initialisée

J'étais en train de tester mes méthodes d'installation et de combat, c'est pourquoi j'ai les réglages et les appels de correspondance après mes setters de variables dans la classe Match.

require_relative = 'fig_user.rb' #class name is Fig within fig_user.rb 

class Match 
    fig1 = Fig.new 
    fig2 = Fig.new 
    go = 0 
    winner = nil 

    setup(Bob, Sam) 
    match.battle 

    def setup(name1, name2) 
    #set names 
    @name1 = fig1.name 
    @name2 = fig2.name 

    go = rand(2) 
    end 


    def battle 
     if go.even? 
     p fig1.name 

     end 
    end 

fin

Ceci est la classe séparée qui est référencé dans le code ci-dessus (pas sûr si cela importe)

class Fig 

attr_reader :name, :power, :health 
attr_accessor :name, :power, :health 

deckId = @id 
name = @name 
power = @power 
moves = Hash["Kick", 50, "Punch", 30] 
health = 100 
end 

Répondre

2

require_relative est une méthode. Vous l'avez affecté en tant que nom de variable. Par conséquent, vous n'avez aucune classe Fig dans votre portée.

+1

Merci, j'ai juste essayé de modifier le placement de require_relative. Où irait-il dans ma portée? (Nouveau à ruby ​​et programmation) – Dru

+0

+1, 'require_relative = 'fig_user.rb'' devrait être' require_relative' fig_user.rb'' –

+0

Merci, je reçois de nouvelles erreurs lol. Donc ça marche. – Dru

Questions connexes