基本上,我有一個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(時間(NULL)))
它的工作原理,但只是偶爾。有時它會產生3個隨機放置的X,有時只有2個。我希望它每次產生3個X。我已經完成了一百萬次,嘗試了微小的變化和更正,但我似乎無法弄清楚什麼是錯誤的。如果棋盤空白(棋盤[a] [b] == 0),我只包含一個條件,只能將敵人放置[x],但有時候它只會放置2個X。
爲了找出問題,您應該在調試器中逐行執行,密切關注所有變量的值。 –