0

我正在为大学终端编写一个 2048 程序。

要玩游戏,我的程序需要向左、向右、向上或向下移动。所以我有两个选择:

  1. 编写一个将方向作为参数的函数,然后通过 if 语句进行相应的操作。

    void move(string direction) {
        if (direction == "up")
            //do stuff
        if (direction == "left")
            //do stuff
        //etc.
    }
    
  2. 编写四个函数,一个用于上、下、左、右,并将 if 语句放入main().

    int main() {
        cin << direction;
        if (direction == up)
            moveup();
        //etc.
    }
    

我阅读了谷歌的 cpp 风格指南,它说函数最好保持简短。但是如果我写四个函数我也会有很多重复的代码。到目前为止,我已经使用了选项 1,我的move()函数有 70 行长。

什么被认为是更好的做法?

4

2 回答 2

2

将 if 语句放在 main() 或函数内部以响应用户输入是一种好习惯吗?

两种选择都很好。后一个选项允许重复使用功能,如果您在主函数中有重复模式,我建议您使用它。

但是如果我写四个函数我也会有很多重复的代码。

一个解决方案是引入第五个函数,它包含其他函数共有的部分。然后从其他人那里调用该函数。这就是函数的用途:划分可重用的功能。

于 2017-02-21T13:51:33.733 回答
2

第二种选择通常被认为是最好的。我不明白为什么你会重复代码,因为左移(例如)所做的可能与上移所做的不同。如果有重复的代码,将该代码放在另一个函数中并从您的移动函数中调用它。一般来说,初学者程序员写的函数不够多——很难写太多。

于 2017-02-21T13:50:51.963 回答