小编Ali*_*ter的帖子

在基于文本的冒险游戏中,如何防止长期混淆的条件代码?

我正在创建一个基于文本的,用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)

在这些故事情节中会有更多这样的条件,以及更精细的故事情节,所以有什么办法可以在一个单独的文件中编写一个故事线的代码,然后只为该条件运行该文件?无论如何我可以单独做,而不是在条件内写出一切?如果我这样做,代码会很快变得冗长而且难以查看/编辑.

我在想这样做头,使该写出来的故事线的头内部的功能,所以我只需要键入出来的功能,但如果我这样做,那么我不可能获得在游戏中的全局变量,如playerNameplayerRace等等

任何和所有建议都表示赞赏.我是C++的新手所以请原谅我,如果我错过了一些非常明显的东西.

c++ algorithm

9
推荐指数
1
解决办法
275
查看次数

我如何等到变量达到某个数字才能做某事?

我正在用C++创建一个游戏.在这个游戏中,我创建了一个名为的类Player.本Player类有称为属性magic.这个属性是一个整数,并且在整个游戏中不断上升,当用户做某事或完成任务时,他们可以获得magic.一旦达到某一点,用户获得一个新的法术,法术将保存在玩家类的数组中.

我希望能够在整个游戏中检查此属性,看它是否已达到一定水平.

我想只是在每次magic属性上升时进行检查,但每次这样做时都会增加很多条件.如:

user.magic++ 
if(user.magic == 2) {
    //Give a new spell 
}
else if(user.magic == 3) {
    //Give a new spell
}
Run Code Online (Sandbox Code Playgroud)

每次magic更新属性时都要执行此操作.这似乎需要花费大量的时间和精力来不断输入.我应该将上面的代码放在一个函数中,每次magic更新时都运行它吗?

有一个更好的方法吗?

c++ algorithm conditional

0
推荐指数
1
解决办法
175
查看次数

如何使用 ofstream 写入另一个目录中的文件?

我正在用 C++ 开发一个项目。

在我当前的目录中有另一个文件夹,名为 game_files,在 game_files 中有一个名为 player_name.txt 的文件

在我的 cpp 文件(Kingdom.cpp)中,我有以下代码

std::string playerName; 
std::cin >> playerName;
std::ofstream nameFile;
nameFile.open("/game_files/player_name.txt")
nameFile << playerName;
nameFile.close();
Run Code Online (Sandbox Code Playgroud)

然而,当我检查文件时,没有写入任何内容!我一直在寻找答案,但完全迷失了方向。

任何和所有帮助表示赞赏,谢谢!

c++ io

-1
推荐指数
1
解决办法
1289
查看次数

标签 统计

c++ ×3

algorithm ×2

conditional ×1

io ×1