Blackjack. Projeto de Programaça o Entrega Interme dia

Documentos relacionados
Blackjack II. Projeto de Programaça o Entrega Final. Programação 2015/2016. Mestrado em Engenharia Electrotécnica e de Computadores (MEEC)

As informações apresentadas neste documento não dispensam a consulta da legislação em vigor e o Programa da disciplina.

Projecto de Lógica para Programação. Videoteca em Prolog. ( º semestre)

BRAINSTORM CONCURSO CULTURA GERAL REGULAMENTO

CATÁLOGO DE APLICAÇÕES Geração de Guias para ST, DIFAL e FCP

Cadastrar Proposta de Evento

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Como ajustar o projeto para integrá-lo com o Moodle

Em 2019, os critérios de avaliação definidos e respetivas ponderações são os seguintes:

10. Escreva um programa que leia um texto e duas palavras e substitua todas as ocorrências da primeira palavra com a segunda palavra.

Regime Escolar Fruta Escolar /

Gestão Administrativa 3 COMUNICAÇÃO DE INVENTÁRIOS

CATÁLOGO DE APLICAÇÕES PEFIN SERASA

Variáveis e Tipo de Dados

TESTES DE SOFTWARE.

As cópias dos contratos, assim como outros documentos do projeto, a seguir relacionados serão fornecidos após celebração do contrato dos serviços:

Tributação Padrão para Imobilizado

Aula 11 Bibliotecas de função

Score Inscrições de Clubes/Equipas e Jogadores Manual de utilizador

Conteúdo A parte principal de um relatório de auditoria, mas não a única, é a parte dos desvios encontrados. O que é que constitui um desvio?

UML Diagrama de Caso de Uso Análise e Projeto de Software

SIC Gerenciando Através s da Confiabilidade. Fabiana Pereira da Silva Vale

II SIMPÓSIO DE DOENÇAS INFECTO PARASITÁRIAS NA AMAZÔNIA I JORNADA CIENTÍFICA DA LIDIPA NORMAS PARA SUBMISSÃO DE RESUMOS

BREVE INTRODUÇÃO À REALIZAÇÃO DE INVESTIGAÇÕES NA AULA DE MATEMÁTICA: APROXIMAÇÃO DO TRABALHO DOS ALUNOS AO TRABALHO DOS MATEMÁTICOS

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA DEPARTAMENTO DE ENGENHARIA ELÉTRICA ELETRÔNICA

OpenTouch Conversation Web

PRINCIPAIS NORMAS DE FORMATAÇÃO a

Diagramas líquido-vapor

Informação Prova de Equivalência à Frequência Expressões Artísticas 1º ciclo do Ensino Básico

UNIVERSIDADE FEDERAL DE GOIÁS REGIONAL JATAÍ COORDENAÇÃO DE EXTENSÃO E CULTURA I CONGRESSO DE ENSINO, PESQUISA E EXTENSÃO CONEPE

Programa Estágios Profissionais

Descrição do serviço. Visão geral do serviço. Escopo dos serviços Copilot Optimize. Copilot Optimize CAA Escopo

ESTRUTURA E FORMA DO PROJETO DE PESQUISA E DA DISSERTAÇÃO DO MESTRADO PROFISSIONAL EM ADMINISTRAÇÃO

ESTRUTURAÇÃO DE TRABALHOS ACADÊMICOS 1. ELEMENTOS PRÉ-TEXTUAIS. 1. Capa

nddcargo Manual de Utilização Portal Gratuito

RECURSOS FINANCEIROS EXTRA PARA O CRESCIMENTO DO SEU NEGÓCIO. BRACING PT2020 (VALE Internacionalização) Página 1 de 8. Bracing Consulting, Lda.

Caixas Ativas e Passivas. SKY 3000, SKY 2200, SKY 700, SKY 600 e NASH Áreas de Cobertura e Quantidade de Público

CTH - ALERT REFERRAL NOVAS FUNCIONALIDADES/Perfil Médico Centro de Saúde

Informação Prova de equivalência à frequência Tipo de prova Escrita e Oral

PRINCÍPIOS GERAIS 1. A avaliação nas disciplinas de Desenho:

Transcrição:

