帮助分解代码
Help with breaking up code?
我有一个程序,我已经工作了一段时间,这基本上是一个跳棋游戏,有人可以决定与玩家比赛或观看计算机模拟。这两个代码基本上是一样的,除了计算机模拟取的是随机值。这两个代码块都位于我的驱动程序中,我想将代码分解为两个不同的cpp文件。通过这种方式,我让用户输入决定将要发生什么。
所以例如:
if(x == 1)
call the player cpp file
else if (x == 2)
call the simulation cpp
我的程序是面向对象的,但我想知道是否有一种方法可以从不同的文件运行代码,而无需创建类和定义函数?
游戏应该有两个玩家。有两种类型的玩家。一个CpuPlayer和一个HumanPlayer.
class Player {
public:
virtual Move getNextMove() = 0;
};
class HumanPlayer : public Player {
public:
HumanPlayer() {}
Move getNextMove() {
// get move from user interface
return move;
}
};
class CpuPlayer : public Player {
public:
CpuPlayer() {}
Move getNextMove() {
// get move from some sort of logic...
return move;
}
};
class MyGame {
public:
void setPlayer1(Player &player1instance) {
player1 = &player1instance;
}
void setPlayer2(Player &player2instance) {
player2 = &player2instance
}
private:
Player* player1;
Player* player2;
}
你对一个玩家编码。如果玩家1是人类,玩家2也是人类,那么"移动"是由某种人类界面决定的。如果玩家1是人,玩家2是CPU,那么玩家1就是UI,玩家2就是CPU。如果玩家1是一个CPU,而玩家2是一个人,情况则相反。如果两个玩家都是CPU,那么你就有了模拟效果。
所以,如果你有某种开始菜单来引导你的游戏,这应该很容易。只要确保你的游戏逻辑是基于Player
合同,而不是基于特定类型的玩家执行。
你可以这样做
if (x == 1)
{
#include "player.cpp"
}
else if (x == 2)
{
#include "simulation.cpp"
}
并让单个.cpp文件包含每个主要部分的逻辑。这有点笨拙,只是将功能包装在一些函数中,然后从if-if-else语句中调用它们。至少对于函数,如果出现问题,将更容易调试或执行堆栈跟踪等,而不是在多个.cpp文件中进行跟踪。
相关文章:
- 通过递归进行因子分解
- 下面的代码是如何工作的?它输出分解的数字并且功能齐全,我只是不明白它是如何做到的
- 有人可以帮助我分解这条代码
- (C++)分解这个简单的输入/输出代码:
- 分解 SDL 代码
- C++:在不传递一百万个参数的情况下分解代码
- 从模板中分解与参数无关的代码
- 将c代码的中间表示分解回c
- 将模板代码分解为单独的编译单元
- 如何将Qt代码分解为单独的部分
- 我能否对这C++代码的每一行中发生的事情有一个分解的解释
- 我有两个类似的类.你会使用什么设计来分解代码
- C 代码分解器
- 将此c++代码分解为单独的类规范文件和函数定义文件
- C++模板:一个按类列出的列表,如何分解代码
- 需要一个使用gsl-LU分解获得平方矩阵逆的示例代码
- 如何正确地分解代码
- 函子和代码分解
- 帮助分解代码
- 使用元数据/继承分解出跨多个类的代码