Trabajo final Modulo 1 programa: milprogramadores SICTE - SENCE - CORFO
Creacin de juego de !"#ar$ en %seudocdigo
&aime %' "(aria "#ocar )uis *as+ias Oscar ,u+ierre# &orge Muo#
.escripcin:
El juego es del +ipo /&ugador (s Compu+ador/ Recrea una ba+alla na(al en+re dos bandos' "mbos jugadores poseen dos barcos cada uno 0jugador m23uina45 se enfren+an por +urnos median+e lan#amien+os de misil seg6n las coordenadas5 donde el obje+i(o es des+ruir ambos barcos enemigos para conseguir la (ic+oria'
)gica del &uego
El juego comien#a mos+rando una pan+alla de bien(enida simbolog7a' El programa comien#a la creacin asignacin de ma+rices (ariables' Dimension tableroNK(5,5) Dimension tableroUS(5,5) Dimension disparosJ(5,5) definir com como caracter definir com1 como caracter definir repetido como logico definir repetido1 Como Logico bU1<1!!barco bU$<1!!barco %U<&!!"signa %N<&!!"signa bN1<1!!arco bN$<1!!arco
US" 1, no se m#estra US" $, no se m#estra '&' a espacios %acos '&' a espacios %acos NK 1 en pantalla NK $ en pantalla Ejemplo de algunas de las variables utilizadas*
El juego se puede separar en 8 e+apas principales :
14 "signacin de (alores a las ma+rices %osicionamien+o de barcos aliados enemigos'
84 Re-asignacin de (alores a las ma+rices )an#amien+os condiciones para +9rmino'
"mbas e+apas se encuen+ran en un ciclo !mien+ras$5 con la finalidad de jugar (arias par+idas sin la necesidad de salir ejecu+ar nue(amen+e' *ientras inicio+erdadero -scribir ./0#ieres #gar #na partida2 (si!no)3 Ejemplo ciclo ‘mientras’ para iniciar partida*
%rimera e+apa:
"signacin de (alores a las ma+rices para 4N<1 asta 5 con paso 1 acer para 6N<1 asta 5 con paso 1 7acer tableroNK(4N,6N)8%U !!"signar %alor & en cada c#adrante de la matr9 :in;ara fin para para 4U<1 asta 5 con paso 1 acer para 6U<1 asta 5 con paso 1 7acer tableroUS(4U,6U)8%U !!"signar %alor & en cada c#adrante de la matr9 :in;ara :in;ara para 4D<1 asta 5 con paso 1 acer!!4U!!;osicin fila US"!! para 6D<1 asta 5 con paso 1 7acer!!6U!!;osicin col#mna US"!! DisparosJ(4D,6D)8%U !!"signar %alor & en cada c#adrante de la matr9 :in;ara :in;ara
)uego se escriben las ma+rices -scribir '===========================' -scribir '>"L-?@ N@?K@?-" (J#gador)A' -scribir 'BaBbBcBdBeB'!!mostrar la matri9 con posiciones %acis para cN<1 asta 5 con paso 1 acer!!'cN' %ariable contadora para escribir en la matri9 -scribir 'B' tableroNK(cN,1) 'B' tableroNK(cN,$) 'B' tableroNK(cN,E) 'B' tableroNK(cN,F) 'B' tableroNK(cN,5) 'B' cN Ejemplo escritura matriz jugador*
)as 8 ma+rices tablero jugador lanzamientos jugador se mues+ran en pan+alla' )a ma+ri# tablero adversario en cambio5 permanece ocul+a' la ma+ri# lanzamientos jugador (a cru#ando da+os5 seg6n coordenadas ingresadas5 con la ma+ri# tablero adversario
%osicionamien+o de barcos'
&ugador: )ec+ura de da+os5 in+erpre+acin5 asignacin de coordenadas de barcos en ma+ri# tablero jugador' error4N8erdadero!! e%ita cierre inesperado por mal ingreso *ientras (errorcom o error4N)+erdadero -scribir 'Gngresa las coordenadas de t# primer barco' -scribir '(letra de BaB asta BeB, l#ego nHmero de 1 a 5)' leer com,4Nc Seg#n com 7acer 'a'A 6N<1Ierrorcom<:also 'b'A 6N<$Ierrorcom<:also 'c'A 6N<EIerrorcom<:also 'd'A 6N<FIerrorcom<:also 'e'A 6N<5Ierrorcom<:also De @tro *odoA errorcom<erdadero :in Seg#n Seg#n 4Nc '1'A 4N<1Ierror4N<:also '$'A 4N<$Ierror4N<:also 'E'A 4N<EIerror4N<:also 'F'A 4N<FIerror4N<:also '5'A 4N<5Ierror4N<:also De @tro *odoA error4N<erdadero :inSeg#n :in mientras tableroNK(4N,6N)<bN1!!arco Nororeano 1 Ejemplo lectura/Escritura en matriz jugador*
"d(ersario: ingreso alea+orio de da+os5 asignacin de coordenadas de barcos enemigos en la ma+ri# tablero adversario'
repetido<%erdadero!!elimina la posibilidad de posicionar ambos barcos en el *ientras repetido+%erdadero mismo l#gar 4"U1< a9ar(5) 1!!4"U1<col#mna al a9ar 1!!asignacin aleatoria de %alores para tableroUS(4U,6U) 6"U1< a9ar(5) 1!!6"U1<fila al a9ar 1 4"U$< a9ar(5) 1!!4"U$<col#mna al a9ar $ 6"U$< a9ar(5) 1!!6"U$<fila al a9ar $ tableroUS(4"U1,6"U1)<bU1!!;osicin barco US" 1 Si (tableroUS(4"U$,6"U$)+&) tableroUS(4"U$,6"U$)<bU$Irepetido<:also!!;osicin barco US" $ Sino repetido<erdadero :inSi :in*ientras Ejemplo asignación aleatoria en matriz*
Segunda e+apa:
)an#amien+os 0Re-asignacin de (alores a las ma+rices4 condiciones para +9rmino' El ingreso de da+os para los lan#amien+os del jugador es el mismo u+ili#ado an+eriormen+e 0ver ejemplo de lectura/Escritura en matriz jugador*4' tableroUS(4N,6)<!!Coordenadas disparo #gador en matri9 tableroUS(4,6) disparosJ(4N,6)<!!Coordenadas disparo #gador en matri9 disparosJ(4,6) si tableroUS(4"U1,6"U1)+ -ntonces tableroUS(4"U1,6"U1)85IdisparosJ(4"U1,6"U1)85IaciertosNK1<1:inSi Si tableroUS(4"U$,6"U$)+ -ntonces tableroUS(4"U$,6"U$)<5IdisparosJ(4"U$,6"U$)<5IaciertosNK$<1I:inSi Ejemplo escritura matrices*
Condicin para para ganar el juego' si (tableroUS(4"U1,6"U1)+5 6 tableroUS(4"U$,6"U$)+5)!!Condicin para M#e J#gador %ictoria<1 gane la partida SiNo %ictoria<& :inSi
Seg#n
%ictoria 1A -sperar >ecla &A -scribir '-s el t#rno de s# ad%ersario, presione #na tecla para a%an9ar'I-sperar >ecla!!Lan9amiento Comp :inSeg#n
)os lan#amien+os del ad(ersario son coordenadas alea+orias5 den+ro de un ciclo mien+ras5 para e(i+ar coordenadas repe+idas' repetido1<%erdadero mientras repetido1+%erdadero aciertoUS"1<& aciertoUS"$<& comp4< a9ar(5) 1!!comp4<coordenada al a9ar comp6< a9ar(5) 1!!comp6<coordenada al a9ar Seg#n tableroNK(comp4,comp6) 5A repetido1<erdadero A repetido1<erdadero &A tableroNK(comp4,comp6)<Irepetido1<:also 1A tableroNK(comp4,comp6)<5 Si tableroNK(comp41,comp61)+5 aciertoUS"1<1Irepetido1<:alsoI:inSi si tableroNK(comp4$,comp6$)+5 aciertoUS"$<1Irepetido1<:alsoI:inSi :in Seg#n :in*ientras
Se e(al6a el lan#amien+o del ad(ersario5 luego se e(al6a la condicin final0inicial4 0ver ejemplo ciclo ‘mientras’ para iniciar partida*4' si (tableroNK(comp41,comp61)+5 6 tableroNK(comp4$,comp6$)+5)!!condicin para Derrota -scribir 'D-??@>"' :inSi 7asta 0#e (tableroUS(4"U1,6"U1)+5 6 tableroUS(4"U$,6"U$)+5) o (tableroNK(comp41,comp61)+5 6 tableroNK(comp4$,comp6$)+5)!!condicin final Condición derrota y/o fin proceso*
Ins+rucciones para el jugador:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Simbolog7a en +ableros de juego:
%osicin *arco *arco .es+ruido .isparo al agua ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
%ara si+uar +us barcos en el +ablero /NORAORE"/ ingresa una le+ra 0a5b5c5d o e45 luego ingresa un n6mero 01585B5 o ?4' Seg6n las coordenadas del +ablero'
)uego de ingresar ambas posiciones aliadas5 su ad(ersario si+6a sus 8 barcos en el +ablero /DS"/5 permanecen ocul+as as+a ser des+ruidas por un misil aliado'
)os lan#amien+os aliados se regis+ran en el +ablero del ad(ersario 0+ablero DS"4'
%ara ganar debes des+ruir ambos barcos enemigos' .e lo con+rario5 si des+ruen +us barcos5 pierdes el juego'
*uena suer+e
Sof+Gare u+ili#ado
El sof+Gare empleado para la reali#acin de es+a ac+i(idad fue %seIn+' .ada la simplificacin de su uso5 es la erramien+a preferida en mucos es+ablecimien+os pedaggicos de )a+inoam9rica5 para la iniciacin en programacin'
)a auda con la sin+aHis5 la (isuali#acin de errores5 en+re o+ros' Facili+an la comprensin de la lgica de los algori+mos