sábado, 20 de agosto de 2016

---------Programación con Javascript - Módulo 6-------------

MÓDULO 6

En este último módulo veremos cómo utilizar los OBJETOS y, además, concluir con un proyecto final y como siempre, un test de aprendizaje. 




Dirigirse al link para ver la presentación.

ó




PROYECTO

Proyecto final

Para terminar, os proponemos realizar un proyecto para poner en práctica todo lo que hemos aprendido durante el curso. Ya que hemos estado siempre trabajando con ejemplos en el contexto de una baraja de carta, os proponemos construir un juego de Blackjack.
// Documento Javascript JEFERSON NUÑEZ 1001

// Tiempo para declarar variables
var playerHand = new Array();
var dealerHand = new Array();
var playerScore;
var dealerScore;

// 2d array - Primer nivel para costumes, segundo nivel para las tarjetas
var deck = new Array();

// Creación de una matriz de mis trajes aquí para su uso posterior
var suits = [ "hearts", "diamonds", "clubs", "spades" ];
// lo mismo aquí
var cards = 
[
// Aquí, creación de cada objeto individual que representa una tarjeta. Tiene nombre y un valor
{ name: "ace", value: 11 },
{ name: "2", value: 2 },
{ name: "3", value: 3 },
{ name: "4", value: 4 },
{ name: "5", value: 5 },
{ name: "6", value: 6 },
{ name: "7", value: 7 },
{ name: "8", value: 8 },
{ name: "9", value: 9 },
{ name: "10", value: 10 },
{ name: "jack", value: 10 },
{ name: "queen", value: 10 },
{ name: "king", value: 10 }
];

for (i=0; i<4; i++) 
{
var suit = suits[i]; // Apoderar nuestro suit en el array
deck[i] = new Array(); // 13 cartas por juego

for (j=0; j<13; j++) // Ordena las 13 cartas del palo del array
{
var cardName = cards[j].name;
// Aquí, creamos una url de la carta, y un "tratado" propiedad para decir si lo hemos utilizado
deck[i][j] = 
{
url: "images/" + suit + "/" + cardName + "_of_" + suit + ".jpg", 
dealt: false,
suit: suit,
name: cards[j].name,
value: cards[j].value
};
}
}


// Esta función da a los jugadores cartas
function deal() 
{
var dealerSpace = document.getElementById("dealerspace");
var playerSpace = document.getElementById("playerspace");

//Una carta oculta para el distribuidor
dealerSpace.innerHTML += "<img src='images/facedown.jpg' height='200' width='139' id='hidden'>";

//Una carta visible para el distribuidor
var card = getCard(); // Obtener una nueva carta
dealerHand.push(card);
dealerSpace.innerHTML += "<img src='" + card.url + "' height='200' width='139'>";

//Dos cartas para el jugador
card = getCard();
playerHand.push(card);
playerSpace.innerHTML += "<img src='" + card.url + "' height='200' width='139'>";

card = getCard();
playerHand.push(card);
playerSpace.innerHTML += "<img src='" + card.url + "' height='200' width='139'>";
}

function getCard() // Repetir cartas al azar
{
var randSuit = Math.floor((Math.random()*4)); // Genera un número aleatorio entre 0 y 3 para la suit
var randCard = Math.floor((Math.random()*13)); // Genera un número aleatorio entre 0 y 12 para la tarjeta
// Comprobar para ver si esta carta se ha utilizado. Si es así, generar una nueva.
while(deck[randSuit][randCard].dealt) {
randSuit = Math.floor((Math.random()*4));
randCard = Math.floor((Math.random()*13));
}
// El "tratado" puesto anteriormente lo colocamos ahora, debido a que la carta esta siendo utilizada
deck[randSuit][randCard].dealt = true;
return deck[randSuit][randCard]; 
}

function gameReset()
{
document.getElementById("playerspace").innerHTML=""; //Restablecer la mesa(quitar imagenes de las cartas)
  document.getElementById("dealerspace").innerHTML="";

playerHand = new Array(); //Limpiar cada mano
dealerHand = new Array();

playerScore = 0; //Restablecer el contador de puntuación
dealerScore = 0;

for (var i=0; i<4; i++)  //barajar los naipes
{
for (var j=0; j<13; j++)  
{
deck[i][j].dealt = false;
}
}
}

function hit() //Añadir una tarjeta a la mano del jugador
{
var playerSpace = document.getElementById("playerspace");
var card = getCard();
playerHand.push(card);
playerSpace.innerHTML += "<img src='" + card.url + "' height='200' width='139'>";
}