Prgramaçã 2015/2016 Mestrad em Engenharia Electrtécnica e de Cmputadres (MEEC) Blackjack Prjet de Prgramaça Entrega Interme dia 1 Intrduçã Cm este prjet pretende-se que s aluns desenvlvam um jg de cartas intitulad blackjack, frequentemente jgad em casins. O bjetiv d blackjack é ter mais pnts que adversári, mas sem ultrapassar s 21 pnts. Este jg usa um u mais baralhs de 52 cartas e para se bter uma vitória é necessári vencer a casa (adversári) de uma das seguintes frmas: Obter 21 pnts (Ás e uma carta de 10 pnts) cm as duas primeiras cartas que um jgadr recebe. Obter uma pntuaçã mais elevada que a casa, sem exceder 21 pnts. Deixar a casa bter uma u mais cartas adicinais até que a sua mã exceda 21 pnts. Jã Ascens, versin 1.0, 16/02/2016 1

2 Pntuaçã das Cartas A mã mais elevada n blackjack é chamada justamente de blackjack e crrespnde a 21 pnts. A pntuaçã de cada carta está definida na Tabela 1. Cartas Nme Valr Ás 1 u 11 pnts 10, Valete, Rainha e Rei 10 pnts De 2 a 9 O valr indicad na carta Tabela 1: Pntuaçã das cartas num jg de blackjack. 3 Regras d Jg Blackjack Nesta implementaçã, quatr jgadres vã jgar blackjack. A casa (adversári) jga sempre cntra s jgadres (humans) e trata de tds s aspets d jg, tais cm baralhar as cartas, distribuir cartas as jgadres e gerir tdas as apstas. O funcinament da casa é cntrlad pel cmputadr. Inicialmente, tds s jgadres devem realizar uma apsta, que tem um valr fix (ver Secçã 5). Nã é permitid as jgadres definir mntante que apstam. Depis, a casa atribui uma carta a cada jgadr e uma carta para si, tdas cm a face vltada para cima. De seguida, nutra rnda, é distribuída uma carta a cada jgadr (face para cima) e uma carta à casa cm a face vltada para baix. Desta frma, cada jgadr tem duas cartas cm a face vltada para cima e a casa tem uma carta cm face vltada para cima e utra cm a face vltada para baix. Depis de receberem as duas cartas iniciais, s jgadres pdem esclher uma das seguintes pções: Jã Ascens, versin 1.0, 16/02/2016 2

Hit: O jgadr deseja mais uma carta. Stand: O jgadr nã quer pedir mais cartas. Um jgadr pde realizar váris pedids de Hit até que realize um pedid de Stand. Sempre que haja um Hit a casa vai atribuir uma nva carta a jgadr. Sempre que as cartas de um jgadr excederem 21, jgadr perde valr apstad, ist é chamad de Bust. Nte-se que um Ás pde valer 1 u 11 pnts e um jgadr pde tentar bter uma pntuaçã mais elevada, pedind mais cartas e cas exceda 21 cm um Ás (a valer 11 pnts) Ás passa a valer 1 pnt. N final de tds s jgadres fazerem Stand u terem sfrid Bust, a casa vai virar a sua carta que está de face vltada para baix. Se ttal fr 17 u mais, a casa também faz um Stand. Se ttal fr 16 u mens, deve pedir uma carta e cntinuar a pedir cartas até que sme 17 u mais pnts. N cas especial da casa pssuir na sua mã, um Ás e um cnjunt de cartas que ttalize 6 pnts, deve também pedir mais uma carta. As seguintes regras aplicam-se às apstas: Se um jgadr tiver um blackjack nas duas primeiras cartas recebidas e a casa nã tiver blackjack, a casa atribuí a jgadr 1.5 vezes valr apstad. Se a casa tiver um blackjack, reclhe as apstas de tds s jgadres que nã tenham tid blackjack. Sempre que um jgadr exceda valr de 21 (Bust), perde imediatamente valr apstad. Ist acntece mesm que a casa faça Bust. Sempre que a casa exceder valr de 21, atribuí a cada jgadr valr apstad sem reclher a apsta, ist é, jgadr fica cm duas vezes valr da apsta. Sempre que a casa fizer Stand cm um valr de 21 u mens, atribuí a cada jgadr (que nã tenha feit Bust) cm uma pntuaçã mais alta valr da apsta e reclhe as apstas ds jgadres cm pntuações mais baixas. Em cas de empate, a casa nã reclhe valr apstad mas também nã atribui mais dinheir a jgadr. 4 Funcinament d Prgrama O funcinament d prgrama pde ser sumarizad da seguinte frma: Leitura ds parâmetrs de cnfiguraçã. O nme de cada jgadr deve ser identificad, pela string Player e pr um númer únic, e.g. Player 1, Player 2, Player 3 e Player 4. As cartas devem ser sempre baralhadas antes de cmeçarem a serem distribuídas pela casa. Sempre que frem distribuídas cartas, é necessári actualizar a interface gráfica para mstrar as cartas as jgadres. Depis de serem distribuídas as duas cartas iniciais, é necessári permitir as jgadres (utilizadres d jg) esclher se pretendem fazer Hit u Stand, através d teclad: Jã Ascens, versin 1.0, 16/02/2016 3

