Hola!<br><br>Estoy haciendo un programa que simula un juego de tablero de 9 casillas. Debe ser capaz de posicionar una ficha en el tablero una vez he puesto yo la mía, por lo que he hecho un algoritmo simple tal como:<br><br>

- Posiciono mi ficha<br>- Genero número aleatorio rango 0-8<br>- Compruebo la casilla correspondiente al número, para ver que está libre<br>- Si está libre: Pongo ficha de la máquina<br>- Si no: Vuelvo a generar el número y repetir los pasos.<br>

<br>El programa lo hace correctamente, posiciona una ficha en una casilla vacía, el problema es que cuando yo pongo mi ficha, por ejemplo, en la casilla central, la máquina siempre posiciona la suya en la misma casilla, es como si la semilla que tomase por defecto lo llevase a generar ese número siempre. Mi código es:<br>

<br>do {<br>                int casilla = (rand()%9); // Se genera una casilla aleatoria, entre 0 - 8<br>            <br>                if (ocupados[casilla] == 0) // Si esta libre..<br>                {<br>                    ...<br>

                   codigo<br>                   ...<br><br>                    fichaFijada=1; // Hemos puesto la ficha, salimos del bucle<br>                    ocupados[casilla]=1; // Indicamos que esa casilla ahora esta ocupada por la maquina<br>

                   <br>                }<br>            } while (fichaFijada == 0);<br><br>¿Cómo podría generar números en ese mismo rango (0-8) con una semilla de forma que no siempre generase el mismo número?<br>He probado con srand(time(NULL)) pero a veces tarda demasiado (unos segundos) en generarlo (y por consiguiente posicionar su ficha) y da la sensación de que el programa se ha colgado...<br>

<br>¿Alguna idea amig@s?<br><br>Muchas gracias!<br clear="all"><br>-- <br>======================<br>  Javier Cancio del Busto<br>======================<br>      <a href="http://sepho.es/">http://sepho.es/</a><br>======================<br>