function hitDealer() 
{
//Muestra la carta oculta
var hiddenCard = getCard();
document.getElementById("hidden").src = hiddenCard.url;
dealerHand.push(hiddenCard);
dealerScore = 0;
var numAces = 0;

//Contabilizar la puntuación del distribuidor
for (i=0; i<dealerHand.length; i++)
{
dealerScore += dealerHand[i].value;

//Contar ases
if (dealerHand[i].name == "ace") 
{
numAces += 1;
}

}

//Puntuaciones menores de 17 años, se sitúa en el 17 y por encima mientras que funciona el: (dealerScore < 17)
{
var dealerSpace = document.getElementById("dealerspace");
var card = getCard();

dealerHand.push(card);
dealerSpace.innerHTML += "<img src='" + card.url + "' height='200' width='139'>";
dealerScore += card.value;

if(card.name == "ace")
{
numAces += 1;
}

if (dealerScore > 21 && numAces > 0)
{
dealerScore -= 10;
numAces -= 1;
}

}

}

function pScore()
{
playerScore = 0;

for (i=0; i<playerHand.length; i++) //La suma de la puntuación
{
playerScore += playerHand[i].value;
}

for (i=0; i<playerHand.length; i++)
{
if (playerHand[i].name == "ace" && playerScore > 21) //Ajustar por ases
{
playerScore -= 10;
}
}

}

function winner()
{
if (dealerScore > 21 && playerScore > 21)
{
alert("Ambos han perdido! Dealer: " + dealerScore + "; Player: " + playerScore);
}

else if (dealerScore === playerScore)
{
alert("Han empatado! Dealer: " + dealerScore + "; Player: " + playerScore);
}

else if (playerScore > 21 && dealerScore <= 21)
{
alert("Tu Perdiste, The Dealer Ganó. Dealer: " + dealerScore + "; Player: " + playerScore);
}

else if (dealerScore > 21 && playerScore <= 21)
{
alert("The Dealer Perdió, Tu ganaste! Dealer: " + dealerScore + "; Player: " + playerScore);
}

else if (dealerScore > playerScore && dealerScore <= 21)
{
alert("The Dealer Ganó. Dealer: " + dealerScore + "; Player: " + playerScore);
}

else if (playerScore > dealerScore && playerScore <= 21)
{
alert("Ganaste! Dealer: " + dealerScore + "; Player: " + playerScore);
}

else 
{
alert("Me dejaste perplejo");
}

}



CALIFICACIÓN PROYECTO FINAL




TEST DE APRENDIZAJE










JEFERSON NUÑEZ
1001









miércoles, 17 de agosto de 2016

---------Programación con Javascript - Módulo 5-------------

MÓDULO 5


En este módulo verás como utilizar las librerías de código entrando en un campo más notorio, como lo son las matemáticas; todo esto en una presentación de Prezi.





TEST DE APRENDIZAJE
















JEFERSON NUÑEZ
1001




domingo, 14 de agosto de 2016

---------Programación con Javascript - Módulo 4-------------


MÓDULO 4

En la siguiente presentación de haikudeck se observará todo lo relacionado con funciones y programas.




PROBLEMA

1. Desarrolla una función que puntúe una mano de cartas, que tenga como parámetro un array de cartas, cada una representada por un diccionario con palo y valor. Al puntuar, las cartas suman su valor excepto si es un as que suma 20. Prueba a invocarla con varias manos de cartas con y sin ases.

2. Partiendo de la función anterior, modíficala para que además las cartas rojas sumen el doble. Prueba a invocarla con varias manos de cartas.

3. Desarrolla un programa que use la función anterior para puntuar las manos de cartas de dos jugadores e imprima por consola al ganador, es decir, al que obtenga mayor puntuación.



jueves, 11 de agosto de 2016

---------Programación con Javascript - Módulo 3-------------


MÓDULO 3


En este blog estaremos revisando las estructuras de datos con una presentación elaborada en Prezi.



Clic para dirigirse a la presentación.


TEST DE APRENDIZAJE











domingo, 7 de agosto de 2016

---------Programación con Javascript - Módulo 2-------------

MÓDULO 2

En este blog mostraremos las estructuras de control en una presentación con Powtoon. Al final de documento estarán anexas las preguntas del examen Módulo 2.



Dirigirse al link para ver la presentación.

ó





TEST DE APRENDIZAJE