pÔquer - professorvida.com.brpôquer é um jogo de sorte e estratégia, onde o jogador apostará na...

16
Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte. 1 PÔQUER Trabalho feito e desenvolvido pelos alunos: João Crespim Juscelino Dorneles Weslley Picone Curitiba, 27 de agosto de 2014

Upload: others

Post on 01-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

1

PÔQUER

Trabalho feito e desenvolvido pelos alunos: João Crespim

Juscelino Dorneles Weslley Picone

Curitiba, 27 de agosto de 2014

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

2

Í ndice

Introdução 3

Dados Técnicos do Jogo 3

Dinâmica do Jogo 3

Dicionário do Pôquer 6

Ranking de Combinações 6

Adaptação do Jogo para o Ambiente Computacional 9

Disposição dos jogadores e sua representação no Ambiente Computacional 10

Modelo Computacional 11

Diagrama de Classes – Completo 12

Diagrama de Sequência – Parte 15

Referências 16

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

3

Íntroduçã o

Pôquer é um jogo de sorte e estratégia, onde o jogador apostará na combinação de suas cartas

com outras cinco cartas da mesa para obter a maior pontuação e assim ganhar o valor total do

pot.

Figura 1 – Cartas do baralho e as tradicionais fichas de pôquer. Fonte: Win Poker Game¹

Dãdos Te cnicos do Jogo

Propriedade Valor

Quantidade de Jogadores 2 a 6

Objetivo Combinar as cartas em mãos com as cartas da mesa e fazer a combinação de valor mais alto para ganhar a rodada

Quantidade de Cartas 52

Vencedor Vence o único jogador com fichas restantes na mesa.

Dinã micã do Jogo

No início de cada rodada, um jogador é escolhido para ser o Dealer e esse jogador recebe

o Dealer Button. Este botão passa na mesa, no sentido horário, na medida em que as

rodadas avançam.

Antes do jogo começar, o jogador a esquerda do dealer button coloca a small blind. O próximo

jogador no sentido horário colocará o big blind, que é o valor que corresponderá de acordo

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

4

com o stakes e a estrutura de apostas. Cada rodada é definida em quatro turnos: Pré-flop,

Flop, Turn e River.

Pré-Flop Cada jogador receberá duas cartas nesse turno, onde só ele poderá vê-las. O jogador

imediatamente a esquerda do jogador que fez o big blind irá iniciar a rodada. Nesse turno,

cada jogador terá cinco opções: Apostar, Pagar, Correr, Aumentar, Check.

Apostar: caso ainda não tenha sido feito uma aposta, o jogador pode escolher uma quantia

para apostar ou então apostar tudo;

Pagar: Paga a quantia em que foi apostado;

Correr: O jogador abre mão de suas cartas e também do dinheiro do pote;

Aumentar: O jogador aumenta a posta, podendo também apostar all-in.

Check: Caso nenhum jogador tenha feito uma aposta, o jogador poderá apenas checar e passar

sua vez.

O turno só termina após todos os jogadores terem apostado ou então todos os jogadores

terem apenas checado.

Flop Três cartas são mostradas na mesa, com seus valores compartilhados com todos os jogadores.

O primeiro jogador a jogar nesse e nos próximos turnos será aquele imediatamente a esquerda

do dealer. As regras de aposta são iguais as do pré-flop.

Turn A quarta carta é mostrada na mesa, iniciando a terceira rodada de apostas com as mesmas

regras do Flop

River Nesse turno a última carta é mostrada e então é iniciada a última rodada de aposta. Após

todos os jogadores terem apostado ou checado, os valores da cartas serão checados. A melhor

combinação ganhará a rodada levando o valor do pot. Caso haja empate, o valor do pot será

dividido em partes iguais entre os ganhadores. O fluxograma 1 a seguir apresenta a

Funcionamento e a dinâmica do jogo de forma estruturada.

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

5

Fluxograma 1

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

6

Dicionã rio do Po quer

All-in: Apostar todas suas fichas.

Big Blind: É a aposta de valor total da rodada.

Blind: É a aposta inicial feita por todos os jogadores antes de ser distribuídas qualquer carta.

Check: Não apostar ou aumentar, essa opção só é disponível a partir do pré-flop e caso

nenhum jogador tenha apostado.

Dealer: Geralmente o jogador que dá as cartas, ele também recebe o Dealer Button. Caso haja

um dealer profissional, o Dealer Button será dado para os jogadores apenas na forma de

marcar o jogador que irá iniciar.

Dealer Button: Marcação que determina o primeiro jogador da rodada.

Flop: Turno em que são apresentadas as três primeiras cartas comunitárias.

Pot: Valor arrecado das apostas de todos os turnos da rodada. O jogador que tiver a melhor

combinação de cartas ganhará o pot da rodada.

