我正在创建一个基于文本的,用C++选择你自己的冒险游戏.
在这个游戏中,你会选择去哪里,你选择做什么等等.
我的问题是,如何防止这种情况变得极为混乱.
例:
让我们说,在游戏中的某一点,你可以被问到是去森林还是沙漠.如果你选择沙漠,那就是完全不同于森林的故事情节.
那么我如何阻止我的代码看起来像这样.
if (player goes to the desert)advice? {
/*Whole story line of the desert*/
else if (player goes to the forest) {
/*Whole story line of the forest */
Run Code Online (Sandbox Code Playgroud)
在这些故事情节中会有更多这样的条件,以及更精细的故事情节,所以有什么办法可以在一个单独的文件中编写一个故事线的代码,然后只为该条件运行该文件?无论如何我可以单独做,而不是在条件内写出一切?如果我这样做,代码会很快变得冗长而且难以查看/编辑.
我在想这样做头,使该写出来的故事线的头内部的功能,所以我只需要键入出来的功能,但如果我这样做,那么我不可能获得在游戏中的全局变量,如playerName
或playerRace
等等
任何和所有建议都表示赞赏.我是C++的新手所以请原谅我,如果我错过了一些非常明显的东西.
可能是基于类的解决方案。这个问题很广泛,所以不太确定哪种设计模式适合。但是,示例类可能CrossroadsDesicision
会导出选项["Go to desert", "Go to city", ...]
并具有一个方法apply
,该方法应该从数组接收选项并返回下一步的相关决策类
编辑: 基类应包含:
possibleDecisions - 一组可能的决策(您可以在此处使用选项类,由名称(字符串或枚举 - 您应该在此处使用模板)和描述组成)
apply - 接收决策、对其采取行动并返回下一个决策的函数
归档时间: |
|
查看次数: |
275 次 |
最近记录: |