Professional Documents
Culture Documents
EscribirunprogramaenCquepermitajugaralahorcado,delasiguienteforma:
Sedisponede4ficherosdetexto,conpalabrasdediferentestemticas:Animales.txt,
Profesiones.txt,Nombres.txt,Paises.txt,encadalneadeestosficheroshayunanicapalabra
cuyotamaomximoesde25caracteres,enningunodelosficheroshaymsde50lneas.
Primero,elusuariodeterminarconqutipodepalabrasquierejugar(animales,profesiones,
nombresopases)yelprogramaabrirelficherocorrespondiente.
Acontinuacin,elprograma,deformareiterada,generarunnmeroaleatorioque
determinarunapalabradelfichero,staserlapalabraqueelusuariodeberacertar.
Serellenarunacadenacontantoscaracterescomolongitudtengalapalabraaadivinar.
Despuselprogramapedirqueseintroduzcauncarcterycomprobarsiperteneceala
palabraquesedebeadivinar.Siesas,seescribirdichocarcterenlacadenaanteriorenlas
mismasposicionesenlasqueseencuentraenlapalabraaadivinarsustituyendoalos
caracteres.
Previamentealalecturadecualquiercarcterelprogramadebemostrarlasiguiente
informacin:
Nmerodefallos:xx
Caracteresintroducidos:x/x/x/x/x
Representacingrficadelasituacin(comolasqueseanexanosimilares)
Progresodelacadenaenlaquesebuscalapalabra:xx
SolicitudalusuarioparaResolveroIntroducirunnuevocarcter:x
Esteprocesoserepetirhastaque:
o seaciertelapalabra
o seagotenlosintentos,esdecir,sehayacompletadolafiguradelahorcado
o elusuariodecidaresolverlapalabra
Siseagotanlosintentosoelusuariodecideresolversinhaberacertadolapalabra,seescribir
unmensajeindicndoloysemostrarlapalabraquesedebahaberacertado,enotrocasose
escribirunmensajedefelicitacin.
Pararealizarelprograma,almenossedebencodificaryemplearlassiguientesfunciones:
FuncincabeceraqueimprimeNOMBREyNUM.MATRICULAdelautordelprogramay
quedebeserejecutadanadamsempezarelprograma.
FuncinborraConsolaquelimpialaconsolarealizandotantossaltosdelneacomosea
necesario.
FuncinlongCadqueapartirdeunacadenadecaracteresdevuelvelalongituddedicha
cadena,esdecir,elnmerodecaracteresquecontienelapalabrasincontarelcarcter
definaldecadena.
FuncincadenasIgualesquedadasdoscadenasdevuelveun1sisonigualesyun0en
casocontrario.
TALLERDEPROGRAMACIN
FuncininiciaCadquepartiendodeunnmeroqueindicalalongituddeunapalabra,
devuelveunacadenarellenaconelcarctertantasvecescomosealalongituddada.
FuncinactualizaCadqueapartirdelapalabraaadivinar,uncarcterylacadenaque
sequierecompletar,devolverdichacadenaconelcarcterenlasposicionesdondese
encuentraenlapalabraaadivinar.
FuncinactualizaListaqueapartirdelalistadecaracteresintroducidosporelusuario
aadeunanuevaentrada.
FuncinimprimeFiguraqueapartirdelnmerodefalloscometidosporelusuario
imprimelafiguracorrespondiente(verANEXO).
Especificacindediseo:
Lanicalibreraquesepuedeutilizaresstdio.hportantonoseadmitirelusodela
librerastring.h.
Elficherodepalabrasseleccionadosolosepuederecorrerunavez.
ANEXOparalaRepresentacingrficadelasituacin
0fallos:
printf("\t.......\n");
printf("\t..\n");
printf("\t..\n");
printf("\t..\n");
printf("\t..\n");
printf("\t..\n");
printf("\t..\n");
printf("\t.......\n");
1fallo:
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\n");
2fallos:
printf("\n");
printf("\t|\n");
printf("\t|\n");
printf("\t|\n");
printf("\t|\n");
printf("\t\n");
3fallos:
printf("\t_____\n");
printf("\t|/\n");
printf("\t|\n");
printf("\t|\n");
TALLERDEPROGRAMACIN
printf("\t|\n");
printf("\t\n");
4fallos:
printf("\t_____\n");
printf("\t|/O\n");
printf("\t|\n");
printf("\t|\n");
printf("\t|\n");
printf("\t\n");
5fallos:
printf("\t_____\n");
printf("\t|/O\n");
printf("\t||\n");
printf("\t||\n");
printf("\t|\n");
printf("\t\n");
6fallos:
printf("\t_____\n");
printf("\t|/O\n");
printf("\t|/|\n");
printf("\t||\n");
printf("\t|\n");
printf("\t\n");
7fallos:
printf("\t_____\n");
printf("\t|/O\n");
printf("\t|/|\\\n");
printf("\t||\n");
printf("\t|\n");
printf("\t\n");
8fallos:
printf("\t_____\n");
printf("\t|/O\n");
printf("\t|/|\\\n");
printf("\t||\n");
printf("\t|/\n");
printf("\t\n");
9fallos:
printf("\t_____\n");
printf("\t|/O\n");
printf("\t|/|\\\n");
printf("\t||\n");
printf("\t|/\\\n");
TALLERDEPROGRAMACIN
printf("\t\n");