Trabalho Java

Preview:

Citation preview

5/12/2018 Trabalho Java - slidepdf.com

http://slidepdf.com/reader/full/trabalho-java-55a2373274745 1/3

LIGADEENSINODORIOGRANDEDONORTE

FACULDADENATALENSEPARAODESENVOLVIMENTO

DORIOGRANDEDONORTE

Disciplina:Lab.deAlgoritmoseEstruturasdeDadosII–2011.Prof.:RicardoWendell

TrabalhoFinal-JogoTrintaeUm

ParaesseprojetooobjetivoéescreverumprogramasimuladordeumjogodecartasconhecidocomoTrintaeUm.Ojogodevesercapazdesuportaraparticipaçãode,nomínimo,doisjogadoresaté,nomáximo,dezjogadores. Cadajogadorpoderáserumparticipanterealouumjogadorautomático.Assim,porexemplo,emumapartidapodemoster2jogadoresautomáticose1jogadorhumano,ouentão3 jogadoreshumanose1jogadorautomático.Paraviabilizarojogo,seuprograma,doravantedenominadode TrintaUm,devesercapazdegerenciarasjogadasdecadaparticipante(i.e.estabelecerumaordemdejogadores)eidentificarovencedordeumarodada.Váriasrodadaspoderãoserrealizadasatéqueumapartidaseencerre.Nestecaso,oprogramadevemanterumatabeladepontuaçãoquerepresentaoacúmulodepontosdecadarodada.Aoseencerraroprograma,deve-seexibiratabeladepontuação,indicandoojogadorvencedor,i.e.aquelequeacumuloumaispontos. Ainterfacedoprogramadeveráserutilizaroterminalemmodotexto.

OJogo

TrintaeUméumjogodecartasparadoisoumaisjogadores.Ojogoécompostodedoisdequesdecartas.Oobjetivodojogoétentarobterumamãodecartascujovalorsejaomaispróximopossívelde31pontos.

Umamãoconsistedeexatamente3cartas.Cadacartanumerada(2,3,...,9,10)valeomesmovalorescritonacartaempontos;Valete(J),Dama(Q)eRei(K)todosvalem10pontos;enquantoqueoÁs(A)vale1ou11pontos,dependendodequaldosdoisvaloresforneçaomaiortotaldepontossemultrapassaros31pontos.

Regras

Naaberturadojogodeve-seestabelecerquantosparticipantesirãojogar,bemcomoaordemdejogadaparacadaumdeles.Depoisdeve-seidentificarquaisparticipantesserãohumanosequaisserãojogadoresautomáticos.

Noiníciodeumarodada,osimuladordeveembaralharosdoisdequesdecartasdemaneiraacriarumdequeunicodecartas,quefuncionarácomosefosseumapilha(apenasacartadotopopodeserretirada).Osimulador,então,deverealizaradistribuiçãodetrêscartas(retiradasdotopododequedecartas)paracadajogador.

Apóscompletaradistribuiçãoinicial,cadajogador(depoisdeobservarsuamão)temodireitodesubstituir(apenas)umadesuascartasporumanovacartadodeque.Finalizadaas

5/12/2018 Trabalho Java - slidepdf.com

http://slidepdf.com/reader/full/trabalho-java-55a2373274745 2/3

eventuaissubstituições,osimuladordeveindicarqualéovencedordarodada,contabilizando2pontosporvitória.

Aseguir,osimuladordeveindagarseosparticipantesdesejamumanovarodada.Emcasoafirmativo,deve-sereiniciararodada,embaralhandonovamenteodeque.Lembre-sequea

cadanovarodada,deve-seacumularospontosresultantesemumatabelaquedeveserexibidanofinaldapartida.

AbstraçãoeModelagem

Aprincipalsugestãoétentaridentificaroscomponentesdasimulação,comojogador,deque,partida,controladordojogo,tabeladepontos,eabstraí-losparaclassesemJava. Paracadacomponente(ouclasse)identificadodeve-seprocurardefinirasaçõescabíveis,asquaiscorresponderãoamétodosdaclasse.

Algumasestruturasdedadossãobemevidentes.Porexemplo,odequecentraldecartas(formadopordoisdequesdecartas,ouseja,104cartas)éfacilmenterepresentávelporuma

pilha.Umaaçãocabível,nestecaso,seriaaoperaçãodeembaralharascartasdodeque(métodoshuffle()).Outraoperaçãoseriaaderetirarumacarta(dotopo)dodeque.

Demaneirasimilar,cadaparticipantepoderáarmazenarsuamãoemumalistasequencialdecartas.Osprópriosparticipantes(modeladoscomoobjetosdaclasseJogador,porexemplo)podemestararmazenadosemumafilacirculardejogadores,demaneiraaseestabelecerumaordemlineardejogadas.

Umadasclassesprincipaisasermodeladaéaquedevecontrolarojogo.Estaclassedeveráserresponsávelporgerenciarasrodadasquecompõemumapartida,verificarqualovencedordeumarodada,acumularaspontuações,distribuirascartasparacadajogador,etc.

Sugere-sequecadacartasejarepresentadaporumacadeiadecaracteres.Assim,umamãopodeserrepresentadaporumastring,comoem“A10K”,quesignificaumamãocontendoumAs,um10deumRei.Ovalortotaldamãoé11+10+10=31.NotequenestecasooAsfoiconsideradocomvalor11aoinvesde1,umavezqueovalor11epermitiaomaiortotaldepontossemultrapassar31.Recomenda-setambémarmazenarinformaçõesacercadonaipedacarta:clubs(C),diamonds(D),hearts(H)espades(S).

EntregaeAvaliação

Estetrabalhopoderáserdesenvolvidoemgruposde(até)três.Paraasoluçãodesteprojetoé

obrigatóriaautilizaçãodasclassesPilha,FilaeListasequenciaisqueforamdesenvolvidasemtrabalhosanteriores.

OprogramaTrintaUmseráavaliadosobosseguintescritérios: -Permiteadefiniçãodejogadoresautomáticosehumanos(15%) -Realizaumamodelagemapropriadaparaoproblema(15%) -Realizaoembaralhamentoedistribuiçãodecartasparaosparticipantes(10%) -Permitequeumjogadorhumanosubstituaumacartaemumadadarodada(5%) -Provêumainteligênciaartificial(IA)razoávelparaojogadorautomático(5%) -Identificacorretamenteovencedordeumarodada(15%) -Contabilizaapontuaçãototalparaumapartida,compostade1anrodadas(10%)

-Indicaovencedorgeraldaumapartida(10%) -Apresentaumaboainterfacetextualcomousuário(15%)

5/12/2018 Trabalho Java - slidepdf.com

http://slidepdf.com/reader/full/trabalho-java-55a2373274745 3/3

-[PontoExtra]ExibeinterfacegráficafeitaemSwing(15%)

-Presençadeerrosdecompilaçãoe/ouexecução(até−20%) -Faltadedocumentaçãodoprogramacomcomentáriosnasclassesemétodos(até−10%) -FugadospadrõesdenomenclaturaemJava(até−10%)

Aapresentaçãoseráfeitaportodasasequipesnodia 06/12.Elaconsistirádademonstraçãodoprogramaeentrevistacomosmembrosdaequipe.Oobjetivodetalentrevistaécomprovaraverdadeiraautoriadocódigoentregue.Assim,qualquerumdoscomponentesdadupladevesercapazdeexplicarqualquertrechodecódigodoprojeto. Trabalhosplagiados

receberãonotazeroautomaticamente.

Propostadetrabalhoadaptadadematerialdoprof.SelanRodrigues(UFRN)

Recommended