Claro... mas importante aun que el codigo es la logica
Alli es cuando uno se acuerda de los profes cuando le decian a uno
Antes de ponerse a hacer el codigo, dibujen, imaginen y entiendan la logicaBien como te decia para que la maquina siempre gane, se necesita tener en cuenta el turno del jugador.
A lo que yo me puse a dibujar :p (subiria la imagen de mis matachos, pero el escaner esta ocupado)
mmm... vaya es mas complicado explicarlo que dibujarlo jajajaja
Necesitas qeu el usuario juegue en determinados numeros, como cuando solo hay un objeto.
estos numeros son 1, 5, 9, 13... te das cuenta el incremento es de 4. Cuando tomas todos estos numeros y los divides entre 4 siempre te va a quedar de residuo 1 (tambien conocido como el modulo)
Lo que tienes que hacer es que el usuario solo pueda jugar cuando esten esas cantidades de numeros.
digamos que se elige el numero 12 para jugar, como el 12%4=0, entonces debo hacer que la maquina juegue primero y me convierta esos 12 objetos en 9 (puesto que 9%4=1, y el 9 es menor que 12)
Ahora el jugador puede restar 1,2 o 3. Si el resta 1 quedara en 8, y a nosotros nos conviene que el siguiente numero sea 5, asi que el computaador restara 3. Si el user resta 2 nosotros restaremos 2 para que la cantidad de objetos sea 5, y si el user resta 3 la maquina debera restar 1 para que quede el numero que nos conviene, el 5.
(cuando restamos estamos completando 4)
Biena ahora en el 5 juega el usuario por lo que puede restar 1, 2 o 3, nostros (la maquina) debera completar la resta para restar 4, asi el usuario quedara con la ultima ficha.
En si lo que hay es que forzar al usuario a jugar cuando la cantidad de objetos divida entre 4 tenga por residuo 1. Y despues de ello completar la resta de 4.
Trate de explicar lo mejor que pude. Si luego me acuerdo subo mis matachos que son mas entendibles :p
Salu2
En el codigo de satu el srand() es para generar numeros aleatorios, ya la linea completa esta asignando a resta un numero entre 1 y 3