Pré-Flop: Turno em que cada jogador receberá duas cartas e serão feitas as primeiras blinds.

River: É mostrada a quinta e última carta e feita a última rodada de aposta.

Small Blind: É a geralmente de 1/3 a 2/3 da valor total da rodada.

Turn: Turno em que é mostrada a quarta carta comunitária.

Rãnking de Combinãço es

Royal Flush É a combinação mais forte do jogo, sequência começando no 10 e terminando no A do mesmo

naipe.

Figura 2 – Royal Flush Fonte: Jogatina²

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

7

Straight Flush Sequência de mesmo naipe.

Figura 3 – Straight Flush Fonte: Jogatina²

Quadra Quatro cartas do mesmo valor.

Figura 4 – Quadra Fonte: Jogatina²

Full House Combinação composta de uma trica e um par.

Figura 5 – Full House Fonte: Jogatina²

Flush Cinco cartas aleatórias do mesmo naipe.

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

8

Figura 6 – Flush Fonte: Jogatina²

Sequência Cinco cartas em sequência, porém de naipes diferentes.

Figura 7 – Sequência Fonte: Jogatina²

Trinca Três cartas iguais.

Figura 8 – Trinca Fonte: Jogatina²

Dois pares Dois pares de cartas diferentes.

Figura 9– Dois pares Fonte: Jogatina²

Um par Um par de cartas.

Figura 10 – Um par

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

9

Fonte: Jogatina²

Carta alta Carta de valor alto.

Figura 11 – Carta alta Ás Fonte: Jogatina²

A ordem crescente de cartas é :

Figura 12 – Ordem de valor das cartas Fonte: Jogatina²

Adãptãçã o do Jogo pãrã o Ambiente Computãcionãl

O jogo se encaixa perfeitamente no ambiente computacional, não sendo necessária nenhuma

alteração nas regras para que o mesmo seja adequado ao ambiente.

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

10

Disposiçã o dos Jogãdores e suã Representãçã o no Ambiente Computãcionãl

Os jogadores são dispostos em circulo ao redor da mesa onde as cartas são apresentadas,

como ilustra a Figura 13.

A figura acima mostra um jogo com 4 lugares ocupados.

A partir do posicionamento inicial, o próximo a jogar é sempre o jogador representado na posição à esquerda. O jogador inicial é alterado em cada mão, começando também pelo jogador a esquerda do que iniciou a mão anterior. Na representação computacional, cada lugar ocupado é um cliente numerado de 0 a 5. O jogo pode ter de dois a seis jogadores. A mesa representa o servidor, que:

Irá embaralhar as cartas.

Dar as cartas aos jogadores.

Controlar o valor das apostas e o trafego de informações entre os jogadores.

Identificar quem é o jogador da vez e o jogador a esquerda.

Irá fazer o jogador apostar a small ou a big blind automaticamente quando for sua vez.

Verificará qual o jogador vencedor da mão.

Inicia e encerra cada partida e rodada.

Fígura 13 – Disposição de 4 jogadores em um mesa Fonte: os autores

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

11

Modelo Computacional

Pacotes O programa apresenta dois pacotes: PokerRed e Screensframework. PokerRed é o pacote que fica responsável pela função do servidor e Screenframework é responsável pela função do cliente-jogador.

Classes O jogo é composto por 7 classes na parte do servidor e 6 classes para o cliente.

Pacote PokerRed

Avaliador

Responsável por definir a pontuação das combinações de cartas.

Carta

Ele determina o naipe e valor das cartas. O naipe varia de 0 a 3 enquanto o valor varia de 0 a

12.

Baralho

Responsável por embaralhar as cartas previamente estabelecidas pela classe Carta.

Jogador

Determina o saldo de fichas do jogador e o valor de sua aposta.

Mesa

Responsável pelos turnos de cada rodada, das blinds e do valor do pot.

Pokerthread

Classe responsável pela comunicação Servidor-Cliente

PokerRed

É a classe principal e controla os lugares disponíveis da mesa.

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

12

Pacote Screenframework

Screen1Controller, Screen2Controller e Screen3Controller

Essas três classes são responsáveis às telas de Menu Inicial, Regras e Login.

Screen4Controller

Tela do jogo, responsável pela comunicação Cliente-Servidor.

ScreensController

Classe que controla as quatro screens anteriores.

ScreensFramework

Determina as definições das telas.

Diãgrãmã de Clãsses - Completo

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

13

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

14

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

15

Diãgrãmã de Seque nciã - Pãrte

Universidade Tecnológica Federal do Paraná Disciplina: IF62C - Fundamentos de Programação 2. Professores: Robinson Vida Noronha e Danillo Leal Belmonte.

16

Refere nciãs

¹ - http://win-poker-game.info/

² - http://www.jogatina.com/regras-como-jogar-poker.html