Tecla h: Hit Tecla s: Stand Tecla n: Nv jg Devem dar prtunidade a cada jgadr de fazer a sua esclha de uma frma sequencial e assinalar na interface gráfica qual jgadr que está a interagir cm a casa (fazend Hit u Stand). O jgadr quand está a interagir cm a casa pde fazer Hit várias vezes recebend uma carta da casa. Se crrer Bust u fazer Stand, cntrl passa para próxim jgadr. N final de cada jg, é necessári actualizar dinheir que cada jgadr tem. A tecla nv jg apenas tem efeit quand tds as cartas estiverem distribuídas. Um jgadr quand nã tiver mais dinheir para apstar nã pde jgar mais. O valr da apsta de cada jgadr é fix e é um parâmetr de cnfiguraçã. O utilizadr d prgrama pde sair a qualquer mment carregand a tecla q. Nesta situaçã ficheir de estatísticas deve ser escrit. Em relaçã a códig, é brigatóri bedecerem às seguintes regras: Uma carta deve ser identificada através de um valr inteir de 0 a 51. Nã pdem ser usadas estruturas de dads. Devem usar um vectr de inteirs para representar um cnjunt de cartas. 5 Leitura ds Parâmetrs de Jg e Escrita de Ficheirs O funcinament d jg deve ser ditad pr um cnjunt de parâmetrs que devem ser intrduzids pel utilizadr (teclad) antes de cmeçar qualquer jg: Númer de baralhs de 52 cartas que vai ser utilizad pela casa. Nã pde haver mais d que 6 baralhs nem mens que 1. Valr inicial de dinheir (em eurs) que cada jgadr pssui. Nã pde ser um valr inferir a 10. Valr de cada apsta que cada jgadr pde efetuar. Nã pde ser um valr inferir a 1 nem ser superir a 20% d valr inicial de dinheir d jgadr. Quand prgrama terminar é necessári escrever um ficheir cm nme stats.txt que indique a seguinte infrmaçã para cada jgadr d blackjack: Nme d jgadr. Númer de jgs que ganhu, empatu e perdeu. Valr mnetári cm que jgadr ficu n final. Valr mnetári que a casa ganhu u perdeu. 6 Aspect Gráfic A aplicaçã blackjack deverá ter um aspet gráfic semelhante a que está ilustrad na Figura 1. A aplicaçã deverá também mstrar nme da aplicaçã (Blackjack) e autr da aplicaçã. Para realizar a parte gráfica Jã Ascens, versin 1.0, 16/02/2016 4

devem utilizar códig de api a prjet. N entant, nte-se que necessitam de mdificar códig de frma a mstrar qual jgadr que se encntra a jgar, pr exempl desenhand a área de jg cm utra cr. Opcinalmente, pdem mstrar s pnts que cada jgadr tem e marcar s jgadres que fizeram Bust (ver Figura 2). Figura 1: Aplicaçã Blackjack ilustrand jgadr 2 a efectuar uma jgada. Figura 2: Aplicaçã Blackjack ilustrand mment em que a casa distribui as cartas e dinheir as jgadres. 7 Desenvlviment d Jg Também é fundamental que s aluns cumpram as regras que se seguem n desenvlviment d jg. Jã Ascens, versin 1.0, 16/02/2016 5

