Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: melodicpunkcore en 16 Agosto 2016, 17:37 pm



Título: Ayuda con este mini programilla
Publicado por: melodicpunkcore en 16 Agosto 2016, 17:37 pm
Hola, buenas gente, estoy haciendo este pequeño ejercicio y me estoy volviendo loco. Os explico de que va y donde tengo el problema, hay una función main que es la llamada Blackjack(), y luego tengo a un croupier que reparte y puntua. Reparto las cartas y me va correcto, y puntuo las cartas y también me va correcto. Pero no soy capaz de almacenar las cartas en un array para luego ser puntuadas. Me refiero, que ejecutando las funciones independientes se va dando cartas de forma aleatoria , pero ahí querría poder almacenar las que se van dando en un array, para luego con la otra función puntuar esa tirada de cartas. Para ello le paso a la función puntuar la mano, pero he probado varias formas y no soy capaz, por eso pido ayuda.
Código:

<!doctype>
<html lang="es">
<head>
<script type="text/javascript">

var mano=[{palo:'T',valor:1},{palo:'P',valor:2},{palo:'C',valor:1},{palo:'D',valor:2}];
var baraja=[];
//***************
//CREAMOS JUGADOR
//***************

var jugador={};

jugador.mano=[{palo:"d", valor:1}];

jugador.pasar = 0;

//***************
// MAIN DEL JUEGO
//***************

function blackjack(){
var miBaraja=baraja;
var miCroupier = croupier;
var miJugador=jugador;
do {
  var comprobar=prompt("Quieres  carta: ?");
if (comprobar === "S" || comprobar === "s") {
croupier.repartir();

}else{
jugador.pasar = -1
}
}while (jugador.pasar=== 0);

croupier.puntuar(mano);
}

//*****************
// CREAMOS CROUPIER
//*****************

var croupier={};

croupier.repartir = function (){
var baraja=[];
var palos=["C","D","P","T"];

for (var i=0;i<palos.length;i=i+1){
var palo=palos[i];
for (var j=1; j<=12;j=j+1){
var valor=j;
var carta={palo:palo,valor:valor};
baraja[baraja.length]=carta;

}
}

var x=Math.floor(Math.random() * (48)+1) ;
alert(baraja[x].valor +  baraja[x].palo);
var barajaRepartida=baraja[x];
return barajaRepartida; // nos muestra el valor de la carta alojada en la posición del array que escoge el random a través de la variable X

}



croupier.puntuar=function (mano){ // Si le paso mano por consola funciona


var resultado=0;
var dobles=0;
var suma=0;
var ases=0;
var normal=0;
var duplicado=0;

for(var i=0;i <mano.length;i++){

if (mano[i].valor === 1) {
mano[i].valor=20;


}
else  if (mano[i].palo === "D" || mano[i].palo  === "C"  && mano[i].valor != 1){
mano[i].valor = mano[i].valor*2;

}
else if ( mano[i].palo != "D" || mano[i].palo  != "C" || mano[i].valor != 1){
mano[i].valor= mano[i].valor;

}

resultado= resultado + mano[i].valor;


}

alert("resultado" +resultado);
return resultado;

}

</script>
</head>
<body onLoad="blackjack();">
</body>
</html>


necesito conseguir que se me almacene algo en este formato:

"croupier.puntuar([{palo:'T',valor:1},{palo:'P',valor:2},{palo:'C',valor:1},{palo:'D',valor:2}]);"

Para pasarselo dentro de mano a la función de puntuar.

He editado para aclarar un poco más, lo que necesito es que mano almacene los arrays, cuando se da carta, pero no soy capaz. Ahora puse valores metidos " a calzador" para ver el funcionamiento.


Muchas Gracias.


Título: Re: Ayuda con este mini programilla
Publicado por: melodicpunkcore en 16 Agosto 2016, 22:10 pm
Ya lo solucione  ::). Ya no me hace falta ayuda.


Gracias.