How to split the logic in a ruby game

84 views Asked by At

Following "Learning Ruby the Hard Way" chapter 36, I am writing my own game. The player enters a kitchen. Whether he gets breakfast, lunch, or dinner depends on the time.

I wrote a function clock that gives:

time_of_day = t.strftime "%H:%M"

then checks to see if it's a Sunday. I wrote a kitchen function with an array of choices:

food_choice = ["breakfast", "lunch", "dinner"]

Where is it best to put the logic that determines which meal the character gets? I'm guessing in the kitchen function, so the clock stays clean. But I could put something in the clock function that returns

meal_choice = ['a', 'b', 'c']

as it were.

1

There are 1 answers

2
zmii On

You can talk with your classes/functions to see if they have a single responsibility ( one of the OOP stuff ). This means that entity ( class or function ) has a purpose and everything it does is strictly bound to this purpose. E.G.

Hey, mr. time, what time of the day is it?

Sonds ok, right? Now you may ask the question:

Hey, mr. kitchen - what are the meals for now?

P.S. If your question sounds strange like Mr. Man, what is you bicycle tire? don't be afraid to create new entity: mr. bicycle, what is you tire? sound more good.