7.1 Desenvlviment Fasead O desenvlviment deste prjet deverá ser feit de uma frma faseada, devend s aluns garantir que tdas as funcinalidades cdificadas até a mment estã a funcinar crretamente. É preferível um prgrama que implementa pucas funcinalidades, mas que funcinam crretamente, d que um prgrama ttalmente desenvlvid mas que nã faz nada. Assim sugerem-se s seguintes passs, pela rdem apresentada, para realizaçã d prjet: Inicializaçã da bibliteca SDL e criaçã da janela gráfica (códig frnecid pel Prf.). Leitura ds parâmetrs de funcinament d prgrama. Baralhar as cartas da casa. Distribuir as cartas a jgadr. Atualizaçã d ecrã. Interaçã cm utilizadr e recnheciment das teclas s, h e n. Cálcul ds pnts de um cnjunt de cartas. Verificar se crreu Bust. Rtina para cálcul d dinheir das apstas. Escrita d ficheir cm s resultads ds jgs. Os aluns deverã garantir a rbustez da aplicaçã verificand tds s cass de err (pr exempl quand um parâmetr de entrada nã seja válid). 7.2 Dcumentaçã O códig prduzid pels aluns deverá ser cmentad. Os cmentáris presentes n códig deverã explicitar e explicar funcinament da aplicaçã assim cm as decisões tmadas. As seguintes regras devem ser cumpridas: O códig deve ser cmentad sempre que realize alguma peraçã nã óbvia. Os cmentáris devem ser clars, gramaticalmente crrets e usand frases simples. A declaraçã de tdas as variáveis e cnstantes deve ser acmpanhada de um cmentári cm uma breve descriçã de para que servem. Cada blc de códig (seleçã u repetiçã) deve ser precedid de um breve cmentári explicativ. Tds s prgramas devem ter um cmentári inicial que identifique, n mínim, trabalh, seu autr, fim a que se destina e a data de realizaçã. 7.3 Indentaçã Um pnt fundamental na rganizaçã de escrita de códig é a indentaçã, ist é, rganizaçã hierárquica das linhas de códig, de acrd cm âmbit nde elas se encntram. A indentaçã deixa códig fnte d prgrama mais rganizad, mais legível, fácil de entender e de mdificar, send uma parte essencial d trabalh. Jã Ascens, versin 1.0, 16/02/2016 6

7.4 Estrutura d Códig Tds s prgramas em C devem pssuir a mesma estrutura genérica, cmpsta pelas seguintes secções: Blc de cmentáris. Diretivas #include. Cnstantes glbais e variáveis glbais (cas sejam necessárias). Declaraçã de funções. Funçã main(). Definiçã de funções. Cm regra geral deve cnsiderar que as funções devem caber num únic ecrã, ist é, devem ter n máxim cerca de 30 linhas. Também deve cumprir as seguintes regras: Inicialize sempre as variáveis na sua declaraçã. Teste a validade ds parâmetrs recebids pr uma funçã. Declare cnstantes e evite usar númers n crp das funções. Evite repetições de códig, use funções, cicls, etc. Evite us de variáveis glbais. Nã use gt. Escreva códig simples e clar que um clega seu pssa perceber! 7.5 Cmpilaçã O cmpiladr a usar na execuçã d prjet é gcc em ambiente Linux. Os prjets que nã cmpilem, i.e. que tenham errs de sintaxe, nã serã avaliads. A existência de aviss durante a fase de cmpilaçã pderá ser indíci da existência de prblemas n códig. Estes deverã ser eliminads crretamente u ignrads cm cuidad extrem. 7.6 Decisões d Prjet Cm em qualquer prjet de infrmática, funcinament d prgrama nã está ttalmente definid n enunciad, existind algumas ambiguidades e missões. Para reslver essas missões s aluns deverã tmar algumas decisões aquand d desenvlviment d prjet. Estas decisões devem ser fundamentadas, sem nunca ir cntra definid n enunciad. 7.7 Bibliteca SDL Durante desenvlviment deste prjet devera ser usada a bibliteca SDL2. A aplicaçã deverá ser cmpilada usand as biblitecas SDL2, SDL2_image, SDL2_ttf. Mais infrmaçã dispnível aqui: http://wiki.libsdl.rg/apibycategry https://wiki.libsdl.rg/frntpage Jã Ascens, versin 1.0, 16/02/2016 7

8 Submissã Os aluns deverã submeter códig desenvlvid através d sistema FENIX até 3 de Abril. Apenas será necessári entregar códig crrespndente a prgrama desenvlvid. Só será aceite um ficheir de text cm extensã.c. Nã utilize um prcessadr de text (e.g. Wrd) para frmatar seu prgrama. 9 Plági Os trabalhs serã bjet de um sistema de deteçã de plági. Os aluns pdem cnversar entre si para discutir pssíveis sluções para algum prblema que tenham mas nã pdem partilhar códig fnte. Nesta entrega intermédia, td códig deve ser realizad individualmente! Se uma cópia fr detetada s aluns envlvids na cópia serã penalizads. 10 Avaliaçã da Entrega Intermédia A avaliaçã d prjet terá em cnta diverss parâmetrs: Funcinalidades implementadas, tais cm: baralhar cartas, distribuir cartas, interface cm utilizadr d prgrama, escrita de ficheirs, gestã ds dinheir apstad e recebid, etc. Cumpriment das regras d jg e das especificações d prjet. Estruturaçã da aplicaçã, nmeadamente us de funções. Tratament de errs. Cmentáris e legibilidade d códig. Jã Ascens, versin 1.0, 16/02/2016 8