Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blackjack #52

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 58 additions & 12 deletions versao_1.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,58 @@
/**
* EXEMPLO DE UTILIZAÇÃO DA 'comprarCarta'
*
*
const carta = comprarCarta(); // Sorteia uma carta. Por exemplo, o rei de ouros

console.log(carta.texto) // imprime o texto da carta. Exemplo: "K♦️" (indica "K" de ouros)
console.log(carta.valor) // imprime o valor da carta (um número). Exemplo: 10 (dado que "K" vale 10)
*
*
*
*/
console.log("Boas vindas ao jogo de BlackJack!");

if (confirm("Quer iniciar uma nova rodada?")) {
const numbers = ["A", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K"];
const suits = ["♥️", "♣️", "♦️", "♠️"];

function randomCard() {
const indexNumbers = Math.floor(numbers.length * Math.random());
const indexSuits = Math.floor(suits.length * Math.random());
const randomNumbers = numbers[indexNumbers];
const randomSuits = suits[indexSuits];
const card = `${randomNumbers}${randomSuits}`;

let cardValue;
if (randomNumbers === "A") {
cardValue = 11;
} else if (
randomNumbers === "J" ||
randomNumbers === "Q" ||
randomNumbers === "K"
) {
cardValue = 10;
} else {
cardValue = randomNumbers;
}

return { card, cardValue };
}

const card1 = randomCard();
const card2 = randomCard();
const card3 = randomCard();
const card4 = randomCard();

const cardValue1 = card1.cardValue;
const cardValue2 = card2.cardValue;
const cardValue3 = card3.cardValue;
const cardValue4 = card4.cardValue;

const userSum = cardValue1 + cardValue2;
const pcSum = cardValue3 + cardValue4;

const user = `${card1.card} ${card2.card} - ${userSum}`;
const pc = `${card3.card} ${card4.card} - ${pcSum}`;

console.log(`Usuário - cartas: ${user}`);
console.log(`Computador - cartas: ${pc}`);

if (pcSum > userSum) {
console.log("O computador ganhou!");
} else if (pcSum < userSum) {
console.log("O Usuário ganhou!");
} else {
console.log("Empate!");
}
} else {
console.log("O jogo acabou");
}
100 changes: 88 additions & 12 deletions versao_2.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,89 @@
/**
* EXEMPLO DE UTILIZAÇÃO DA 'comprarCarta'
*
*
const carta = comprarCarta(); // Sorteia uma carta. Por exemplo, o rei de ouros

console.log(carta.texto) // imprime o texto da carta. Exemplo: "K♦️" (indica "K" de ouros)
console.log(carta.valor) // imprime o valor da carta (um número). Exemplo: 10 (dado que "K" vale 10)
*
*
*
*/
if (
confirm("Boas vindas ao jogo de BlackJack!\nQuer iniciar uma nova rodada?")
) {
const numbers = ["A", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K"];
const suits = ["♥️", "♣️", "♦️", "♠️"];

let userSum = 0;
let pcSum = 0;
let user = "";
let pc = "";

function randomCard() {
const indexNumbers = Math.floor(numbers.length * Math.random());
const indexSuits = Math.floor(suits.length * Math.random());
const randomNumbers = numbers[indexNumbers];
const randomSuits = suits[indexSuits];
const card = `${randomNumbers}${randomSuits}`;

let cardValue;
if (randomNumbers === "A") {
cardValue = userSum + 11 <= 21 ? 11 : 1;
} else if (["J", "Q", "K"].includes(randomNumbers)) {
cardValue = 10;
} else {
cardValue = randomNumbers;
}

return { card, cardValue };
}

const card1 = randomCard();
const card2 = randomCard();
const card3 = randomCard();
const card4 = randomCard();

const cardValue1 = card1.cardValue;
const cardValue2 = card2.cardValue;
const cardValue3 = card3.cardValue;
const cardValue4 = card4.cardValue;

userSum = cardValue1 + cardValue2;
pcSum = cardValue3 + cardValue4;

user = `${card1.card} ${card2.card}`;
pc = `${card3.card} ${card4.card}`;

function blackJack() {
let newCard;
let newCardValue;

while (
userSum < 21 &&
confirm(
`Suas cartas são ${user} - ${userSum}.\nDeseja comprar mais uma carta? `
)
) {
newCard = randomCard();
newCardValue = newCard.cardValue;
userSum += newCardValue;
user += ` ${newCard.card}`;
}

while (pcSum <= 18 && pcSum < userSum) {
newCard = randomCard();
newCardValue = newCard.cardValue;
pcSum += newCardValue;
pc += ` ${newCard.card}`;
}

if (userSum === 21) {
confirm(`Ganhou!`);
} else if (userSum > 21) {
confirm(`Perdeu!\nSuas cartas são ${user} - ${userSum}.\n`);
} else if (pcSum > 21 || pcSum < userSum) {
confirm(
`Você ganhou!\nSuas cartas são ${user} - ${userSum}.\nAs cartas do computador são ${pc} - ${pcSum}`
);
} else if (pcSum > userSum && pcSum < 21) {
confirm(`O computador ganhou!\nCartas do computador: ${pc} - ${pcSum}.`);
} else if (pcSum === userSum) {
confirm(
`Empate!\nSuas cartas são ${user} - ${userSum}.\nAs cartas do computador são ${pc} - ${pcSum}`
);
}
}
blackJack();
} else {
confirm("O jogo acabou");
}