【发布时间】:2013-07-05 21:16:18
【问题描述】:
基本上,我有一个 6x6 板。我创建了一个函数,它应该在板上的随机坐标上放置三个 X。
const int size = 6;
char board[6][6] = {0}; //this is actually somewhere else, but I included it here for clarity
char enemies[3] = {'X','X','X'};
void setup(char board[6][6]){
bool valid = false; //sets initial bool value to false
for (int x = 0; x <= 2; ++x){
do{
int a = rand() % size;
int b = rand() % size;
if (board[a][b] == 0){
board[a][b] = enemies[x];
valid = true;
}
}while(!valid); //if the value is false, redo until an empty board space is found
}
(我也在主函数中包含了 srand(time(NULL)))
它有效,但只是有时。有时它会生成 3 个随机放置的 X,有时只生成 2 个。我希望它每次生成 3 个。我已经经历了一百万次,尝试了细微的变化和更正,但我似乎无法弄清楚哪里出了问题。我加入了一个条件,它只在棋盘为空白时放置敌人 [x](棋盘 [a][b] == 0),但有时由于某种原因它只放置 2 个 X。
【问题讨论】:
-
为了识别问题,您应该在调试器中逐行执行此操作,密切注意所有变量的值。