如何在ruby游戏中分割逻辑

如何在ruby游戏中分割逻辑,ruby,Ruby,在第36章“艰苦学习Ruby”之后,我正在编写自己的游戏。玩家进入厨房。他吃早餐、午餐还是晚餐取决于时间 我编写了一个函数clock,它给出: time_of_day = t.strftime "%H:%M" 然后检查是否是星期天。我编写了一个带有一系列选项的厨房函数: food_choice = ["breakfast", "lunch", "dinner"] 将决定角色吃哪顿饭的逻辑放在哪里最合适?我在厨房的功能中猜,所以时钟保持干净。但是我可以在clock函数中输入返回的内容 meal

在第36章“艰苦学习Ruby”之后,我正在编写自己的游戏。玩家进入厨房。他吃早餐、午餐还是晚餐取决于时间

我编写了一个函数
clock
,它给出:

time_of_day = t.strftime "%H:%M"
然后检查是否是星期天。我编写了一个带有一系列选项的
厨房
函数:

food_choice = ["breakfast", "lunch", "dinner"]
将决定角色吃哪顿饭的逻辑放在哪里最合适?我在厨房的
功能中猜,所以时钟保持干净。但是我可以在
clock
函数中输入返回的内容

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

可以这样说。

您可以与您的类/函数交谈,看看它们是否有一个单一的职责(OOP的内容之一)。这意味着实体(类或函数)有一个目的,它所做的一切都严格地受这个目的的约束。例如

嘿,时间先生,今天几点了?

Sonds还好吧?现在你可以问这个问题:

嘿,厨房先生-现在的饭菜是什么?


p.S.如果你的问题听起来像
Man先生,你的自行车轮胎是什么?
不要害怕创建新的实体:
bicycle先生,你的轮胎是什么?
听起来更好

我同意
膳食选择
并不真正属于
时钟
,但我可以看到
时钟
返回
小时
,厨房
小时
确定
膳食选择
。这给了你很大的灵活性。。。将来,如果你决定提供“早午餐”,只有
厨房
必须改变。谢谢史蒂夫,这很有意义。谢谢zmii,提问隐喻对我很有用。。干杯。这些想法来自Sendi Metz——你可以看她的会议演讲——它们太棒了!