A downloadable project

 Este site foi desenvolvido por alunos do curso de Design de Jogos e Entretenimento Digital da instituição UNIVALI para a disciplina de Estrutura de Dados do professor Marcelo Dornbush Lopes.

 O projeto tem o objetivo de criar um código para um jogo de poker, ele essencialmente analisa as cartas que estão na mão dos jogadores e na mesa, após isso procura uma das mãos do poker, assim o jogador que tiver a combinação mais forte ganha o jogo.

 O projeto foi programado com a linguagem de programação C# através do Visual Studio Code.

 Assim como no Poker, existem apenas duas maneira de se vencer.  A mais comum delas é através das mãos de poker, onde o jogador que possui a mão mais alta no momento em que as cartas são mostradas ao final vence o jogo. No entanto, nem sempre a mão chega ao fim, pois durante o decorrer dela, os jogadores podem fazer apostas. Contudo, neste protótipo, o jogo considerará somente a primeira mão, decidindo o vencedor a partir daquele que possui a mão mais alta.


 As possíveis combinações das mãos de poker são:


- One Pair ou Um Par:

Duas cartas de valor ou número igual.


- Two Pair ou Dois Pares:

Dois pares de cartas de mesmo valor.


- Three of a Kind ou Trinca:

Três cartas de mesmo valor e outras duas não relacionadas.


- Four of a Kind ou Quadra:

Quatro cartas de mesmo valor e uma carta restante, nomeada de "Kicker".


- Straight ou Sequência:

Cinco cartas de números em sequência, porém de naipes diferentes.


- Flush:

Cinco cartas de mesmo naipe, não importando a sequência.


- Full House:

A combinação de uma trinca e um par.


- Straight Flush:

Cinco cartas de números em sequência do mesmo naipe.


- Royal Flush:

Uma mão composta pelo ás, o rei, a dama, o valete e o dez, sendo todas do mesmo naipe. Esta carta é imbatível.


- Carta Alta:

 Caso o jogador não possua nenhuma das opções acima, essa carta será aquela a valer. A carta mais alta é o ás e a menor é o 2. 


Conceitos básicos do código:


Program.cs

 O programa oferece três modos de operação com base nos argumentos de linha de comando: execução completa (full), execução de um único teste (single), ou exibição de mensagem de ajuda em caso de uso incorreto dos argumentos.

 Para cada modo, ele realiza ações específicas, como exibir menus, criar objetos de jogo ou teste, e interagir com arquivos de dados.


input.cs

 A classe Input encapsula métodos simples para interagir com o usuário através do console.

get_option() é usado para capturar uma opção numérica válida (1 ou 2).

get_text() é usado para capturar um texto digitado pelo usuário.

 Ambos os métodos são estáticos, o que significa que podem ser chamados sem a necessidade de criar uma instância da classe Input.

 Esses métodos são úteis para interações simples de entrada de dados durante a execução do programa, como seleção de opções ou entrada de informações textuais.


load.cs

 Este código é uma implementação básica para carregar uma lista de cartas a partir de um arquivo de texto formatado corretamente, onde cada linha representa uma carta com informações sobre seu naipe, valor e valor numérico. É importante garantir que o arquivo de entrada esteja no formato esperado para evitar erros de leitura ou conversão de dados.

histogram.cs

 A classe Histogram permite criar um histograma de cartas, agrupando-as com base nos seus valores numéricos.

 O método estático sort() fornece uma maneira de ordenar uma lista de cartas com base nos seus valores numéricos, usando o algoritmo Bubble Sort.

croupier.cs

A classe Croupier representa um croupier (negociador de cartas) que possui um baralho de cartas (cards).

 Ela permite criar um novo baralho completo, embaralhar as cartas e distribuir cartas conforme necessário durante um jogo.

game.cs

 Este código em C# define a classe Game, que implementa um jogo onde dois jogadores (representados por listp1 e listp2) recebem cartas de um Croupier e são comparados com base em diferentes combinações de mãos de poker.


 

Tinhamos como objetivo neste projeto desenvolver um jogo de Poker em C#, separando as mãos e dando comandos ao sistema para identificar qual jogador tem a combinação mais forte e assim determinar o vencedor.

 Todas as combinações de cartas foram analisadas, discutidas e concluídas, junto ao jogo como um todo, testes e mais testes foram feitos até chegar em um programa do jogo Poker funcional.


Referências:

https://pt.pokernews.com/maos-de-poker/


Equipe:

Maria Luiza dos Passos-Pesquisador- https://maario-luigi.itch.io/

Nairon Bittencourt Velasco-Programador- https://itch.io/profile/drauzz

Rafael Pierri-Pesquisador- https://itch.io/profile/laparos

Victor Mariano Peres-Programador- https://itch.io/profile/misterpicanha396

Marcelo Dornbusch Lopes - Orientador - m4rc3lo

Universidade do Vale do Itajaí - UNIVALI

Cesar Albenes Zeferino | Diretor Escola Politécnica

Giorgio Gilwan | Coordenador do Curso de Design de Jogos

Rafael Kojiio | Coordenador Gamelab UNIVALI

 Projeto  desenvolvido como requisito parcial para obtenção de aprovação na disciplina: Estrutura de dados - Professor - Marcelo Dornbusch Lopes.

Download

Download
pokerM3-.zip 31 kB

Leave a comment

Log in with itch.io to leave a comment.