From 1c28760961bfe9173346a6e7c53145958f1fbb38 Mon Sep 17 00:00:00 2001 From: barbosagil Date: Thu, 6 Jul 2023 15:30:32 -0300 Subject: [PATCH] Projeto finalizado --- README.md | 24 +++++++---- desafio.js | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++ index.html | 27 ++++++++----- nossoJogo.js | 53 +++++++++++++++++++++++- style.css | 5 +++ 5 files changed, 201 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 6a35dbb..4c31dbf 100644 --- a/README.md +++ b/README.md @@ -25,16 +25,24 @@ O enunciado completo está no Sistema de Estudante, na sessão de Projetos https ## Lista de requisitos +-------------------- Projeto 1 --------------------- -- [ ] O usuário deve encontrar uma mensagem de boas vindas no console ao abrir o programa +- [x] O usuário deve encontrar uma mensagem de boas vindas no console ao abrir o programa -- [ ] O usuário deve ser questionado se deseja iniciar uma nova rodada +- [x] O usuário deve ser questionado se deseja iniciar uma nova rodada -- [ ] Se o usuário recusar iniciar uma nova rodada, o programa deve imprimir uma mensagem informando o fim do jogo +- [x] Se o usuário recusar iniciar uma nova rodada, o programa deve imprimir uma mensagem informando o fim do jogo -- [ ] Se o usuário aceitar iniciar uma nova rodada, o programa deve exibir as cartas do jogador e do computador +- [x] Se o usuário aceitar iniciar uma nova rodada, o programa deve exibir as cartas do jogador e do computador -- [ ] Ao final do jogo, o programa deve imprimir o resultado informando quem ganhou +- [x] Ao final do jogo, o programa deve imprimir o resultado informando quem ganhou + +- [x] Se o usuário somar mais de 21, o mesmo perde automaticamente + +- [x] Se o computador somar mais de 21, o mesmo perde automaticamente + +-------------------- Projeto 1 --------------------- +-------------------- Projeto 2 --------------------- - [ ] Implementou a verificação para impedir um par de A na primeira mão @@ -42,11 +50,11 @@ O enunciado completo está no Sistema de Estudante, na sessão de Projetos https - [ ] O usuário é questionado se deseja comprar mais cartas -- [ ] Se o usuário somar mais de 21, o mesmo perde automaticamente - -- [ ] Se o computador somar mais de 21, o mesmo perde automaticamente +- [x] Se o usuário somar mais de 21, o mesmo perde automaticamente +- [x] Se o computador somar mais de 21, o mesmo perde automaticamente +-------------------- Projeto 2 --------------------- ### Instruções de entrega diff --git a/desafio.js b/desafio.js index fa0b1b9..5e0f8cf 100644 --- a/desafio.js +++ b/desafio.js @@ -10,4 +10,116 @@ * * */ +// Declaração de variável +let resultadoUsuario = 0 +let somaTotalComputador = 0 +let textoUsuario = '' +let somaUsuario = [] +let naipeUsuario = [] +let totalUsuario1 = [] +let resultadoComputador = 0 +let somaTotalUsuario = 0 +let textoComputador = '' +let somaComputador = [] +let naipeComputador = [] +let totalComputador1 = [] + +let jogo = true + +// Resultado cartas Usuário +function cartasUsuario() { + const cartasUsuario = comprarCarta() + resultadoUsuario = cartasUsuario.valor + textoUsuario = cartasUsuario.texto +} + +// Resultado cartas Computador +function cartasComputador() { + const cartasComputador = comprarCarta() + resultadoComputador = cartasComputador.valor + textoComputador = cartasComputador.texto +} + +// Distribuí as primeiras cartas +function inicioJogo() { + for (let i = 0; i < 2; i++) { + cartasUsuario() + cartasComputador() + somaUsuario.push(resultadoUsuario) + naipeUsuario.push(textoUsuario) + somaComputador.push(resultadoComputador) + naipeComputador.push(textoComputador) + } +} + +// Executa a compra de cartas durante o jogo +function comprandoCartaDuranteJogo() { + cartasUsuario() + cartasComputador() + somaUsuario.push(resultadoUsuario) + naipeUsuario.push(textoUsuario) + somaComputador.push(resultadoComputador) + naipeComputador.push(textoComputador) +} + +// Calcula os pontos dos jogadores +function resultado() { + const somar = (acumulado, x) => acumulado + x + const totalUsuario = somaUsuario.reduce(somar) + const totalComputador = somaComputador.reduce(somar) + + totalUsuario1.push(totalUsuario) + totalComputador1.push(totalComputador) + + somaTotalUsuario = totalUsuario1[totalUsuario1.length - 1] + somaTotalComputador = totalComputador1[totalComputador1.length - 1] + +} + +// Verifica se os jogadores atingiu a pontuação +function verificaGanhador() { + if (somaTotalComputador > 21 && somaTotalComputador > somaTotalUsuario) { + return 'Usuário Ganhou!' + + } else if (somaTotalUsuario > 21 && somaTotalUsuario > somaTotalComputador) { + return 'Computador Ganhou!' + + } else if (somaTotalComputador === somaTotalUsuario) { + return 'Empatou!' + } + else { + if (somaTotalComputador > somaTotalUsuario) { + return 'Computador Ganhou!' + }else { + return 'Usuário Ganhou!' + } + + } +} + +// Lógica do jogo + +const inicio = confirm('Bem-vindo ao jogo de Blackjack!\nQuer iniciar uma nova rodada?') +if (inicio === false) { + const acabou = alert('O jogo acabou.') +} else { + inicioJogo() + resultado() + + while (somaTotalComputador <= 21 || somaTotalUsuario <= 21) { + verificaGanhador() + + jogo = confirm(`Suas cartas são ${naipeUsuario}. A carta revelada do computador é ${naipeComputador[0]}.\nDeseja comprar mais cartas?`) + + if (jogo === true) { + comprandoCartaDuranteJogo() + verificaGanhador() + resultado() + } else { + const acabou = alert(`Usuário - Cartas ${naipeUsuario} - Pontuação: ${somaTotalUsuario}\nComputador - Cartas: ${naipeComputador} - Pontuação: ${somaTotalComputador}\n${verificaGanhador()}`) + break + } + } + window.location.reload() +} diff --git a/index.html b/index.html index 31ee9b3..66ee236 100644 --- a/index.html +++ b/index.html @@ -1,14 +1,19 @@ - - - - Future4 - Blackjack - - - - - - - + + + + + Blackjack + + + + + + + + +

