elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Black Jack ¿cómo llamar a las cartas?
0 Usuarios y 5 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Black Jack ¿cómo llamar a las cartas?  (Leído 34 veces)
Tachikomaia


Conectado Conectado

Mensajes: 1.610


Hackentifiko!


Ver Perfil
Black Jack ¿cómo llamar a las cartas?
« en: Hoy a las 06:28 »

Empiezo videojuego que se supone es sencillo de hacer:
Código
  1. // Generar array de cartas:
  2. Cartas = [];
  3. Nro = 0;
  4. do {
  5. Nro++;
  6. Cartas[Cartas.length] = "Pica"+Nro;
  7. Cartas[Cartas.length] = "Trebol"+Nro;
  8. Cartas[Cartas.length] = "Corazon"+Nro;
  9. Cartas[Cartas.length] = "Diamante"+Nro;
  10. } while (Nro < 13);
  11. // Ordenarlas al azar:
  12. Posicion1aReubicarse = Cartas.length-1;
  13. while (Posicion1aReubicarse>0) {
  14. Posicion2aReubicarse = random(Posicion1aReubicarse+1);
  15. // trace (Cartas[Posicion1aReubicarse]+" se intercambiará con "+Cartas[Posicion2aReubicarse]);
  16. SaveDeElemento1 = Cartas[Posicion1aReubicarse];
  17. Cartas[Posicion1aReubicarse] = Cartas[Posicion2aReubicarse];
  18. Cartas[Posicion2aReubicarse] = SaveDeElemento1;
  19. Posicion1aReubicarse--;
  20. }
  21. 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


« Última modificación: Hoy a las 06:34 por Tachikomaia » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines