Upload
madson-vieira
View
26
Download
0
Embed Size (px)
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)