0% acharam este documento útil (0 voto)
4 visualizações7 páginas

Relatório sobre Jogo "21" em C++

O relatório apresenta o desenvolvimento teórico de um jogo de baralho '21' em C++, abordando conceitos de programação como estruturas de dados e lógica de jogo. A análise inclui regras do jogo, lógica de interação entre jogador e banca, e a interface baseada em terminal. A etapa teórica é crucial para o planejamento e identificação de desafios na implementação prática do jogo.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações7 páginas

Relatório sobre Jogo "21" em C++

O relatório apresenta o desenvolvimento teórico de um jogo de baralho '21' em C++, abordando conceitos de programação como estruturas de dados e lógica de jogo. A análise inclui regras do jogo, lógica de interação entre jogador e banca, e a interface baseada em terminal. A etapa teórica é crucial para o planejamento e identificação de desafios na implementação prática do jogo.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Universidade de Ouro Preto - UFOP

Departamento de computação (DECOM)

Relatório - Elaboração do trabalho

Alunos: Fernando Magalhães, Rafael Panerari

Professor: Guilherme Augusto Anício

Julho

2025
Universidade de Ouro Preto - UFOP
Departamento de computação (DECOM)

Relatório

Primeiro relatório do trabalho teórico apresentado. Do curso de Engenharia


de Controle e Automação da Universidade de Ouro Preto.

Alunos: Fernando Magalhães, Rafael Panerari


Professor orientador: Guilherme Augusto Anício

Julho
2025
Conteúdo

1 Introdução 1

2 Desenvolvimento 2

3 Conclusão 3

4 Bibliografia 4
1 Introdução

O trabalho tem como objetivo o desenvolvimento de um jogo de baralho “21”,


utilizando a linguagem de programação C++. Tem o intuito de aplicar os
conhecimentos adquiridos ao longo da disciplina de BCC702, abrangendo
conceitos como estruturas de dados, manipulação de entrada/saída, uso de
vetores e funções, além de lógica de jogo e interação com o usuário. O “21” é
um dos jogos de cartas mais populares do mundo e oferece uma excelente
oportunidade para explorar a lógica condicional e estruturas de repetição.

Foi escolhido, o ambiente de desenvolvimento Visual Studio Code (VScode), já


utilizado em sala, e devido a sua flexibilidade e leveza ao manipular códigos.
O jogo “21” foi escolhido devido ao seu funcionamento direto, e por ser uma
aplicação de raciocínio lógico, uso de condições e tomadas de decisões
específicas.

1
2 Desenvolvimento

Regras do Jogo

O “21” é um jogo de cartas no qual o objetivo é somar 21 pontos ou chegar o


mais próximo possível desse valor, sem ultrapassá-lo. Cada carta tem um valor
específico:

 Cartas de 2 a 10 valem seus respectivos valores.


 Valetes (J), Damas (Q) e Reis (K) valem 10 pontos.
 Ás (A) pode valer 1 ou 11 pontos, dependendo da vantagem do jogador.

O jogo normalmente ocorre entre um jogador e a "banca" (representada pelo


computador). Ambos recebem cartas, podendo escolher se querem mais
cartas ou se desejam parar, entretanto, em seu desenvolvimento, será
analisada a possibilidade de ser implementado o “x1”, jogador contra jogador.

Lógica de Jogo

O jogo inicia com a distribuição de forma aleatória, utilizando o rand, duas


cartas para o jogador e duas para a banca (uma delas oculta). O jogador decide
se deseja mais cartas ou se quer parar. Em seguida, a banca compra cartas até
atingir pelo menos 17 pontos. O vencedor é determinado com base nas
pontuações finais, observando se algum dos lados ultrapassou 21 pontos
(estourou), que será utilizado uma serie de validações para analisar a
pontuação final.

Caso o modo de jogo escolhido seja o “x1”, ambos os jogadores terão a opção
de escolher cartas e decidir se desejam mais ou se querem parar, será
implementado uma forma para ser secreta a escolha.

Interface

A interface do jogo é baseada em no terminal, utilizando cout e cin para


interação com o usuário. Embora simples, é funcional, rápida, e permite que o
programa receba as informações necessárias do usuário. De maneira análoga,
permite que o jogador, interprete de maneira clara, suas opções de jogo e suas
cartas, por meio do terminal.

2
3 Conclusão

Nesta primeira etapa do trabalho, dedicada à parte teórica do desenvolvimento


do jogo “21”, foi possível realizar uma análise detalhada das regras do jogo, da
lógica envolvida em suas etapas e das estruturas de programação necessárias
para sua futura implementação em C++.

