Is there a better way to do this?

```
value = 10
train = []
storage = 12
another_var = 'apple'

def first_function(value, train, storage, another_var)
    second_function(train, storage)
    third_function(train, storage, another_var)
    forth_function(value, another_var)
end

def third_function(train, storage, another_var)
    puts  'x'
end

def second_function(train, storage)
    puts  'x'
end

def forth_function(value, another_var)
    puts  'x'
end

```

Is this the proper way to do this? Taking the values along for the ride? I'm working my way through LRTHW and I'm trying to build a game. The problem I am running into is that I have a for loop that represents turns and that acts as the game driver. Inside of that for loop it calls functions that then call more functions. Unless I load all the variables into the first function and then pass them down the chain it breaks. It's sort of neat that it blocks you from accessing variables outside of the very narrow scope, but is there a way I can override this?