【发布时间】:2014-11-11 21:51:15
【问题描述】:
我有一个程序是一个游戏锦标赛,它递归地战斗并从玩家容器中删除玩家,直到只剩下一个玩家。这是纸牌游戏战争,每场战斗我都需要将游戏中每场战斗的获胜者输出到一个文件中。例如,它看起来像这样
John vs James
Battle 1: James wins
Battle 2: John wins
...
Battle 5: James wins, John is out of cards. James wins the game
但是由于这是一场锦标赛,John 被从容器中移除,接下来的两个人开始战斗,所以我们从 16 到 8 到 4 到 2 名玩家,最后是获胜者。我已经完成了这一切的代码,我需要知道如何递归地完成这部分:
ofstream outFile;
outFile.open(argv[2]);
outFile << player1Name << " vs. " << player2Name << endl;
outFile << "Battle" << //number battle & winner etc, etc
我想这样做,以便每次运行程序时,它都会覆盖文件中的所有内容,但每次在锦标赛中进行游戏时,它只会添加到前一场战斗的结尾。我有一些想法,但我不确定最好的方法是什么。我在考虑放
ofstream outFile;
outFile.open(argv[2]);
在 driver.cpp 文件中,然后调用递归函数 game.tournament() 但将 game.tournament(outFile) 传入 void Game::tournament(ofstream& outFile) 然后使用 outFile
还要明确基本情况是当玩家队列的 .size()
【问题讨论】: