我从main调用的playGame()中有这段代码。当X/ O的任何一个玩家获胜或平局时,下面的代码就会递增,但当我第二次玩完整个游戏时,我就失去了之前的分数。
有人能建议一种更有效的方式来存储分数吗?
期望结果:当再次进行游戏时,如果具有先前分数的同一玩家获胜或两人平局,则应保留先前分数并递增先前分数。
保留以前分数,如果请求则递增,
//score start at zero.
int Xwins = 0;
int Owins = 0;
int tie = 0;
if(wins == 'X')
{
Xwins++; //increments Xwins if player X wins
}
else if(wins == 'O')
{
Owins++; //increments Owins if player O wins
}
else if(NOWIN)
{
tie++; //increments tie if no player wins
}Xwins时的结果
X|O|平局
1|0|0
再次播放;当Xwin再次出现时的结果-应该是2而不是1-我的问题
X|O|平局
1|0|0
发布于 2016-10-19 11:33:40
也许你应该把分值存储到临时变量中。然后在一个新的分数之后,你应该在你的临时变量的最后一个分数上求和。
发布于 2016-10-19 11:41:59
1.如果你在玩的时候需要分数(不是结束游戏然后重新开始)
在游戏结束后,您可以将数据存储到一个本地变量,例如temp_score,然后当新游戏开始时,只需使用temp_score对current_score求和
2.如果你在开始游戏后还需要得分
将temp_score保存到一个文件(例如score.txt),当游戏再次开始时,只需从文件中读取先前的比分,并将其相加为当前比分。再次完成游戏后,更新文件中的新temp_score
发布于 2016-10-19 11:43:51
使用静态变量:
如果X和O只有两个玩家需要调用此函数,则将XWins、OWins和tie定义为static,以便在重复调用同一函数时保留该值。
static int Xwins = 0;
static int Owins = 0;
static int tie = 0;https://stackoverflow.com/questions/40121630
复制相似问题