c++ - 有没有办法把它变成一个循环,让它更具包容性?
问题描述
if (player.is_alive() == true) {
player_roll = roll();
}
if (ai1.is_alive() == true) {
ai1_roll = roll();
}
if (ai2.is_alive() == true) {
ai2_roll = roll();
}
if (ai3.is_alive() == true) {
ai3_roll = roll();
}
if (ai4.is_alive() == true) {
ai4_roll = roll();
}
if (ai5.is_alive() == true) {
ai5_roll = roll();
}
这是检查玩家和ai(它们是对象)是否还活着并允许它们滚动(这是一个随机函数)
解决方案
您可以包装活动测试并滚动到一个函数中,例如:
void IfAliveRoll(Player& player, uint32_t& roll)
{
if (player.is_alive())
roll = roll();
}
然后,您可以简单地将其用于您想要的任意数量的实体:
IfAliveRoll(player, player_roll);
IfAliveRoll(ai1, ai1_roll);
IfAliveRoll(ai2, ai2_roll);
IfAliveRoll(ai3, ai3_roll);
IfAliveRoll(ai4, ai4_roll);
IfAliveRoll(ai5, ai5_roll);
函数名称非常清楚正在发生的事情。
推荐阅读
- typescript - Nestjs + 续集
- angular - 如何将 accept 和 allowedfileExtension 分配给 dx-file-uploader (DevExtreme 21.1.5)
- reactjs - 在 React + Typescript 中的每个按钮单击事件上自动滚动到最后一个 div
- c# - 在.net core 3.1应用程序中获取“无法加载文件或程序集”,而文件存在且具有正确的公共令牌密钥
- python - 有没有办法设置 python pip 在哪里构建模块?并保持该构建?
- python - 在 lambda 函数中使用三元语句
- amazon-web-services - 如何使用 WeaveScope 和 VSCode 调试 kubernetes pod 中的 docker 容器?
- php - 将mysql数据转换为json数组google折线图
- python - 无法使用 python 和 selenium 保存 json 数据
- c++ - 素数分解问题中的信号 11