Jogo do Vinte e Um

Trabalho Final - Parte 1 - 2010/1

PUCRS/FACIN - Algoritmos e Programação I

1 Introdução

O objetivo do trabalho é implementar o jogo do Vinte e Um, utilizando duas classes auxiliares adicionais: Carta e Jogador. Duas classes implementam uma única partida do jogo de Vinte e Um e servem como base para o trabalho: Jogo e VinteUmApp. Individualmente, cada aluno deve desenvolver as classes Carta e Jogador e adaptar as classes Jogo e VinteUmApp para permitir diversas partidas de Vinte e Um, simulando um cassino.
Faça aqui o download das classes de base para o trabalho.

2 A classe Carta

A classe Carta armazena um naipe (paus, ouros, copas e espadas) e um número (de 1 a 13). Após ser criada, a carta não pode ter naipe ou número alterados. Devem ser implementados métodos para consultar naipe e número, nome da carta e nome da carta por extenso. O construtor deve verificar se os dados são válidos no momento da criação da carta, caso os dados estejam incorretos, no construtor, a carta deve ser tranformada em um 2 de copas.
As cartas Ás, Valete, Dama e Rei são representadas por letras, respectivamente (A, J, Q e K). Os naipes também recebem letras (P, O, C e E).
Por exemplo, para a carta com naipe copas e número 3:
Outro exemplo, para a carta com naipe ouros e número 11:

3 A classe Jogador

A classe Jogador armazena o nome do jogador, o depósito e o saldo inicial. O depósito é um valor em dinheiro que é informado pelo usuário no início do jogo. O saldo inicial é igual ao depósito. O valor do depósito e o nome do jogador não podem ser alterados após a criação do objeto jogador. O saldo é atualizado de acordo com o resultado de cada partida.
Além disso, a classe mantém três contadores: vitórias, derrotas e empates. Devem ser implementados métodos para consulta o nome do jogador, o saldo, os contadores, o resultado obtido e o percentual de aproveitamento do jogador. Devem existir métodos para informar cada vitória, derrota ou empate e o valor perdido ou ganho pelo usuário em cada partida.
O resultado do jogador é a diferença entre o saldo e o depósito. O aproveitamento é calculado pelo percentual de vitórias sobre vitórias e derrotas. O aproveitamento não considera os empates.

4 Vinte e Um

O jogo de Vinte e Um deve permitir diversas partidas, até o jogador desista ou fique sem dinheiro. Para iniciar, o jogador deve informar sua aposta, no mímino 1 e no máximo todo o seu saldo.
O usuário pode escolher até três cartas. O objetivo é chegar o mais próximo possível do número 21 sem excedê-lo. O jogador que excede o valor de 21 perde a partida. As cartas Valete, Rainha e Rei valem 10. O Ás pode valer 1 ou 11, prevalecendo o valor que favorece o usuário ou o computador. Não há Coringa. É considerado como um BlackJack apenas a combinação de cartas que some 21 pontos com cartas de naipe preto (paus e espadas).
O usuário pode optar por escolher uma, duas ou três cartas. O computador escolhe sempre três cartas. A soma das cartas mais próxima de 21 é a vitoriosa. Cuidado: caso a soma exceda 21, o jogador perde a partida. O usuário joga primeiro.
Na derrota o jogador perde a aposta, no empate ele recebe o valor da aposta de volta, cada vitória paga 1 : 1 ou 3 : 2 no caso do jogador ganhar com um BlackJack. Por exemplo, ao apostar R$ 2,00 o jogador receberia na vitória: R$ 4 ( 1 : 1 ), na vitória com 21 R$ 5 ( 3 : 2 ), na derrota perde o valor da aposta (R$ -2) e no empate, recebe o dinheiro apostado de volta: R$ 2.
Exemplo de jogo:
Vinte e Um
========
Nome do jogador: Marco
Depósito: R$ 200,00
Partida #1
Sua aposta: R$ 10,00
A carta do oponente é: Oito de Paus.
Sua cartas são: Rainha de Paus e Valete de Paus.
Sua opção (Manter, Carta, Desistir)? Manter
Suas cartas formam um total de 20 pontos.
As cartas do oponente são Oito de Paus, Valete de Copas e Rei de Paus com um total de 28 pontos.
Parabéns, você venceu!
Saldo: R$ 210,00
Deseja jogar novamente (SIM/Não)? Não
Marco teve: 1 vitória, nenhuma derrota, nenhum empate (Aproveitamento de 100%).
Seu resultado foi de R$ 20,00 sobre o depósito inicial de R$200,00.
*Volte sempre!*

5 Avaliação


Copyright (C) 2010 PUCRS/FACIN - Algoritmos e Programação I