Se for o Nosso Jogo abra o console (aperte F12) --->

+ + \ No newline at end of file diff --git a/nossoJogo.js b/nossoJogo.js index b3ea2b0..7564c29 100644 --- a/nossoJogo.js +++ b/nossoJogo.js @@ -9,4 +9,55 @@ * * * - */ \ No newline at end of file + */ + +const bemVindo = console.log('Bem-vindo(a) ao jogo de blackjack') +const comeco = confirm('Quer iniciar uma nova rodada? ') +let resultadoUsuario +let resultadoComputador + +function compraCartaUsuario(){ + for(let i = 0; i <= 0; i++){ + const carta1 = comprarCarta() + const carta2 = comprarCarta() + resultadoUsuario = carta1.valor + carta2.valor + const mensagem = `Usuário - cartas: ${carta1.texto} ${carta2.texto} = ${resultadoUsuario}` + return mensagem + } + +} + +function compraCartaComputador(){ + for(let i = 0; i <= 0; i++){ + const carta1 = comprarCarta() + const carta2 = comprarCarta() + resultadoComputador = carta1.valor + carta2.valor + const mensagem = `Computador - cartas: ${carta1.texto} ${carta2.texto} = ${resultadoComputador}` + return mensagem + } + +} + +function verificaGanhador(){ + if(resultadoComputador > 21 && resultadoComputador > resultadoUsuario){ + console.log('Usuário venceu!') + }else if(resultadoUsuario > 21 && resultadoUsuario > resultadoComputador){ + console.log('Computador venceu!') + }else if (resultadoComputador === resultadoUsuario) { + console.log('Empatou!') + }else{ + if(resultadoComputador > resultadoUsuario){ + console.log('Computador venceu!') + }else { + console.log('Usuário venceu!') + } +} +} + +if(comeco === false){ + console.log('O jogo acabou') +}else{ + console.log(compraCartaUsuario()) + console.log(compraCartaComputador()) + console.log(verificaGanhador()) +} diff --git a/style.css b/style.css index e69de29..3117ada 100644 --- a/style.css +++ b/style.css @@ -0,0 +1,5 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap'); + +h1 { + font-family: 'Poppins', sans-serif; +}