Código
// Generar array de cartas: Cartas = []; Nro = 0; do { Nro++; Cartas[Cartas.length] = "Pica"+Nro; Cartas[Cartas.length] = "Trebol"+Nro; Cartas[Cartas.length] = "Corazon"+Nro; Cartas[Cartas.length] = "Diamante"+Nro; } while (Nro < 13); // Ordenarlas al azar: Posicion1aReubicarse = Cartas.length-1; while (Posicion1aReubicarse>0) { Posicion2aReubicarse = random(Posicion1aReubicarse+1); // trace (Cartas[Posicion1aReubicarse]+" se intercambiará con "+Cartas[Posicion2aReubicarse]); SaveDeElemento1 = Cartas[Posicion1aReubicarse]; Cartas[Posicion1aReubicarse] = Cartas[Posicion2aReubicarse]; Cartas[Posicion2aReubicarse] = SaveDeElemento1; Posicion1aReubicarse--; } trace (Cartas);
Ejemplo de salida:
Corazon8,Diamante9,Trebol11,Trebol6,Diamante11,Corazon2,Corazon1,Pica2,Pica3,Pica5,etc
Cuando un jugador tome cartas, el programa deberá poder calcular cuánto suman.
Ya sé, en vez de ponerles nombres tan largos, les pongo:
P, T, C, D
luego cuando deba sumar les quito el caracter y ya tengo el número.
¿Algún método mejor? ¿consejos sobre cómo hacer el juego?
He pensado en estos pasos a seguir (orden a realizar, no es que en el código vayan a estar así):
- Lograr que las cartas se ordenen al azar. Hecho.
- Mensaje dice cuales son las 2 obtenidas.
- Se suman pero, las 1 valen 11 (salvo que sean 2 1s, en ese caso el 2ndo vale 1) y las que están por encima de 10 valen 10.
- Un rival también obtiene 2 cartas.
- Se suman por separado y se compara quién obtuvo mayor suma.
- Se pregunta al jugador si quiere otra carta. Si dice que sí se le da y se acaba, sino lo de siempre.
- Ajustar la suma, ahora 1 podría valer 1 o 11.
- El jugador puede pedir carta de nuevo, hasta... 4+8+12, digo, mientras tenga menos de 11 cartas. Eso fue calcular que tendría 4 de 1 (1*4=4), 4 de 2, y 4 de 3, las mínimas cartas, 12, pero con esas suma más de 21, no tiene sentido que llegue a tener 12.
- El rival tomará cartas mientras su suma no llegue a 17. Me lo dijo GPT, sólo sería para probar.
- Se analiza quién ganó y se dice en pantalla.
- Para cada posible situación (cartas de la IA y cuántas tiene la persona) generar un archivo txt cuyo nombre marque qué situación es.
- En cada archivo guardar 2 variables, ambas con valor 0: P y T. Plantarse o tomar.
- Cuando la partida acabe, si la IA ganó, aumentar 1 al valor de la acción que usó en las situaciones en que estuvo, sino restarle. No sé exacto cómo sería esto.
- La IA hace lo que el correspondiente archivo marque como más valioso.
- Lo de aumentar o restar se aplica usando también las cartas de la persona, o sea, desde su perspectiva, conociendo sus cartas pero no las de la IA.
También se podría hacer un generador de las situaciones posibles y probar cada acción así, pero las situaciones son como 52*51*50*49 para empezar...
Ah pero no importa si se tiene el 1 de pica o trebol, etc, así que...
10*10*10*10 para empezar. Igual serían demasiados archivos... La información se puede poner en 1 solo, o distinta info en más de 1, habrá que ver...
- Opción de jugar contra 2.
- Nuevo aprendizaje, basado en jugar contra 2.
Supongo que no llegaré a tanto xP