Я занимаюсь пограничной игрой в C, и у меня возникают некоторые проблемы с циклом while и значениями, которые я получаю в выводе.
У меня есть массив с некоторыми случайными значениями вэто от -5 до 5 в 20% доски.и что я пытаюсь сделать, это просто добавить это значение в мою переменную с именем player.
int player1 = 0, player2 = 0, player3 = 0, player4 = 0;
int dice = 0, number_of_players = 0, number_of_players = 2;
while(player1 < 50 && player2 < 50){
if(number_of_players == 2){
dice = (rand() % 6) + 1;
player1 += dice;
if(border[player1] != 0){
player1 = player1 + (border[player1]);
}
dice = (rand() % 6) + 1;
player2 += dice;
if(border[player2] != 0){
player2 = player2 + (border[player2]);
}
}
}
if(player1 > player2) printf("Player 1 won. Score: %d", player1);
if(player2 > player1) printf("Player 2 won. Score: %d", player2);
Это код для моего массива под названием "border", он выше моего цикла while:
#define TAM 50
int border[TAM], i, pos, casas;
for( i=0; i<TAM; i++ )
border[i] = 0;
i = 0;
while( i < (int)TAM*0.1 ){
pos = rand() % TAM;
if( border[pos] == 0 ){
casas = (rand() % 5) + 1;
border[pos] = casas;
i++;
}
}
i = 0;
while( i < (int)TAM*0.1 ){
pos = rand() % TAM;
if(border[pos] == 0){
casas = (rand() % 5) + 1;
border[pos] = casas * (-1);
i++;
}
}
выход иногда равен 50, что я понятия не имею, как он получается, потому что он останавливает цикл, только когда игрок достигает 51 или выше.Я также получаю супер высокие значения, такие как: 299158477. Я новичок в C. Спасибо всем.