Está en la página 1de 90
bere ad publicaciones ‘Avda, dol Mediterraneo, 8 28007 MADRID | om om Tow rR ee er we rN ee re ee et Genio de los Juegos con el QL Kay Ewbank, Mike James y S.M. Gee Collins Protessional and Tectinical Books Wiliam Collins Sons & Co. Lté 8 Grafton Street, Lorion WIX SLA Pruners publicacisn en Gran Bretaha por Collins Professional and Technical Bosks 1985, Copyrignt Kay Ewbanke Mike James and $. M. Gee 1985 Reservades todos os derechos. Ninguna parte de esta ublicanién puede ser reproducida, almacenada o rearchivada en fingiin sisteina InfermSties, o transinitida en cualquier forma, o por cualquier medo electrénics, mecdnice, | fotocapisde, Brabade, o en caso contrariay sin’ el permuss previo de ies eurtores, ersién en Castellane Eaitado por INDESCOMP, S.Ay Avda, del Mediteceinso, 9 - 28007 MADRID (ESPANA) Derechos reservados an lengua espafiala: INDESCOMP, S.A. + CONORE, S.A. Traguce, conpone ¢ iprin LS.B.Nst 88-86176-31-X Depésito Legal: M-18275-1985 7 Ir TOIT ITO ITI IIS See or ‘aed saa kL: beck Lams bees las te feet Contenido Pretacio 1. BL Aprendiz de Brujo (Céme escribir prograinas La necesidad de metodologia Retinamientos graduales y procedimientos Estructura y estilo Un inodo para juegos en el QL Procedimientos peepa_grafo y porte_grafo Observacién del color de las motas ‘Técnicas para juegos 2. Hormiguers El disefio del juego La técnica de animackin 1 pregrama principal Proceciientos prepa juego, prepa_manga y prologue Procedimmiento trace escena Procedimiento mueva, ambos - el niiclae del juego Procedimienze fine_manga Mejorando el juego Sugerencias para trabajo adicional La ver final - un listade completo 3. Salta Rana El cise del juego Rebotando y cayendo El programa princiet Procedimicntos prepa_juego, prepa_manga y prologue Precediinients expo_moscas iv Contenida Contenigo v rm sees meets lana > ta, Procediiniente fine_juego Ms [ 7. Sealebra 132 Evaluacién y mejoras wT _ El divefio del juego 32 La versién final - un listade completa 38 [ poses Principat 138 Anime por des_rolle af dee eneonmece El disefo del juego 6 Movimiento de hombrecitlos en cada lance 3 Te ee : La versidn final - un listado completo 78 ersten’ 164 ‘La serpiente singante - las ‘listas de espers! 88 " cave queda por de 168 Oe ego wep mae : Bsr wasn conde rece e Atrapande raras: 120 TTY | Prefacio ci EI C4 Cl ca C a | Ca Doniinar Js programacién, cone swalquise otes discipling, axige prdvtiw. Pere as Solauiente comsiste cn trabajar con ejerciciss preestablectdes en algiin inoinents Tienes que partie de la nada y eowienzar a desarrollar tus propias tdeus. ontonies de Principrantes ven esto como una perspectiva ainetiazidora y 10 exloonttarien soucho nds tacit S| pudieran conseguir que alguien les ayudera, ense/dndole sus habilitades. Este libra pretende proporcionar la musta clase de ayuda que un progravnadr experts “y adeings con capacidad didéetica- seria capaz de ofrecer « un principiante, Te teva a través de las diversas etupas en el diseno y la confecridr de peagranias, sefiakandote problemas y peligros y ofreciéndote pistas y soluciones. ado nuestea intento de ensefiar el arte de escribir prograinas grandes, 1 puedes estar preguntando céine hems elegide cancentrarngs en juegos. Yay das razanes principales. Born lac Ios juegos son civertidas =diverticos para jugar y también divertides para diseharlos, Mids importante desde el punto de vista de la enseTanza es que en ellos se Eombinan todos Jos aspectos de Ia programacisn; porcue ;dénde encontrariainos Dfoctos erstices y sonarae combinadas com imeres aleatorios y gic Booleans? Los programas desarrollados en este gro sen tedes juegos con figuras antmadas y algunos He ellos, como minima, son tos habituales juegos clésicos de video. Puedes haber pensade ‘que. programar tales juegos esta fiera de TW alcance, pero esic libro we Uemuestea céine abordar la escritura de programas para legos, incluse con ese nivel ide complejidad y Sofisticaclin’. Antes de einbarcarte en ef disefia de jueges concretos, hemos tenida que hallar un reimedio pars el failo del QL en incorporar sfinbolos grafices que son esenciales en el lige de juegos que queremos realizar. La solucidn que decicimos sobre este tern, fue Aiiedir un ined grafico coiapletamerte Tueve In edo cn baja resolucion” que complomente los 6s nates de alta resoluciOn ya disponubles en et QL. Arapliando las facilidades del QL de esta inancra demuestea que es muche mds aprovechable de Io que se pudiera haber maginade y simplemente requiere dos nuevos procedimientes que explicamos en el Capitulo Lino y iuego usainos a 10 largo del Lise. Todos lot prograinas para juegos estén cpasteuides corre una serie de médules de programacién y sugerisnos que teciees cuda mSdulo a medida que se presentan, No Sblainents con eso 32 disminuye Ta Tabor de teclear progranas largon, sing que también Se te de la oportunidad de comprender hasta los cetalies ids fines, Uma vez que hayas ecleado los jucpos, esperamios que disfrutes jugandoles, tengas contianza para remendarlos -y mejerarlos- y hayames fomentads en tu dnime js cisposicién pare escribir prograinas completes por ti iaistno. Nebeines dar gracias a Richard Miles y Prue Harrison des Editor yuo este libra ao hublera side posible. Collins, sin cuya ay cwbanks ‘Mike Jamies Se. Gee TT Capitulo Uno El Aprendiz de Brujo Este libro es bastante diferente de cualquiera que puedss haber leida anteriorinente subre programacisn de ordenadores. No ov simplemente usa calecoidn de juegos shiver tidosy as tanpoce es oto libro sobee aprender a pregramar. Lo que e! libro nace #5 combinar el go2p de crear con la oportunidad de agquiric esa valigea clase de Sonociiniento que sSlo surge de ls experioncia prdcticas oy en dla hay nids gente que cconoce sn lenguae de prograinacién "pera saber un lengiaje es S5lo el cornienze ce la Tabor de aprenver eémo usarlo. Muchas personas se percatan que después de hibor aprendide ASIC todavia tienen problemas en escribir prograinas que efectien ita lapse exncreta, E] tipo de dilicultsc on que se oncuentean, varia desde no ser capa’ le ronenzar um programa, hasta no set capa de sesolver los problemas que se le aeiroulin urante el desarrollo. cel Prograina, y hasta no ser eapay de acahar un prograina que sea de wtilicad, En oteas palabras, las pegas pueden surgit al principio, en el media 9 3. tinal del desarrollo de] Programa, o desde luego, ceine coinbinacién de las tre: etapas. La observacisn que hace nos ¢5 que, coins mfviino al prineipla, es necesarlo una gran cantidad do ciergis para abordar un prograina largo. Se pueden escribir poquelles pragrainas, v7 pueden comprobar y se pueden aesechar en una terde, pero los progeaiias largos punde ‘ardarse ineses en coinpletarlos. Las diliculcado? que surgen al trabajar con uh gra isimere de Tinews de BASIC, a fo largo de un perioco extenso de eipa, realimente son nuevas y bastanic dilerentes de todo Io que te dicen or la "inteouuecisn af NASICN, Cuando llega Ja hora de abordar problesaas ceales con UASIC, no es aylicionte saber por ejemplo Ie que hace la instruceisy Wau es esencral seber cémo usarla, ci coinbinacidn ean el rasto de Hag instrucciones del NASIK: pra producir una solucién en Jorma de un prograina que ne 380 funciona, sine que taialnén apetece usar. Este bro intenta aliviar el probleia de ta escritiwa de pragrainas extensos, explicando eine escribiiias progr nas largos para juages. La razhn de poner el Gulasts fn los Jucgos, es simplemente que su atractive ey (easi) universal y que en ellos se ccontisne Ta thayorfa de ley problemas encoatrades en ctras areas de aplicacisen, St siinplemente quieres usar ol Libro came una cojecciGn de veges, ne hay nada que te Io Lunpics -sizupiememia salta digectariente a los lstacos dads al final de case capitulo) tecléalose pero te enrontrards con gue el dusirute del jueyo es mchisimne mayors sigues los comentarios del cupftulo y Lecleas (95 peagraiass on poaueriay dosis, 2 Genin de Ios daeene eon ot at [ie exer rears Nadie nigga el hecho de gue Ia mejor maners de escroir prograioas que tongen sustacia trabajar con uh peogeuinasor experto, En este sentido, Ia pregrammosion 0 €8 diferenie de ningtin otea *aficta artesan" =nacesitas sorvit coro aprendiz antes de yraduarte como olicel maestro eh este grovnio, Cl problowna es le en este inoment los propramacotes.expertos no. abutial cewasiade., st puedes encaneran ‘lguno que Te ayude, aproveca Te oportuniaad pars aprender de primera’ wane eso sieingee'es la mejor mares. Pero encuentees 0\no #y4 ayuda, este bro send vallow Jara al nijorar ts téenicas Ge progeamacisn. Sada capitulo comienzs con una dascripeién del juego que con el prograina se va a nplementar, sefalando algunas de tas dilicultades potercialas y euginiende inécodos gue probablewente serda itiles, Nespués ce leer esa sntraduccion, debieeas tener [a Sista intormacién que un prograrnacor enxperto tendria antes de comencar a resolver Ine prubleniss inesperados que brotan durante el desarrollo del prograina. Detevis Ue vou introduccida, el progeama se presenta seccién por seceidn. Cada seccién S01 progeaina efectla una Sola acckén dentro del programa y eso 82 explica en el texto gu La aconpana, Sugerimos que teclees cada scccin del prograria tal y corto te le Preseitanos, No solamente es una manera inenos tediasa de teclear un programas sito Gus sind fe Ae la oportunidad de analizar y estudiar concienzudamente ‘cede Al Linat sfe cada capitula, te encontrards un comentario de Jo que se he conseguide en la prunera sersisn del prograiia y c6imo puede ser wnejorada, Lilego, y sl es mecesario, por hacer el jueyo inas atractivo, se sugieren mnoditicaciones y se lista la versién final el programa. Csie listace complote det prograina debiera ser usada para comprebar {ue has tecleado todo, in-luyende las moditicacioncs, carreciamente, Sobre este tena se Ja exactrud inevece 1s pena decir que todes los programas de ete libra han sido sacaddos por imnpresora directainente de las versiones de Irabajo sin que intervenga une etapa de conpostcidn (propensa a erroras), es decte, estén todos presentacos en 1d “ora de listades por impresora. Las explicaciones de e6o trabaje el prograina y por qué las cosas 52 hicieron de una Imaners particular, debie~s ayudarte 2 comprenéee el proceso de escribir programas Iargos, cungue por sazoies cie 24 lengitud del texto no es posible snostrur todas 1a! etapas aur kas que paseron los programas durante el desarrollo. Sin ernbargo, Los progranias tal x coing estén Estados no han sice ‘pulidas! came paledes ver por ejemplo. fn Ia mumeracién de [ineas. De esta manera, aunque continian retiejande 1a clase de producto senbado que seta aceptable para Ser usado, siguen comservance la evidentcia de los problemas de programacién, Hay una tendencia eon las programas publicades de pulicies hasta el punto er que clinicainente quedan pulcros y exconden las dificultades Que cl progeamader tava, 9 bien sinpiemente dejarios come iarahes conplelas que puede que sean ulllizables, pero que es imposivic de comprender o iwoditicar, Los Programas en este libro se han pulide del tado y asi puede verse ande se inserzaron lineas en el progeaina en sna etapa posterior, Por ejemplo, si encuentras una secuencia a niineros: de Linea. 10, 20, 25,39; Ww pacts aixeatan con seguridae gue el progeanador tuvo que volver atrés'e ingertar la linea 23 paca tener en cuenta ago que se le habla escapade, Per otro lado, todos los programas han sida conecrionadgs pind un mgtedo estructural de programacién que Verde a praducsr royramas is 1 mas — RL Apeenaie de Gewio 3 A inedida que teclees y analices cada seceién del prograina, no dabes retraerte de Intentar colnprobar si 10 has camprendido ejecutando 1 peegraina parcislmenie Dapletoy Casde Inego, a 0 ser que afladas temporalinente lincas petsadas por t Inising, obtendrgs inenzajes de error de estes prograrnas parciales. Sin embargo, en la nayorla se los cases dbservards algo de interés que te peunitara explicer, de acuerdo ton lo gue ya sabes sobre el programa, y eso increinentaria tu confianza y te havia peisar y razoner més concienzudarsente sobre el progeaina, Este libro es un libro bractico, asf que stantere completamente libre en enosilizar v experunentar con fos Propravnas tanto a medide que avanzas coin ung ver que os hayas complesat, INesce Kiegn, inclusy este tériaina “eompletado" es relative -hay ui viejo dicho en prograinacién, que. ice que nunca nngin prograina ested acanade, jsiroplemente Eeanea un punta donde es usable! Para aninarte a modifier y inejorar/estcopenr los programas, al Cina! de la mayorla de los capitulo: te hacemos sugerencias Concermentes norimalsiente eon las miejaras -pero. ti peedes hacer las "pevras™ © so 20 duh ralevas versiones del juego. Aunque ef un libra prdctiea, incluse Jos teinas ids pedeticas necesitan algo ge tworia, y por tanta, ia siguiente parte de este capitulo descrive algunas de las ideas que fundainentan la progewnacién. | Lerccsied se meray? como vi heinos inencionado, hay una diferencia eel entre escribir prograsnas penuefios y grades. Toi pragraia pegiete puede escribirse de una sentada y la Piayarla de tl puede rateqerse ew ha snemoria del pregrammador, Sin ernbargo, un prograina grande a demasiada large para eseribirlo de una pasada y tiene tants linea Ge ihstructiosas MASK: que) proframmadar que pueda recordarlo todo es [a rara Eecegriéns [3 posible eseribir prageainas [argos de La -nlsina ianera que se escriben [os Pity pero es ar Trabajo muy dur) yuna de las ragones por a que inuchos prograimadares abandanan proyectos largos ¥ yroducen muy poces prograinas acabados. Inclaso si se enplea I neresaria cantidat de tiampo y estuerso en escribir un pprogrania largo ala manera de los, cortos, el peeducto seabada es habitualinente tal Rhivigay que usiquier swodilicacién para cazjorarts © hitentar depurarle -cs decir, Guitare (ae piliag- es a quenudo totalmestte Waposible. sta situurién es una gray fen pocque representa inuchas horas de esfuerza Atsperdicuido en progearnacidn, La verdad es que si usas ut métade de progranacion ci orggnivzue tulesioeeesy In earevlura dein prograina large no #8 vas eifeil que Ls Tie wig butte, A menudmy La sugerencin de usar un inéteds de pragranactin atace Jos Gatraias fe lov progeawadores araantes de la beriad, Gl desea de no tener Festeicetnics al escribir un proprarna es esjicialinente conprensibic si sblo programas fur diversicn, Degonés de toda, jeuil es la rachn de converti¢ uns actividad plasentera Ienteoteniiniente ih atra actividad eatinuria y reyleinentada que se parece en Todo a Ih trabajo” Lt rasyueste es qua el slate de progranacisn no es rina reccta pare Pglamnetr he activi ex siniplenente eb ae te de progean we 4% eomiv de iss dusges eon et oe | Reta aay proces efino elo sukprogranas qe Inv eran a cabo, 90 hasa.en te wee ied cence 8 fa estrateyia Deserito de eta inanory este inétade de programaciéa resulta obvio, per todauia berraneee ol probiaina de eno divide e! progr grande E30 e6 age oe as ewnostrads por ait ne dees prograsp efor ts nay Ch ae haa ose, Si embargo, dnur an poco cts anh wate Sen Se deca fa RS ass Supongarow que gileres eacrbr un proproma Qs tgs te eee problema quia mayaria de Ton programadores tnoria ce sean ate eae Si paca Strela for un norstoy seas copes “de a ee ye SN broframa que juegue al jester, prinere tens cue dau eT eile dese ee Pvat on as ca ie nally tag cera ogee rel Infarindticas de estilo Sipes ASIC, drfamanr SS St Ave Mate, Dich en palabras dibuie tab tore FePeat”jusada See hdman fies nccars FE jaquemste THEN EKIT supava END FEPeat jugada ue Stor Esti 05, de hecio, Ia primera etapa on el tea coinplete ae ego al aiedres, En oteas pala 1 : as este 0s el privver nv eho doggone de 1a labor eealizat por el prograina. F/ siguente sivel consisting er Seca ae secciones de pragraina (los procediuientos) mencionadas eh la seccién anterioe deb Proxsainay que nor olmeste se cena Ty abr pele heal ecto para confeccionay un peogeaina {ada uno de os prcedinients, de ts sbrusinas wr urw lst de tareus mae pequefas y cnceetonry a8 hente ‘© programa, Observe que usando este netods eftfucturaco slemypre.ca Nec de ees 1 contecci6n de un prograia, escribiendd los nombres de los proceliniectos i ate fe fia Ge recurvin'y que todavia no est esctons Tambien devote ie oleae oe stuslauir problema ditici asta que realmente tienen que tesalveres avea ta Vor sjemplay en ef proyiina 6 ajedrec no hay ninguna: necenfad Je rosn ns el Posterior en la confeccién del programa. * “apa basta se escribiria desgtosindolas a su ver Sites wontaja de usar procedimientos como parte del Uesgluse de la labor a reailzar por cl progeaina, 66 que el pragraina resultante es tiucho inde Lael cl progaina 6 que of ea ho més Facil de compeender y mucno —T4 (i ra ca r [a [8 [8 { al i i | { @ (a EL Aprendiz de Brujo 5 Por ejeinpla, cualquiera que analizara la rutina principal sresentada para el juego de sledrez, se percatarfa snmediatamente que siempre el jugador humana inueve primero. Eso podria eambiarse Lcilmente, canjeando las Ifneas 30» #9. bnaginate lo diftell que este sinple cambio seria st las partes del prograisa que efectian la tarea de mover las dichas, no estuvieran en la forina ge taress y procedimientas asociados, y no estuvieran, por tanto separadas del resto dei programa, Hay tantas ventajas en usar este desglose gradual de la labor a realizar, y de asociar a cada labor un procediments concrete y tianejable, que es imposible enunciarlas tedas. Sin embargo, muchas de esas ventajas se harsh patentes at realizar los ejemplos presentadas én los capitutes siguientes. {Estructura y estilo EL desglose gradual de una labor es un inétoda que ayiéa con Ja escritura de_un programa, al dividirlo en segmentos 9 secciones mds pequetias y concretas. Sin einburgo, se alcanza un punta en ese desgloge en el que el procedimiesta tiene que hacer algo y no simplemente apelar 2 ot-os pracedirntentes mas sencilios. El desglose [grace] No establece Le guia sobre emo deblera aprovecharse el BASIC pars conseguir Cualquier resultado buscade. Eh rBtode de programacién que si dice alga sobre esas cofas es lo que se denomina grogrsinacién estructurada, La programacién estructurada es esencialmente una técnica para escribir programas ‘lates y transparentes, al evitar enredar et Tajo de control con montanes de bucles ¥ hudos. Por ejemplo, usando la sentencia de salto GOTO es posisle hacer un brineo hasta cualquier otra parte del programa, pero si la usa: con deriasiada lberalidad, descubriras que tus programas son imposibles de comorencer y depurar. Es inuy aificit seguir Io que ests pasando en un programa que brinca de in Lado g etre, y si 99 pucdes seguir el arden en quae se ejecutan las instrucciones, entonces Aabré’ un montén de Sitios para que se cuclen las pifias. 1a progeamacicn estructurada asegura que el !lujo de eosiral es siempre ticil de seguir al perinitic Gnicamente al programador emplear unas pocas maneras de cambiarle y desviarlo. La seleceién més habitual de cambios en of flujo de controt 2s la instruecida, Congicional IFsan ef bucle preconfinade FOR... y el buele condicionads REPEAT uy ¥e3 posible escribir cusiquier programa usando solamente estas teas estructuras, Iingéfsticas. Cn otras palabras, nunca os iniprescindible euplear la instruceiSn de salto GOTO dentro de un programa, y ¢30 e5 lo que ha provocads que se denomine “incorrectainente- a la programacion estructirada cone el arte de no usar la lnstruecién VAYA A... Ea'la pedctica es mejor considerar este insinycciin de salto coino peligrosiy per no coins probibida, Sie’npre y cuanto una seccién de progeaina quede Clarainente eccrita, en hase a saber cusnda y culos son [as insteucciones que se ejecuian, enkonces tado estard perfecto y piuchas veces a mejor manera de asegurar la claridad y nitidez, on ua gragraina es usar la sentencia de salto GOTO, ft che de foe Juggoe cou el QL bur elemento gue cantribuye a la claridad de un programa es el use de aouubres apropiados, tanta para las variables come para las subrutinas y procedimieiitoy decir, nombres que signfiguen y recuerden algo. Por ejemplo, si un proceduaiieita eteatia la tarea de expaner el tablero sobre ef que s¢ desarrolla el yuegoy debiers Tlararse algo asf opine expe_tablero y no xy Si puedes imaginar nombres apropuatkri para las variables y los pracedimientos, te encontrards que no slo tus programa’ fis [elles de coupeender y san ensl autodacuinentadas -es decir, puedes prescuncit le lus senrensios mamnnrandain RES- sing también ti inismo etieades mejor io que Calis programando, En la. prdctica, Rabitualmente es muy diffed inventar Is cantidud de hon ores necesarios y inantenerlas breves, y ro hay nada peor que tener que teclear um honbre excesivamente largo una y eta vez en un prograrna. Ruscar denominactones pare las variables y 105 pracedimmientas © algo en que 9 eres bueao 9 malo (come Ly Inayoria de los programaiores), pero que sin ninguna duda merece cl esfuerzo intentar inejorar. Toda esta charla sobre claridad del progeama y estilo de prograiacién puede que te preocune si sicinpre t2 han enselace gue el aspecto més importante do la progeainacion era ia eficiencia, 1c. maximizar Ja velocidad y mintinizar la wtihzacin fe incinctia. Desde luego qise es importante Ia eliciencia en cualquier trabajo préctice Y que ocasionalimente e| estilo ccupard un segunde lugars por eleniplo, a menude + jhedesario usar variables enteras aunque es0 haga que ch progeaina luzca muy poco, con fel signo de porcentaye datras de cada nombre, Sin einbargo, si produces un prograina Targe con inontén de memoria dispanible para afadidos y modificaciones, y nadie puede Comprenderle {incluso 4 misine al cabo de un corto periodo de tiempo), entonces los fRadidos ¥ tas modificaciones nunea se haran y cualquier gazapo permanecers con toda Brobabildad. EI éuasis debe siempre colocarse sobre un programma, clerarnente Inteligible -y cualquier cosa que hay2 de hacerse paca auinentar la velocidad o reducie Ig remoria usada debiera™ hacerse como modificacisnes a un programa bien ronfeccionade. La panera més ebvia de incrementar Ia eficiencia de cusiquier prograina es usar enguaje ensamblador. El ysicroprocesador 68008 usado en €] QL es un microprocesador muy. boeng para escribir programas en ese lenguaje. Desafortunacamente, por el Inomento ne nay disponible ningin programa ensainblador standard para el 68008 y eso hace més cisieil Incluir subrutinas en ensamblador dentro de cualquiera de los juegos de este. libro. Sia eimbergo, no hemes Ignorade (otalmente esta posibilidad, come deescubrirds en la siguien‘e seccién. [un med para nes ent | Los dos ynodos grdficos de alta resotucién en el QL son excelentes pars dibyjac gralicos y pata ung amguia variedad de ottas aplicaciones, pero reslinente no son Tos inés Jaeeuedos. para programar juegos. La razén descansa en que los comandes de alte Fesolucién ‘rabojan en términas de rayas y Inotes, y los programas para juegos fnvolucran el moviialento de Tiguras sdtidas definibles por st usuario -de motivo @ Jo large de Ia pantalla, La slucisn obvia es usar los eomandos de textos, es de expesicisn PRINT y de ubicacién AT del cursor en combinacisn con los gréficas definidos por et Ti 11 ri BL Aprendiz de Seujo 7 Sin embargo, 19s grificos definidos por el usuario disponibies en el OL (y descrites en tne hoja de informacion separada proporcionada por Sinclair Research) slo ocupan un Ghadratin de 5 x9 puntos, } cada tno estd rateas por un reborce del color det fondo. Como retultada ce eso, e+ dified detinir motives prafices con la sificiente resolucisn como pars gue sean interesantes, 9 es imposible einpalmarlos hesta formnar una figura ‘continua inde grande, ue la del tipico submarine. La soluciin a este prosieina de los grdticos datintbles pore! usuario que se ha adoptaco tn este libro, es 1a de agregar un modo grafico completamente nuevor 10 que puede parecer un poco drdstice pero de hecho no es dificil y sirve para cocroborar 10 Hicimente qur se puecen ampliar las faculeades pativas del QL. El nueve iodo de gralieos convier te sl modo 8 (256 x 256 puntos) en un Helo gréticy de baja resolucion “sand motivas gréficos que veupan un cuadratin de 8 x 8 yuntos, obteniengo por tanto 32 liness de 32 calumnes cada ung, en pantalla, Lo que es sorprendente es que la creacién de este nuevo viode de yrdficas exige sélo dos jrocedimientos: prepa grafo, ‘tad para defini la focina de los motives gratica, v porte-grafo usado pare evar 3 tis eeterminade lugar de Is oantaila tn motive grético corereta, La icea fundamental fe que en prepa grafo se almacena el patedn o wadelo de bivs necesario para deserIbir fa Tonna y color det yrdiico definido en twia tabla adeciada, y luego porte, grate simplemente transtiere esos bits de Ia tabla 3 la pantalla proyectando sobre tia las correspondientes motus de color. La sintaxis del procediiicnto prepa_grafo e: prepa.arato syfebird PL PZ ey rdnS.re ey, donde 5 25 el ndmere identificativo del motive grdtice que 3° estd cetiniendo; f es el color dai Irente, b ¢s 6l coler del fondo, y FO a €7 son ndmeros en hase 19 equivalentes Glas § rayas de iotas que describen ese grafice. Odserva que en la definicion el color tanto del frente coino del fondo esti pretijade y no puede ser cambiaco par un uso osterine por un comnande de Uinta INK o de papel PAPER, Eso tiene Ia ventaja de Inereinentar la velocidad can la que el ‘graf puede se Ilevade a ta pantalla, ¥ la Sesventaja de tener que utilizar una nueva deseripeidn de un motivo geatico cuide se Fequliera otra que teniands la inisma forma tengs una combinacién dilerente de color para el [repte/fondo. La tanera en que las adimeros 10 hasta 7 deseriben bit a bit una setersninaca raya horizontal, ha de scr faiviiar para caslquiera que baya usado otro ordenador personal, or ejeiaalo el Spectra. Si ascribes la combinacibn covereta de acho metas usands O para reprasentur las de color del forido, y 1 para las del color del trenta, ese ndeneto Binario puece ser expessase en base (0) asigrando a cada uno de ios bits €l pew que le corresponds segiin su posieidn y suinanda las resultades ebtenidos. Les pesos do jerucrde con cada posicisn del punto sous ota ids a ba izquierda voota més a Le derecha i ee de snanera que por ejeinpio, una raya concrete que st o1 represemtainos por ef asterisce (4) la ineta del calor de] frente y com eb guid 4) la Tigta cen flor del fondo, @ represeitado ew la forma nonrals logit | a 8 Geniy de los Juagos con el OL puede ser transtorinade al mimero equivalente en base 19 simplemente con la operaciéns DSK Lax s 32xOeLGxOeSe Lod lees LT © después de haberla evaluado, el 183. Desde luego, para describir un motive grafico Completa este praceso ha de ser repetide para cada una de las ocho rayas horizontales ‘que. io delinen, Por ejemplo, para cetinir das motivas grdtieas, un hommbrecito y un Bingue sética, dene apeliree par dos veces al procedinients propa grafo en la-torma siguventes prepaarato @.7,0,20,2d, 126,24 60,102,195, 195 Prepalarato 1,2, 0,255,225, 255, 255,285 , 255,255,255 Con fa primera defininos el inotivo grético identifieeds por 0 como un hombrecillo en bianco sabre un fonda en negra, miensras que el segundo correszonde a un cuadratin totalmente rellene de rac. Una ve2 que se ha descrito_un motive grafico cualquiera, puede ser situsda en CGaslquier parte de la gradila 32 x 32 de ia pantalla, recurriends porteerafo 23, donde x € y representan las coordenacas horizontal y vertical respectivaments, y s es. ekniimera tentiticative del motive grafico ya definido que va a ser Hevado a pantalla 5 expuesio. Las filas de cusdratines en la pantalla estan nurneradas 9 partir de la parte Superior, Goinenraride con Uy © kgualinente las columnas de cuadratines se nuineran & partir de la izquierda y comenzanda por . De manera que: porteorafs: 6.061 nos llevaria nuestro mot vo grafico | la esquina superior Lzquierds y porte_grafo 21.3101 os expondefa el noinbre a grata 0, en la esquina inferior derecha. Ademnés de definic y cecursir a los procedimientos prepa_grato y parte grafo tarnbién es necesarlo reservar espacio en meiorig para ta tabla descriptiva Je los motives grdficas empleardes en Ios procedimientos, y saber ademas a direecion de [a hase de Sicha tabla. Sin evnbargo, eco no es dificil 5) un progeaina esta usando n 1otlvos grifices que cada uno enige 32 octets para su definicidn, la sentencta de asignacisn C_TAB-RESFR( 22eN) cjerceré esa funeiéa, siendo C_TAB el nombre dado a fa tabla usada par los procediinientes. Les des procedimientos mencionadon, prepa grate y ports_grafo ton realmente 20 19, ecesario para aprovechar @] nuevo iodo We Brifices implantado. Desde luego, tienes ‘que recordar que hay gue ineluir dichos procedimientos an tus prograinas, pero aparte Us 229, eb aueve mace de baja resolucign es tat {Sell de usar como los yodos de alta resolucign intrinsecos del QL. a] ee ~y < — a TL Aprandis de Brujo 9 La siguiente seccisn da el listado y una breve explicacién de ambos procedimientos; si hho estés interesado en cémo funciona siltate simplemente esas des¢ripciones pere no ‘olvides incluie los procedimientos en los prograinas presentades en los. sui eapitulos. tes El formato de la inforraacién que ha de almacenarse en memoria para cualquiera de las rayas horizontales de motas uc color, se explica en la Guige. Esenciolmente, ef color ce un grupo de cuatro motas consecutivas esta controlads por los dieciséis bits de un doble octeto (una paabra sencilla) tal y cama se nuestra a continues oe GrEEGFGFRBRBRBR bt wISt2ILI0s 87 65437 8 0 donde ta G representa el verde (geeen), la Fl parpadeo (Hla, Ia Rel rojo (ced) ¥ 1a fl azul {blue con lo que el aspecto de cada mote ae color obser vada es pantalla viene determinada por 4 bits. Por ejemplo, el pixel { esta controlada por los valores de ios bits 13, 12, 5 ¥H, pertenecientes & un goble geteto de la parte de la cnemoria de Usvario'dedicada a’ pantalla, Usando la anterior y zabiexdo ademas que fa memoria sde_pantalla comienza & parsir de 1a direccién 131072 (que es la que corresponde 4 Tos uatro pikelssituadss en Ja esguina superior inquerda Ge la pantalla) y continia. partir de ahi segin el orden en que se efectiia el recorrda de la pantalla sogin las Tineas de ia. imagen, es relativamente ficil escribir el procedimiente prepa. grafo usando Gnicamerte ' SuperSASIC. Sin embargo, y _daco que involucra bastante ‘anipulacién de los its ce la pareja de octetor, e] procedimiente resultante. es Precioso pero algo diffeil de comorender: 1980 OEFine PROCedure prepa_grafoiSt.FA,BX, RON RIK, P24, ROK, RAN RS, ROKR) LOCA) AVEHS FL, BHN.BL® AsC_TAB+E2#5% FUP 88 BH= (8x OLY aye2 BL¥=B% 8% 3 Prepa_rayai Ron? prepa raya(R1X) Prepa_raya( 2%) prepa_raya( ken) Breparava‘Rdx) prepa_raya(R5X? prepa rava(R6X) Brepacpaya(h en) ENO DEF ine prepa_srato OEFine FRUCedure’ prepa_raya(RX? LocaT Mx,.1,T.0L%,0H® 10. Genie de Los Juegos con e4 Qh 7 ~ My=128 FOR Sei 10 2 :0HE=8 10 4 TP (RK EE ry CLY=FHEeDL Kd 1 DHS=BLS+DHNad END IF, Meer OLY 2 ENG FOR 1 FOKE A.D POKE ati ,OHK A=at2 ENO FOR J END DEF ine prepa_raya DlibeF CASON etbe CL S=BHHsOL ane Este precediniento prepa grafo confecciona primero las combinaclones de bits que ge = corrlponde aos cores de rente (stored del fondo (basins) en fe Tneae\1339 2 13805 y luego recurve al procedilento prepa raye para sinolda: cada raya horizortal del motive gedtien descrito, al corresponnante. dabie octeto que © necesita reflejaren la tabla descriptiva de fos motives prarics 6 usar en el programas L El proceditniento porte_grato es mucho inds simple que fas anteriores; 1700 DEF ine PRocedure porte arafoCX¥.¥%,5%) i210 Local 4.8.1 1758 PUKE L_B.PEEK_LCAHTSd) i768 Babel Za 1770 ENO FDR 1 199 END DEFine porte orato En la Tinea 1720 se calcula 1a diteccién de comienzo de la sutabla correspondiente st mnotive grafico Identificado come $36; en la linea 1730 se calcula la direceién en la ‘memoria de pantalla que carresponde a la fila y columaa en que queremes aparezca ¢l motive grilicos y finalmente, en ta linea 1739 transliere exe osteto desde Ia tabla Seseriptiva del motivo geifica hasta La memoria de pantalla. E50 se repite dentro de un hucle preconfinado FOR (lineas 1749 a 1779) para cada una de las ocho raya horizontales que describen el cuadratin ocupado por ef motive graties, Esta versiGn de porte grafo desde luego funciona, pero para la mayorfa de lor programas de juegos es Zemasiado lonta, La Grica solucién a este problema es recurti 8a peagremacién on cbdigo maquina cel raleroyeyoeneilyr 68000, lve wuntversidH NB 69 : ‘itdet, simplemente taberiosa. f 1 EL Aprendic de Sewjo 41 e 5245 ASL #5,03 33 z =10109 800 Os,04 53 a ASL #2402 22 é Be 8 ASL #2,01 ah io Abie #181072,01 St 1 a 14 0 16. movER UL.AL aL 13 HOVER #9140 WC 20 0 zz 0 fa 828d LOOP MOVE @¢A@, Od) .02 20 be 15032 eo a 8820" MOVE 02, (AL? 82 20 {152d ACOA #122,A1 Fo 32 128) 86 34 22é6a —ADDQ #4, AB 33 36 <20223 (MPA #32.A0 Fc 33 3h 20 40 26350 BNE LOOP. EE a2 28572 MOVED 0,08 eo ad 20005 | RTS 75 Para usar este programma en cédigo miquina en jugar dl procedimients porte gro, hasta simplemente isnt la iosteceién ce apeiscign a un acograma en eodiga mau, de palabra clave CALL~cite reciaine laites Pero dee reno, proviomente Te tends sje cargarye on alpina parte Ge la meinoria este progia en cocgo Taguines ta mueva version dl pracedicnts porte grata seria puess 1700 DEFine PROCEdure porte orafo(n4. V4.5") 118 CALL dire rus, x%,¥E,3%,0 TAB 1799 END DEF ine porte anata’ y ademas un cargador de programes en eédigo méquina lincluyende el propie cSdigo mdquina) que podrta ser: 360 DATA -9245,-10109,~7206,-Li1sde 370 DATA ~6783, 1665,2,8 8759/8216 380 DATA 0,0,926d, 19432, 5250 |~11524,128 830 DATA 2266d,~26228,32,26350, 28672, 2085 200 dire _rus=RESPR«I| 410 RESTORE 260” 420 FOR I=dire_rus 10 dire_rus+22*2 STEP 2 430 READ B 4d0 POKE_U 1,8 450 ENG FoR T 12 cunt de Log Juezes con el ale Es \wuportante ebservar que el procediniente prepa_grafo y el procediniento porte grafo en la versign que incluye Je cesién a Ia subritina en cSdigo mSquing que porte Erato ot, Giteceién ask por aire fs, 9¢ lan Todas 162 progeiriae Je este libro y aunque se inelayen en et listado fifal al térreine de cada capitulo, no siempre ve Jurlven a liste a medida qué se desarrollan fos progeavias. terval color dem a | Una Laceta importante en muchos programas para juegos ¢s la posibilidad de hallar el caloe que presenta une detgrminada “ota en pantalla, Desafortunadamentey SoperBASIC le falta esa funcién en et Lenguaje, pero también aqui esta deficiencia es geil de ractiticar, Sabierlo cémo se trazan lds imagenes en pantalla a partir de la vona de memoria Correspandiente, 3 fol! de defini una funcién que permita evaluar eh colar de cualquier pixel concretor 950@ DEFine FuNction tinteCP%,C% 26, YX 9510 Local AX,PY.B%.A 8528 PRECESSION 9538 A=1 3172+ CS1ZsREWVNREGSPR DIY 4)*2 F5d@ BA-PEEKCAHL) S358 AWRPEE (AY 9560 PUPS MOD 4 5570 IF Pies THEN RETunn ((2 8k AKAZ+ (2 we BH) 9500 TF Pie? THEN RETurn (CB $& Ax) OIV 20+ (U2 2 BR) O1V 4) 9590 iF Pi EN FETurn ((32 ah AN) DIV B)+ (idB Me ON) DEV 16) eee IF FI RETurn (128 & Aw) DIV 327+ U192_h& BR) DIV 6d) 9699 ENO DEFine tinte La funcién tinte asf definida nos dar un valor que guarda relacin con el color de ty ‘hota que dentro del cuadratin situado en pantalla en la coluinna X% y Ia fila YS, est Zolorada dentro de la raya horizontal R% en el cruce con [a raya vertical C%. En otras palabras, hay dos etapas Fmplicadas al especificar la mote cuyo color se quiere saber Cptimerainente, el cuadrarin de la pantalla donde est contenida, y en segundo lugar, 5 situaeidn dentro de ese cuadeatin. Ast por ejemp! tinte(1@.41,5.4) nos daré ef color de la mota sefialade por el cruce de la Tinea vertical 5 con Ja Knea hhocizontal 4, dentro del caadeatin que ocupa La déciina fila y 1a undécima columns de fa gradilia de pantalla, Esta funcisn tinte se usa en todos les prograinas de este libro y co importanta dastacar que aunque e3tf ineluida en el istado final de caés programa, fig se repite dentro del capitate, LE apemiee de tinny [econ pr 5] Antes de comenzar realmente con ei grimer prograina de este libro, merece In pene Gat una panordrmien de lo que trata cade juego dei libra y ia tecics que Mstras 7 Sango" el Copftule Dos, Hlormiguers’ es un ejemplo. simple ge animacion = uns Simension y oirve para presemtar les spotiver graficgs y los Ducles ce animaciSn. fonbidn es nussted primer ejemplo Ge usar ratines en lesguaje maquina dentro ce uh Drograina en BASIC. £1 Capiiala Tres, con el juago de las caza Ramsey avanca Haste ha animactn completa en dos dimensiones y comenta cong controlar un e3)ote gue Schota aiveuedor de Ie pantalla timpheanco el ctecto dla genvedad. El capil Etro “ise una clase Ge animacion completamente, dlerense, Ia animacicn pot esivamienss do la inagen para producir une version personal de Un veR0 muy Sanocido co ‘Ranas Urbana. vos Capitulos Cinco y Seis tratan de une de los 153 nlorescites motives graieos alargados que pueden’ ser animades on facilied es ‘Qiesress El Capitulo Cinco desarrolia et juego bisica, (raza con los problemas de ahimar sficazmente ese motivo de [a culebra, y presenia idea de las colas de datos. 21 Capitulo Seis anpifa el juego para inclu dn ndmera de motvos gedtieas adiclonales Yel, sesultado Io, hemos denominade wenaciajos. Para hacer las cosas IS Luritientemonte rapidasy el Capiture Sei presenta one suorutina on Sige. macuina ‘ruy simplla gue reeinalaza con inayor evacia uo de los procedimientos en BASTC Usadon dentro del jucgo. El Capitulo Siete nos lleva al juego tradicional de culebras y Staterasy y olocita una version actunlizaca paca los ordenadores de hoy. La tecnica pal cxpicada en este, capitulo es la mancra en gum puode aPimarse un motive [rdtico sobre uns esona ce foro Somplicada, in dest ticka imagen de fondo cads Meu que se nucve el mori. Cada uno de tos juegos presenta algo nuevo en cuanto a les téenicas de animacidn y al tuso de tu ordenador, ¥ 61 capitulo final combina todo esto con comentarios sobre como MliseRar © implementar juegot en general y cmo usar el QL en particular. Para el memento en que alcances ese capitulo Linal, deberds haber aprendido ina gran Cantidad de cosas sobre ainbos temas y nabeds dis{rutado bastante a lo jargo del camino, recorride con este fides. “TT Capitulo Dos Hormiguero Horiniguero es un sencillo pero efectivo programa que Invalucra la animacién de unos Cuantos objetos. La idea bisica del juego es guiar un hombre a través de tineles que pertenecen 2 une colonia de hormigas termitas, con la meta ce alcanzar y destruie el hidal de huevos que tienen localizado en el punte nds profendo del hormiguero. a dificultad de esta labor s¢ incre:nenta por tener que trabajar dentro de un limite de ‘ieinpo y evitar hormigas soldado situadas en cada nivel de los tineles. El problema mayor al umplementar un juego de esta suerte es el de animar un gran nimero de objetos, el hombre y tadas las hormigas soldado, al mnismo tiempo. Ademés de tratar con este problema particular, este capitulo también desarrolla algunos de los métodes standard que se usardn sin comentarios adiclonales en los capitulos subsiguientes. jseKo det juego Antes de comenaar a escribir cualquier progeama, es una buena idea intentar especificar con el mayor devalle posible lo que debe hacer. os programas para jsegos son ligeramnente diferentes a otras aplicaciones informticas en que habitualmente no fs posibie dar un esquema exacto dei juego final antes de haber implemenzaco parte del juego. La razén para ello es que es muy dificll predecir eémo los elementos den lego. funcionordn sin ensoyarlos, Despucs de haber escrito un gran. nimero de programas para_juegos es todavia difiell predecie el efecto ‘global de combina? diferentes elementos tormdos de jucgos existentes para prot uno nuevo. Sin embargo, todavia merece In pena espectficar lo que se espera que in juego age antes fe comenzar a escribir nada, por la simple razon de que asi te da tiempo a eliminar {ualguier cambio importan-e de tu sistema. EI diseno de Horiniguero (5 muchos otros jueges éindmices) cae con naturalidad en tres, partess L. el gritice que sitve de escena de fondo, 7 fas motives grdfiens mévilesy las eeglas se raovimienta, y 3. las Consecuercias ée ganar y perder~ La escena de fondo para Hormiguera consiste en unos, cuantos tineles horlzontales conectedes por pozes verticales (véase Fig. 2-1). La razén de usar una combinacign de lino 9 das pozes para conectar lor tinelas horizantales ot que promete dar una mayer varindad en las estrategias. Cuando séio hay un pozo conectando dos nivelesy slo flay una posible ruta y el desarrolio del juego se convierte en un tema de temparizacién; pero cuande hay des poze, el jugador tiene la oportunidad de elegir cuil le interes. para bajar. Li C4 Ld tj | [1 [1 4 C4 ca a | ti oe 1? Hocmiguees 15 El trazado general de Ia escena sugiere que vainos a necesitar tres colores: une para doe tGineles, probablemente negro otro para la tierra, probadlemente rojo; y un tereero para el clelo situado encima, casi con toda certeza, azul. Fig. 2 La forma dal hombre ge implementa fécilmente como un mative gréfice éefinido por ef Usuario’ y sencille (véase Fig. 2.2). Usando un motive que scupe un solo cusdeatin Significa’ que los tineles y los pozos que les conectan, slo, tienen que Terier un Ccladratin de ancho, que es el espacio ocupade por cualquier carscter. Sin e:aber $0, Las formas dadag a as hormigas son macho “mas dificiios ce implementar en un solo cuadeatin de 8 x § motas, porque son bastante larges y delgadas. La so4uciSn es Wsar {notivos grdficos dobles definidos por el usuario (vease Fig. 2.3) Ei hecho de que las Formeigas blo se maven horizontalmente a lo largo de -os tGneles y nunca suben © Sajan bor los pozes, sighufica que ineluso aunque es:én compuestas por dos cuadratines, Ios taneles y pozos sé necesitan tener un Cuadratin de ancho 4011 Fig. 2.2, Motivo grético para el hornbre Tt 16 Genie de lor Jueger con el ah Fig. 2.3. Motives grSticos para las hormigas jiente para las hormigas son tdciles de detinie, En cada nivel hay tina hormiga confinada a ese tinel y con posibilidad de moverse a lo largo de ia derecha 0 a izquierda. Si sicede que ina hormige llega a la posicién corriente ocupada por el hombre, entonces e. juege se terinina y el hombre es llevado abejo al nidal para ser comido, En esta etapa es dificil decir exactamente cémo deben ioverse las hhormigas para producir un buen juego, pero parece razonabe comenzar con la hipstesis de que deben moverse aleatoriamente a lo largo del tinel y ocasionalmente caimbiar su direcciéa, también al azar. Esta leccién de "merodeos alestorios de las hotmigas” eben proporcionar suficiente dificultad para el jugader en cuanto el limite de clempo para completar su trayecto es Lo suticientemente corta. Las reglas de movimiento para el hombrecillo son un poco mas complicadas. Al igual que las hormigas, debiera permitiesele mover a lo largo de lot #Gneles pero también Dajar por les pozds. El juego probablemente seria demasiado fécil si se le permitiera retroceder subienco por los pozes, por fo que el control del jugador sobre el hombre ito std limitade a las veclas de flecha izquierda y derecha para el movimiento horizontal y la tecla de flecha abajo para el movimienta vertical. Si se pula la tecla de flecta bajo cuando el hombre est encima de an poz9, entonces deberd bajar de un salto hasta el siguiente nivel. Cuanda el hombre no esti situade sobre un poz, la tecla Ge Fecha hacia abajo no tiene ningin efecto, Aparte de detalles tales como asogurarte que ni Las hormigas ni el hombre pueden salirse per el berde de la pantalla, aqui se Coinplets la descripeisn de cémo deben moverse, ay tres maneras posibles en que el juego puede terminars I. el hombre alcanzs el nidal de huevos, 2 una horiniga capeara al hombrecillo, © 3, 9¢ sobrepase el limite de tiempo y de fos huevos brotan més hormiga, “ungue obey ninguna dela que un juego con éxito tlene que ser excitante, también hhay un amplio panorama pura construir terinunaciones interesantes. La ta tf Woralguero 17 Por ejemplo, en este case, cuando el hornbre alcanza el nidal podria ser recornpensado con una alegre fantarria de trompetas; cuando ina hormiga captura al hombre podria arrastrarla masta et nidal, y cusndo se alcanza el linize de tiempo podria quedae sefializade por una explosidn demogratica de la poblaciéa Formigiela, Después de la especificacién del juego, es cas! el momento de comenzar a escribir el programa, pero primero merece la pena repaser alguna de las ideas y dificulzaces ée la Snimaciéa de mative grétinne DW pieces] 1a I @ | 14 ta Ca {@ om {@ (Eg La animacién en el ordenador de pequeias figuras es la simplicidad por sf misma, Para hacer que algo aparente moverse, todo lo que tiencs que hacer es exponerlo repetidaments en una posicién, luego borrarlo (habitualrrente wediante la expasicios de un espacio en blanco) ¥ luego volver a exponerlo en su nueva posicién. SI puedes Fepetir este ciclo de "exponer-borrsr-exponer” Jo sufickentemente rapide, creards la Jlusibn de un movisniento bastante suave. [rn la réetica, hay dos factores que controlsn Ja suavidad aparent det movimienta {anerado por el orceaador. La primera es el tieinpo entee el borrado y la ce-cxposicion fal motivo. E20 10 Lamaremas 't', y debiera ser Io ras corto posible porque es la longitud del tiempo en que la figuta ne es visible on pantalla. $1 "21" es demasiada largo, entonces ei objeto parece aie *itila® 9 incluso que *parpadea”. El segundo factor es el lapso de tiempo entre des sucesives exposiciones del motive grafico. Es lo que tenominaremos (2 puede ser tan largo como deseemas, porque controla Ta veloc\dad 3 la que el objeto aparenta moverse. En la mayoria de los casor querremnos que al ‘njeto se musva tapidemente, y por tanto 't2! también necesita sec corto, pero Ne es siempre asi. La manera en que los diferentes intervales oe siempo atertan a la Salmacién puede verse en la Fig. 24. borre torre exponga exponga, 4 te —- 11 deberia ser siempre tan pequetio como sea posible 12 comtrala la velocidad aparente del movimiento Fig. 2.4. Temporizacin al animar motives gedficos a il tf Ls La Lt ta = | (a Lo La La ra 1B Genin de toe Juegos com el Qe Hay otro factor que controla Ia velocidad a ta que algo se desplaza y que ha sido lgrerado hasta ahora, Se x2 supuesto que cada vez que el objeto se mucve on la pantalla, se mueve en pasos lo mas pequefios posible -es decir, el espacio eel cuncratin ue ocupa cualquier cardcier. Moviendo l ojeta de cugaratin en cuadratin, tiene la ventaja de que el movimiento aparece fo menos "espasmsdice" posible, y que el objeto realinente 9€ expone en cada posiciéa por la que parece atravesar. Per otro Lado, hay lina gran ventaja en mover el objeto con zancadas que orupen ins de un cuadratin, cals vez sla velociéaa! A menudo es posible hacer que in objeto aparente moverse bastante rapido, usando Gnicamente BASIC, pero haciendo que se desplace ms de un ‘cuadratin en cada paso. En Hocmiguero, ambos métodas de animacién eerdn usados. El hhoinbre se moverd Gricamente un cuadratin en cada paso, pero las hormigas algunas veces se moverdn mayores distancias de una sola zancada, TL ciclo “exponer-borrar-expones" ex el fundamente de la animccién de motives ucdiicos pero todavia dejs el problema de cdino seguir el tastro de anos cuantos Sbjetos que se mueyen dentro de un programa. Cada objeto en la pantalla est asociago con cinco magnitudes y de acuf con cinco variables: la forma caracter’stica del ‘cazcratin que ocupe; su pasicion corriente en virtud de sus coorsenadas de pantalla Xe ‘Yiy Jos inerementos que sus coordenadss X © V deben suftir en cada ronda del bucle de ‘animacién. Estas dos nagnitudes pueden ser pensacas como desplazamientos © incluso como velocidades. Porque son las que gobiernan ei paso en cada direccion que fl objeto da cada vez que ae efectiis una ronda del bucle de animacisn, Por ejemplo, la forma de un abjeto puede estar dafinida como el caracter grafico 5, su pasieién como. Xe ¥ y su velocidad como VX y VY. Subucle de anitmaci 2 porte_geato X,Y, XoxVey=Y Vy porte_grafo YS borre objeto .ctualice coordenadas ‘exponga abjeto representando el ebjeto grafico "8" un blanco con el color eorrecto para el fondo (véase Capitulo Une). En 1a prictca, los bucies de animacién son generalmente un poco mas complicades porque la velocidad del abjete habitualmente cambia como consecuencia se donde esta deniro de la pantalla. Por ejemplo, la animacion de va bola que resota Implicarfa cambiar el signe de ie velocidad siempre que la pelota resotara contra las limites de la pantalta. 5a es toda la teoria que hay sobre la aniinacién sencilla. Un abjeto que est animade He la manera descrita anteriormenta, es lo que se denomina motive grdtica, y se Senoce también como ‘sprite’ aunque no tiene nada de “espiritir. £1 programa Horimiguero usa un total de sais mozivos grificos, cinco harmiga® yun hombrecilio, fs una buena demostracisn dal hecho que en computacion jla seoria.a memuco no es ods que una mera directeiz programa principal {programa principal de todos loR juegoe For i= To 4) AX), DeRNO CO TO 25745 Aint, 154 ENO FOR 1 DTRASFALSO SULPE=FALSO NIDAL=FAr SO TIEMPO=FALSO END DEFine prena_manga Las lineas 1960 y 1070 fijan la posteién inicial del hombre en XMM% # YM2%, La posicién fen vertical del hombre siempre esta prefljada a? de manera que comlence et juego por enciina del terreno, pero su posicién horizontal se elige aleatoriamente. Las lineas 1980 4 1140 inicializan as posiciones corrientes de las cined hormgas soldado, su ieccién de movimiento y su forma pertinente (a dececha 9 a izquierda). La tabla AM%(4,3) se utilize para vetener [a mayorla de ta Informacién sobre cada hotinigas AS(L1) da a coordenade X de 1a hormiga I; A9&lI,2) da la coordenada Y asociada y A°6(l,3) da la direcciéa en que se mueve Is hormiga. 51 AS(L,3) €8 | entonces Ia hormiga se mueve hacia la derecha, y si es -1 se mueve hacia Is izquierda, Finalmente, los identificatives numéricos de [a pareja de motives graticas que determinan la forma de Ja. hormiga es%8 conservade en A1%%{h,2) por le que para exponer Ta hormiga I (recuerds que Tha de estar en la banda 0 @ 4) citarsmos: porte arafo AKCI,1).AbCL,2) ,ALK(T, 1) porte_arato AKIT, 1341 ANET,2) ALKCT,2) a linea 1100 establece cleatoriamente Ia posicién horizontal inicial de cada hormiga cen la banda 3 a 30. La Linea 1110 establece la posicién inieial vertical de cada hormiga de manera que haya una por cade tinel. Es decir, la hormiga 0 +e expone en la lines 7, lo hormiga ! en ta tinea 12 y 1a hormiga ? en la linea 17, y asi sucesivamente. Todas tet diraceiones iniciales del movimiento de las hormigas s2 hacen igual a |, haciendo que sodas se muevan a la derecha {linea 1126) y asf la linea 1130 hace usa forma de hormiga mirande a la derecha en las variables AL%(yL) y AlSh2). La parte final de este procedimiento fijs Iss variables que van a usarse para indicat el final del jucgo all valor FALSO Giness 11604 1190). EL procedimiento prologue es 1a propia sencillez. Desde luego, escribir este procedimiento simpiemen:e implica encontrar las palabras razonables para explicar el juego a un Jugador neva iT: Lj Li Li Cl L] [1 Hermiguero 23 GEFine PROCedure prologue BORDER O:INK @:PAPER @20L3 AT 3,14:PRINT ‘HORM I 6 UE RO AT PrSIPRINT “en este Juego tienes une PRINT 10 2;"2antidad de tiempo para destruin el nido de'las hormigas* PRINT TO 2:"entes de que las hormigas resucitent PRINT 70 2} *ATENCION: las hormiga: so? dado, gue guardan lost PRINT TO 2;*tunoles te captureran v Vievaran* PRINT Tit 25 PRINT To RePeat dif AT 1S,5:PRINT "dime nivel de dificultad —* PRINT TO 33'1. Experte, 2. Medio 2. Novato INPUT OF IF DE>@ AND OF<4 THEN EXIT dif END REPeat dif MAX=(20+DF #10) AT 22,15 FLASH E RINE "Por favor espera’ FLASH @ END CEFine proloaue al nido com> alimento de sus criast ens suerte!" Las Iineas $300 @ 8320 piden al usuario que elija el grado de dificultad del juego. La linea 8330 comprucba que DF @st4 en la banda correcta y la linea $340 asigna a MAX la cantidad de tierapo que ef usuario esta permmitide para un grace de diticulted dado. [rosin ta Este procedimicnto os el primero gue realimente hace muy mucho en Ia forma de geafices. Su labor es cibujar el sistema d= tGneles y pozas preperande 1 comienze del Juego. Dado que silo se usard una vez durante el juego, realmente no es eritico en cuanto a velocidad y nuestra preacupscién principal es que al escribirio dediera ser la de producir un procedimmiento elara y conciso que sea cll de moditicar. 2006 DEFine PRE 3010 PAPER 2 2020 cLs 2840 FOR Xo TO 3A Z05@ corte grato X.7. 2968 Fortelarate fal 2070 porbecarafo X41 edure trace escena, 24 erie de low Iuezus eo el QL porte arate X.22.% porte arate ¥,27.% END FOR FoR FoR x=0 TO 31 parts grata #,¥,10 ENO Fa Y pon_poz0s Pen poses ponporos 213,15 Ponpezos 1,12)21 pon_poswe 212,28 Porée-arato ith, Yié, 11 1 porte arafo 1,28,5:porte arafo 2,24.7 porte scare 2,27.8 Foe Porte arate AKI.1) AKLT.2) ,ALMCT.1) I I Portelgrato AECLI1)51 ,AN 1,2 ,ALMET 2 1 END FORT foes geek ocean gierarercemcems [i Se a es a nea eae a Las liness 2010 # 2926 clarean Is pantalla a roje y luego las lineas 2040 2 7100 teaza los uineles horizontales e7 negro. Eso crea cinco tiras negras través del fondo rojo. Luego, las Hineas 2120 2 2140 exponen un bloque de espacios azules para representar el cielo. Despuds de es0, todd lo que queda es trazar los poz08 verticales que conectan os Uineles. Eso es un problema cue se resuelve mejor recursiendo @ otro procedimiento =pon_pozos (NO,1,Y2)- que trazaré tentos pozes verticales como indigue NO, cada tuna camenzando en’ YL y terminande en ¥2, Asi por ejemplo, pon pazes (2,7,9) trazar$ fdas poz0s entre Jos tineles en Y-6 © Y-10, Las Hineas 2160 a 2200 recurren a ese Procedimiento, todavia per definie, para conectar los tdneles mediante pezes. La Linea 2220 lleva el motive gréfice hombre a las coordenadas XM%,YM% usando un frente roje y un dondo azul. En esta etapa del juega, el hombre est por encima del horinigsero. Finalmente, [as Tineas 2270 a 2290 Levan las hormigas a escena y 1a linea 2300 coloca a 0 el eronéimeteo prepardndalo para que el juego comience. El Gnico procedimiento citaco por trace escena es el de pon_pozos (NO,YL,Y2) y éste ha de confeccionarse antes de pasar al resto cel programat Ca ta L@ ia 8d9@ DEF ine PROCedure pon_pozos (ND,YI,¥2) NOCO TO S)eerX20eRNDC@® TE $O3+15 2420 FOR Y=¥i 10 YZ 8430 IF ND=1 THEN porte grafo INT ( (nt%+X28)/2) 62 24d@ IF No=Z THEN porte orate IM,¥,2:norbegrafo X2%,Y,? 2450 ENG FOR Y 3099 END DEFine pon pozes. Bormiguers 25 La Ifnea 8619 establece afeatoriamente las posiciones de los dos pozos ea Ia variables 2% y X29, Los ndmeros aleatorios se generan de manera tal que el pozo espacificado por X1% esti a la izquierda de le pantalla y el pozo especificado por X2% a la derecha. Si se raquiaren dos pozos, ambos serdn pintados por la linea 8480 dentro del bbucle preconfinado FOR (ineas 8420 a 8450). Si silo se raquiere un pozo se coloca en el valor medio de XI% y X2%, que es una posicién aleatoria que tiende aproximadamente hacla 1a maitad de Ja pantalla (tinea 8439). Procedimiento mueva_ambos - el ndcleo del juego El procedimiento més importante en todo este programa es el procedimiento raueva_ ambos. Coma va a ser citada tantas veces, os importante que él y cualquier procedimiento al que recurra, trabaje lo mas rapidarente posible. Fuabiendo dicho eso, Fodavia merece intentar mantener 1as cosas claras y simples y con esta meta la mejor manera es escribir el procedimiento mueva_ambas como una serie de citas © apelaciones directas a otros procedimient 4008 DEFine PROCedure meva_ambos mueye_honbre TE GOLPESFALSM THEN 48d _mire_hora, apse END TF 4099 END DEFine mueva_ambos La tarea del procedimiento mueva_hombre es la de perm.tir al jugadior 1a oportunidad, de desplazar al hombre y comprodat 1a posibilidad de que su trayecto maya alcanzado al nidal del hormiguere. Igualmente, el procedimieto mueva_hormi concierne al despiazamiento de las hormigas y a la comprabacisn de si el hombre ha sido captdrade. EL procedimiento mire hora inspecciona el crondmetro y comprucba si ya ha concluido el limite de tiempo perinitico, Claramente, la manera en que se ha escrito el procedimiento mueva_ambos deinora Todas las ‘decisiones dilfelles hasta que se hayan confecclonado os otros procedimientos, pero esta estrategia es intencional: los problemas de programacién oben siempre ser desglosados en pequerios pasos. El procedimiente mueva_hombre es ft siguiente procedimiento a eseribir: 5000 DSFine PROCedure mueva_horbre S901 Local 1% 5905 IX-KEYROUCI) 500d IF [¥=0 THEN END CEFing mueva_hontre Sei0 IF yea THEN S015 porte arate XM, YMK,S 5220 ELSE 3022 porte rato XML. VMK. 1e 5025 END IF 16 Gunin de lor Juegae con el Ms 5068 IF I¥=2 AND XML THEN MHW=xt%—1 Save IF [¥=16 AND XMN<3@ THEN XMxmcTKeT S080 IF INS122 AND bintecYMKed 0%, 1,122 baje_pazo 5100 IF YPXod THEN THEN E102 porte arafo XMk, YH 4. Sea ELSE $106 porte arato XM YHK, LL Epo enn IF S1L@ IF XYK=3 AND YNK=2? THEN WIDAL=CERTO 5199 END DEFine mueva_honbre {a linea 5010 examina la posicién vertical del hombre. Si todavia est por encima de le erca se Lleva a pantalla un espacio azul en la linea $022, y en el casa contrario un espacio de fends negro en 1a lines 5015. Por tanta en ambos casos, el hombrecilla desaparece de la pantalla, ts Itheas 5860 a 5089 comprueban luego Cusl de las tees posibes teclas de flecha es la pultada. EL valor correspondiente ha sido previamente guardado en 1% al haber usade Ia funeiin KEYROW (fila ce tecia) en is linea 3003. La linea 3060 corresponee a Ls fecha tequierda, [2 linea 5070 a la techy devecha y Ia linea 5c80 a la fecha de bajada. El fines otro especte digno de menectén es que las [neas 3060 y 5070 tambicn se aseguran que e! movimiento intentado no saca al hombre fuera de la pantalla. Ca lines 50 cita 0 apela directamente al procedimniente Baje_pozo para hacee que el hombre salte at Sigulente tunel Gnicamente si se ha pulsado Tn teclo de flecha hacia abajo y si también el cusdracin situado por debajo de 1a posicién cortiente cel hombre es negro. La fune.in tinte (vase Caprtilo Uno) se usa para descuseir el calor de exe cuadatin. EL procedimiente mueva_ hombre termina volviendo a llevar el motivo grético hombre a la hueva. posicién cada por 23 THEN 2071 ARCO, 3072 are O* 575 END IF 5038 vorte grafo AKON, 1) AN (Oh, 2) .ALKCOK, 1) 2085 porte srafo AN(O%,1I41,AKCQR,2) ALNCON,2) 2098 pal FE=tocandoto%) 3099 END OEFine avance La linea 3020 fija Q% aleatoriamente a un nimero entre O y & para determinar hormiga se movers. Luego, la Ifnea 3030 bora dicha harm ga de su corriente posicion. La Ifvea 3080 apela al procedimiento vire(Q%) aleatsriamente pata invertir 1a diceccisn de 1a hormiga Q&. La funcién de azar RND sera mas pequeha que .61 como media, una vez en 100 eitas al procecimiento mueva_hormi. La linea 3059 incrementa o decrementa la cocrdenada X de la hormiga dependiendo de! valor reflejada en A%Q,3). Si A9(Q,3) es +1, entonces e! valor de la funcidn RNDIL TO 3) se alace a ta coordenada X, de manera que lo hormiga va hacia la deracha; si A9s(Q,3) es «1 entonces el valor de fa funcién RND( TO 3) se resta de la coordenada. X, de’ manera que la hormiga va hacia la izquierda. La zaneada gue la hormiga da gueca determminada por el valor de RND( TO 3), Jo que significa que puede moverse 1, 2 63 cuacratines a ta vez. Aunque en general el despiazamiento de més de un cusdratin a la vez es una tGente poteacial de problemas, esa es realmente la tinica ‘manera de conseguir Ia iiapresidn de gue las hormigas ve muever: ¢pidamente, Despuas de haber actualizade le coordenada X de la hormiga, es ecimprobada en las linees 3060, 23075 esth préxima a unc u otro borde de la’ pantalla. Si_asi cs, s¢ cita cl procedimiento vire(Q%) para cainbiar Ja direccidn de Is houaigs, Finalmente, las lines 5080 y 308% vuelven a expaner la harimiga en su nueva poscian, y la tines 3090 aplica la LusiciGn tocande(Q%) definiea por el usuario para compreber’ si Ls hormiga que se seaha de mover ests tropezanda con e) honbre © Moe Cl procesicniento vire(Qi) es el snico procedimienta usase en el anterior. Tao 1 que tiene que hacer es cambiac la direcctdn cel movimiento do le Aormiga 9a La pareja de Ssvacteres geaflcos que forman 836 sativa. 28 ceaiv de los sucgcs con cl Qh 3000 OEF ine PROCedure wire LOK Si@ TF Alycg4.i2=3 THEN 528 ALCOR, L 2523 ALNONLZ, 3538 ELSE 2540 AIRCON, S55 AIRCON, 2 3550 END IF S558 ANOS, 3)=-AK COE, 2 3599 ENO DEFine vire La funcién PNtocande también es fell de escribir: B5e@ DEFine FuNletion tocands (0%) 8516 IF ABCON, 2) OVME THEN RETURN FALSO 520 TF ARON, 1) OX AND ANCOE, 11410344 THEN RETurn FALSO 8830 RETura CERTO 8599 END DEFine tocando [ fmico procedimiento que resta por ahora es el procedimiento mire_hor 4500 OEFine PROGedure mire hora 4510 TIMes=DATEE SECSTINESL7)460 SEC=SEC#TIMES(19 TO 20) TF SEESMAX THEN TIEWPOSCERTO END DEF ine aire hore Las tineas 4510 a 4530 asignan el tiempo en segundes 6 la variable SEC y luego la lines 4550 coinpara para ver sifha concluida el tiempo permitice y el juego esta en una de las formas de acabar. [Ahora que el procedimiento mueva_ambos y todos los procedimientos y funciones que fen él se citan han sido delinidos, se puede ensayar el juego aparte de [as rutinas para final del juego. En esta parte del programa so han usade variables enteras pars dar la maxima velocidad de ejecicién, La eleccién de edina hacer que finalice ung manga de un juego es algo que a menudo std lunitade por is cantidad de tiempo que ya se ba cmpleado eh conseguir que funcionen las ‘rutinas principales del juogo. Hay tres posibles conelosiones. para Hormniguero y el procedirsiento fine manga tiene cue Identiticar cade una de ellas y apelar a fos procedimientes pertinentes, Li C4 L4 ca (4 ea pa ra ra ra a | ra ra Le Mornigvero 29 LEFine PROGedure fine_nanca TF GOLPE THEN capture ELSE, TF TIEMPO THEN teampa ELSE. TF NIDAL THEN destru_nide ENO IF ENO IF END IF REPeat otramansa AT 24,3 PRINT "OTRO JUESO S/N 2* INFUT NE IF _NE(1)="S* OF NECLI=INE ExIT otra_manga END REPeat otra_manga TR Ng(ii="S" THEN GTRASCERTO END UEFine fine manga THEN El procedimiento capture hombre se cita si una horiniga ha alcanzado la misma pposicisn en pantalla que e! hombre. El procedimiento rebrote_hormis se cits si el juege ferimina debide a haber alcanzada ef limite de tiempo establecido, y el procedimiento quite_nidal sie hombre llega a esa posicidn dentro det limite de tempo, Observa la manera en que se han anidade las instrucciones concicionales IF para elegit cudl es el procedimiento que debe citarse, De esta manera se asegu’s que no importa cules sean los vaiores contenidos en las variables GOLPE, TIEMPO 6 NIDAL, porque dnicamente lune de los tres procedimientos sera el citado, Después de este tram, las Iinews 6100 a 66130 preguntan al jugador si desea otra mange y fhja la variable OTRA de acuerdo con Ja respuesta obtenida. De los tres procedimnientos mencionados en el fine_mangs el més complicade es el de capturar all hombre, asi que su cescripeién 1a dejeemos pata 10 ditima, EL procedimiente fe emo hacer que rebrotea las hormigas simplemente expane hormigas fn posiciones aleatorias que se cirigen hacia el centro se la pantalla acompafadas de ura melodia descendente, 4806 DEFine PROCedure trampa S40 AT 2=,2:FRINT "LAS HORMIGAE ESTAN RESUCITANOO * 5520 FOR 121 To ROUGE TD cert NE) Ter 25945) yeRNDC® TO 15145, TaHRNDCO TH a) porte grafo K.Y.AIRETHAL! partelarafa SF LLY«MINT#.2) BEEF slit PAUSE’ 1 END FOR 1 BEEP END OEFine tramps W Geni de Los Juegos con el Qh 1 procedimiente quite_nidal cecompensa al jugador con toda una anfarrla verbenera’, 6800 DEFine FROZedure deste nido Se1@ AT 22,22 PRINT "LO LOBRASTE™ RESTORE 6960 RePeat melodia REAG U,P. TF 0=999 “HEN EXIT melodia PEEF OP, False 0125, BEEF END REPeat melodia DATA 1, 14..1,13 ATA Lay12.03)41 BATA 12,10..2)10 Gata $95,999 END DEF ihe destru_nidc Lus notes de Ja fanfarria se especitican por los valores ce las insteucciones DATA Uineas 6890 4 6920). A cada nota le corresponde una pareja de valores, el primero vignco ta duracign, y el segundo el tono. Luego, al marcar una curacién de 999 se sefiala el Final de Ta serie de notas, al ser detectada en la linea 6840, La idea que el procedinnte capture pombre inpleyenta es que 1a hormiga que “aptata al hombre daberd arcastrarle Hasta el poso inde carcan’y dajarie cast para te sta recog pos 1a host ige det nel Inineatamente Inferior. E50 e repite hase Gi erga del din nave e acts hasta otal dando ago Kinaiente Teqmina, suena como una secuencia de acclones bastante complicadsg pero en Ia practica no es tan dificil " oe GEFine PRitiedure capture AT 23,92 PRINT "Te han capturado!* Repeat hormi_jala IF OXed THEN EXIT hormi_iala coja_honbre(Q¥) busaue por_pozos AK(ON,2) IF ABE (K29—AN CON, 1) ) forte erate AMY, 1241 AK (OB. 2) 99 Borte_orata AKCUN,1)+2,AK COR. 17 AR(OK.1)=0¥ COE 1) FAKCDH,3) Porte arato AXCOK, 1), ARON, 2) IKON, 1) Porte arate ARCO, D+1,A808,2) ALKCON,2) porte_arate AKCOK,1)+2,AK(Ok,2) 14 denore TP ARGON, 1142-X% THEN EXIT paso_jala END PEFcat paso_Jela x ENO DEFine arrastre Tt cf rt | ra | ee [@ [ @ Ce {a (a 1 ( Hiormigueco 33 La Gnica diferencia real entre ol procediniento mrastre yl provedimients dja hombre cs que en el primero se mueve Is hormiga y el hombre hasta el sore més Gectiy lyr ue ch Spun lo 6 dels eho Nata Ie psi ‘cupede por el homare. Para permitir al jugadr el Uempo suficiente como pare ver ‘te sucelle, amboe pracedimentos apelan at procediento domore para retard las ‘oras un paces 8606 CEFine PROCedure vemore 619 PAUSE S 8499 END DEFine demore [me Después de jugar unas cvantas mangas de Hormiguero se hace répidamente abvio que ts muy Fel de contegitIegar al nda! de fvevow: Un Jongo gm ev demasiado Lcd no 5 juego en absolute, y en este punto muchos programavores puclevan estar tentados ce onsiderar la idea de hormiguera como un fallo. De hecho, la primera versicn ce lo ‘mayorfe de los juegos fracasa en funcionar tan bien com se esperaba por sna u otra azn, y l siguiente paso en el desarrollo de cualquier programa de juegos es intentar Aeterfninar fo que esta mal y arreplario. rando el jucge Ei primer impulso es intentar hacer el juego més ditieil incrementando el tieinpo permiziga, 51 intentas eso, verds que disminuyendo el tiempo perinitigo tiene muy poco efecto hasta que de repente alcanzas un punte donde el juege es casi imposible, El probiens es cue el juego puede siempre coinpletarse ajraximadamente en lo misme, Cantidad de iampo. St paces el limite de tiempo mayor que es, entonces el jucgo es Aacil, Pero si lo haces menor, entonces el juego es imposible, Pars hacer Horimiguero mas interesante, tenemos primeramente que deterininr por qué el juego puede ‘completarse en Una cantidad pretijada de tiempo. La razén mas obvia es que inicialmente todas las hormigas se estin maviendo hacia la derecha, y en cuanto que el hoinbre dé un paso hacia les tineles de la izquierds, puede egar al nidal antes de que cualquiera de las hormigas haya tenido mucho tempo para virar hacia el otro lado. La solusién a eso es hacor que las hormigas se mucvan en. sirecciones aleatorias al comienzo del. juego. Dado que ya hemes preparado el proceditniento vire, eso se consigue mis fécilmente anaciéncole la linea siguientes 4289 IF RND>.5 THEN wire I Después de este cambio el juego es més dificil, y por ende mas interesante, pero todavia cs posible para et motivo humano moverse a -ravés de cualquiera de Ios motives hormigueriles sin ser capturado, y eso significa que no tiene realmente que preocuparse solire dinde estin exactainonte Las hor'nigas en los tineles. La ra76n para que el hombre pueda ser capay de atravesar una hormiga es que 1a unica ver que 52 eoinpenaba si he hebide capture or cuando se Mmucre lat Mavwigay y yar! cada hariiga dada, eso sélo Sucede por termine medio una vez cada cinco movimientos del hombre.

También podría gustarte