Essa fase inicial teve um papel essencial para a organização e planejamento do


projeto, facilitando a escolha de caminhos e tomadas de decisões, para uma
melhor compreensão do código.

Durante o estudo teórico, alguns desafios já foram identificados. Um dos


principais foi compreender como representar corretamente as cartas do baralho
em C++, especialmente levando em conta os diferentes valores que uma carta
pode assumir (como o Ás, que vale 1 ou 11 dependendo da situação). Além
disso, foi necessário pensar em como estruturar a lógica de jogo por meio de
funções, manter o controle da pontuação dos jogadores e simular o
comportamento da banca de forma justa e automatizada.
Outro ponto de atenção foi o planejamento da aleatoriedade na distribuição das
cartas e a maneira como o baralho será embaralhado.

Conclui-se que a etapa teórica é fundamental para o desenvolvimento prático


do trabalho, mapeando os principais componentes e obstáculos do jogo,
possibilitando escolher as melhores estruturas que se encaixem no código, e
prever possíveis dificuldades.

3
4 Bibliografia

Trabalho Prático - BCC702 (2025.1) BARBARA LETICIA RODRIGUES MILAGRES GUILHERME AUGUSTO
AN´ICIO DRUMMOND DO NASCIMENTO

Common questions

Com tecnologia de IA

Os desafios principais incluem a representação correta das cartas do baralho em C++, especialmente o Ás, que pode valer 1 ou 11, a estruturação da lógica de jogo através de funções, o controle da pontuação dos jogadores, e a simulação do comportamento da banca de modo justo e automatizado. Além disso, o planejamento da aleatoriedade na distribuição das cartas e como o baralho será embaralhado foram destacados como pontos de atenção .

Visual Studio Code foi escolhido devido à sua flexibilidade e leveza, que permitem uma manipulação eficiente do código. Ele já é utilizado em sala de aula, facilitando a continuidade do ambiente de aprendizado para a aplicação prática no projeto do jogo '21'. Este ambiente suporta o manejo de código de forma eficiente tanto para programação quanto para debug .

A etapa teórica é crucial para o planejamento e organização do projeto, permitindo mapear componentes e obstáculos do jogo. Ela facilita escolhas informadas para as estruturas de programação, prevê dificuldades, e assegura um entendimento abrangente das regras e lógica necessárias para a implementação prática, o que é essencial para um desenvolvimento eficiente e eficaz .

A representação das cartas é desafiadora porque envolve lidar com a variabilidade dos valores das cartas, especialmente o Ás, que pode assumir mais de um valor. Isso requer uma lógica bem pensada para determinar o valor mais vantajoso baseado na situação atual do jogo, controlando a pontuação de forma precisa .

A lógica condicional é aplicada ao determinar se o jogador ou a banca irão solicitar mais cartas ou parar, baseando-se na somatória das cartas em mãos. As estruturas de repetição são empregadas para simular o turno da banca em que esta deve continuar comprando cartas até atingir pelo menos 17 pontos .

A interface do jogo é baseada no terminal, utilizando cout e cin, permitindo uma interação simples e funcional. Ela possibilita ao usuário enviar suas respostas de forma rápida e compreender claramente suas opções e cartas de jogo pelo terminal. Apesar de sua simplicidade, é eficaz e cumpre o objetivo do projeto .

A aleatoriedade é crítica para garantir um jogo justo e espontâneo. O uso da função rand para distribuir cartas aleatoriamente assegura que o jogo simule a incerteza e a variação esperadas em um jogo de cartas real. Planejar essa aleatoriedade corretamente é essencial para que o baralho não favoreça nenhum jogador de forma sistemática .

O jogo '21' é jogado com o objetivo de somar 21 pontos ou chegar o mais próximo possível sem ultrapassar. As cartas de 2 a 10 valem seus valores numéricos, figuras valem 10, e o Ás vale 1 ou 11 dependendo da vantagem do jogador. Estas regras orientam a lógica do jogo ao definir como as decisões de jogar ou parar são tomadas, influenciadas pela pontuação atual e a estratégia .

No desenvolvimento do jogo '21', são aplicados conceitos como estruturas de dados para representar cartas e pontuações, manipulação de entrada/saída para interação com o usuário, uso de vetores para armazenar cartas, lógica condicional para decisões do jogo, e funções para organizar a lógica de jogo .

A fase teórica permite um aprofundamento dos conceitos e lógica de jogo antes da codificação, assegurando que todas as condições e cenários possíveis sejam antecipados. Ela também facilita a escolha acertada de estruturas de dados, função, e manipulação de entrada/saída, garantindo que o código seja organizado, eficiente e fácil de manter .

Você também pode gostar