如何比较两个大小不同且不断变化的向量?

时间:2019-01-28 18:49:42

标签: arrays visual-c++ vector

为了让自己更多地了解c ++,我决定编写一个文字游戏。我真的很喜欢它,而且我对功能的理解比以前好得多,但是遇到了一些障碍。

在战斗中,我试图自学矢量,但是很难理解它们。

因此,我从一个功能开始,而我要在功能内部执行的操作是根据您的totalSoldiers获得一个向量,该int值会在您购买士兵(并失去他们)时发生变化。第二个代表敌军的向量,这个向量的值根据事件进行了调整。

牢记这两个向量,它们将自始至终进行比较。比较会滚动一个介于1到20之间的数字,然后在滚动该数字之后添加其他修饰符。比较发生两次,并且如果满足该单个索引的防护,它将向该元素添加一个(这些向量已初始化,因此它们中的所有内容均为0),一个表示该元素(士兵)已死。对每个元素进行此比较,并重复进行直到一个向量被全1填充为止。

此后,将清理矢量,并调整yourArmy(表示您有多少士兵的矢量)的大小,并将其值重新设置为0。

我知道我希望它如何工作,但是我对如何到达那里没有经验。

这个游戏不是很重要,更重要的是,我真的很想看一个项目,因为我有很多有趣的编程和添加过程。

我问了很多,但还没有收到我足够理解并付诸实践的答案。此外,与我同班的大多数人都不确定如何使用向量。

void Combat(int &totalSoldiers, int &food, int &AC, int eventNum)

{

/ * eventNum只是从另一个函数中获取的数字,它将告诉我们我们在战斗什么 totalSoldiers是您拥有多少士兵,因为您可以购买以添加到军队中 食物只是军队的改良剂,而AC则只能决定敌人要掷到多高才能击中你* /

int d20 = (rand() % 20) + 1; //Dice that gets rolled

int enemyDamage; //A modifier that gets added to the roll for the enemy
int enemyArmor; //A modifier that determines if the roll made for your soldiers is enough to hit.

int enemyNumber; //Determines how many enemies there are in the encounter

bool inCombat = false; //Bool that will determine when combat ends

vector<int> yourArmy; //vector I made to try and represent your army in game
yourArmy.reserve(totalSoldiers); //I'm pretty sure this is the same as setting the size

vector<int> enemyArmy; //vector for the enemy
enemyArmy.reserve(10000);//I figured 10000 was a good number to keep as the upper limits

while (!inCombat)
{
    if (1 <= eventNum && eventNum <= 50)
    {

        enemyNumber = (rand() % 40) + 12; //random enemy forces
        enemyArmy.resize(enemyNumber);

        auto it1 = yourArmy.begin();
        auto it2 = enemyArmy.begin();
        for (; (it1 != yourArmy.end()) && (it2 != enemyArmy.end()); ++it1, ++it2)
        {


        }


    }


}

好吧,我不确定会发生什么,因为我不确定是否要以正确的方式进行操作。主要寻求有关我所问的问题是否可行的指导,以及我是否朝着正确的方向甚至方法去做。 :/

0 个答案:

没有答案