Boa tarde, estou criando um jogo de campo minado a pedido do meu professor e estou tendo dificuldade ao gerar bombas aleatórias na minha matriz 9x9. Eu utilizo a função
rand(); com seed srand(time(NULL));
para gerar colunas e linhas aleatórias (i e j) que estão funcionando, mas no momento em que troco a matriz[i][j] pelo valor da bomba que e -1, sempre me retorna uma matriz com todas as bombas numa mesma linha. Segue o código do programa e um print do que acontece. http://prntscr.com/keomvl
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//variaveis gobais
//preview funcoes
void introducao();
void zeraMatriz();
void mostraMatriz();
void sorteiaBombas();
//funcoes
void introducao() {
printf("*****************\n");
printf("** MINESWEEPER **\n");
printf("*****************\n");
}
void zeraMatriz(int campoMinado[9][9]) {
int i = 0, j = 0;
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 9; ++j) {
campoMinado[i][j] = 0;
}
j = 0;
}
}
void mostraMatriz(int campoMinado[9][9]) {
int i = 0, j = 0;
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 9; ++j) {
printf(" %d", campoMinado[i][i]);
}
printf("\n");
j = 0;
}
}
void sorteiaBombas(int campoMinado[9][9]) {
int i = 0, j = 0, bombas = 0;
srand(time(NULL));
while(bombas < 10) {
printf("i = %d e j = %d\n", i, j);
i = rand() % 10;
j = rand() % 10;
if(campoMinado[i][j] == 0)
{
campoMinado[i][j] = -1;
bombas++;
}
}
}
int main() {
introducao();
int campoMinado[9][9];
zeraMatriz(campoMinado);
mostraMatriz(campoMinado);
printf("\n");
sorteiaBombas(campoMinado);
printf("\n\n");
mostraMatriz(campoMinado);
//sortear bombas
//calculardicas
//mostrartabuleiro
//loop
//ler coordenadas
//ler abrir ou bomba
//se abrir
// -dica --> abrir apenas a casa
// -bomba --> morre
// -vazio --> abrir e analisar vizinhos ate a dica
//se marcar
// -marcar
//ate ganhar ou morrer
system("pause");
return 0;
}
O erro acontece a partir da linha 47. Agradeço desde já