JBOqBðˆ­TH¬¦°ú@õ@ä€UðþXÀ<cnj°fûÐ@¬ÞÇÊä?ËT@Ì�?Τ>Ï?ÐP>¯ð5°H6±7³Ð7´¨7ß²6 h7 „53Z 4† 5² 6ö 7N8z9¦:ž j’k¾lêm.n†o¬pÔqrÌ6è78@9„:Ü;<4=,?@BAnB²C D6EbFZHDIpJœKàL8MdN�OˆQr"Rž"SÊ"T#U†#V²#WÞ#X¶ZÊ&[ö&\"']f'^¾'_ä'` (a8(b$d*+eV+f‚+gÆ+h,iD,jl,k˜,ld(nŠ/o¶/pâ/q&0r~0s¤0tÌ0uø0vÄ,xê3y4zB4{†4|Þ4}5~,5X5€$1DæE FB–––– ˜°9Bž Ì,Zˆ¶$d(Ä,$1„5P>�?Ð@LA?€� F Û·B"Û·B²Û·BÞW&b÷R&]÷æa&l ÷ \ &g÷¯ControlPanelÛ ßBÛ·BÀÀÀ" þ† ÍÍ ¬BW&b÷ÿÿ"´t h{™�Æ ;€�BUTTONUPä’4svSettingUpääŠ�Ÿ€±yäƒboolAllObjectsSetup()èŠÈ) €°”è�·‘‹ˆ±êè‡SAVEBOARDè‡PLAYGAMEä°…è‘Î"À: ‘}have ‘xbeen Šup"ä‚£à‚Åxààà€�­Ï`pà--ðSee ƒ�‘}Â*Â%assigned behaviorä’4svUnitListää…i †1 €² (Ç)èƒ�Ìi ˆÇ ‹"dead"ì�d¥è‚£èƒpBehavior ˆ�Ìi ˆÇ@ ‹±yì�·�Ìi ˆÇNì�31ì‘‘1 ±äì‘ñ�Ìi ˆÇcì�·�Ìi ˆÇmì�31ì‘‘1 ±äì‘ñ�Ìi ˆÇ‚ì‘Ò°”肣䂥ä‘Ò²Pà‚ß$û‰ BUTTONUP¦a  boolAllObjectsSetup–Œ˜+BUTTONUP~qêµDª«ªÏboolAllObjectsSetupª.qê·ªñª:µAÂ1ªáŠSAVEBOARDö`PLAYGAME&b«All objects have not been set upªsvSettingUpz"¥¸1ƒboolAllObjectsSetup~¬ª ·¾ ª òÿöÿj··Ê«dead½ªO··ÊÐpBehavior«½ª6:··Êª¬ªL¬ªw··Êª:··Êª¬ªL¬ªw··ÊªeñªŠÿŽÿšÿeñªi:toisvUnitListEï¬+ªæœ¥Combatr= ÇB—@R&]÷ÿÿÿ€€"Ü´tÙH[_c—Æ;OZ5€�BUTTONUPä‘ñ�´"tank Help"äŠ�Ÿ€±yà‚Åàààû‰ BUTTONUP</0SBUTTONUPw«tank HelpÜ ªqêµDª«ªãHelpS  DBí a&l ÷ÿ"þ´tûj}�…íÆ;**Z6€�BUTTONUPä’4svSettingUpääŠÈ €²P䊓o€4ä‡INITGAME䊓o€defaultäŠ�Ÿ€±y;à‚ÅBààû‰ BUTTONUPŠH\¼BUTTONUP~qê·ªñªqêµ ª¬ªj^INITGAMEqêµ ª·ªqêµDª«ªdefaultsvSettingUpîPç3H Reset+ EBa. \ &g÷ÿÿ€ÿ"” ´t‘  ³·»aÆ4!Z$€�BUTTONUPä’4svSettingUpää‘Î"This will reset the ‘}€Áway they were �)Ábeginning ˆÁ#‘Jcombat.ðIt doesn't work yet."äŠ�Ÿ€±yà‚Åxààû‰ BUTTONUP<‘žÐBUTTONUP~b«This will reset the objects to the way they were at the beginning of the last combat. It doesn't work yet.ªqêµDª«ªsvSettingUpî‘› Redo : þ  iòèï  ŸZ ¶x† -xx² Å Yö Þ("NFB‘~zF«‘ç¦ÏÙŸÙ TankT î26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0+ : . pBehavior7 6,-4M P pObjectEnergyW 125ƒ 3ž iˆÁÓÀÀÀ þ† ¯ 4ž iÿÁJÀÀÀ þ† ã 5ž ò¢ïÿ þâ@ Xàæ ó @ Xö à'6ž *'Øqôÿ þBh|²˜2/HexK² _|»|h »˜_˜w 7ž �ÚPÀÀÀ þ† £ 8ž �}Ú¹ÀÀÀ þ† É9ž «è«ÿÿÿ E rHþRTX <X <’Q¶<¾Q-<xê€ œ."†Xœœ¬)»G}Ôf3ÀofÉÏOTankaQî26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0crfpBehavioro-8,2…ˆpObjectEnergy�125» jÌQ¶< þºç kÌQ-<x þºlÌ€ œÿ" þn #ë?è+?ë#k?è_mÌb"ÿ þn h|²˜jgHexƒ² _|»|h »˜_˜©nÌXœœÿÿÿ ÑoÌ)»G}ÿÿÿ þÎ ý pÌf3ÀoÀÀÀ þ† ) qÌfÉÏÀÀÀ þ† › =žþ¨ªî]m Z   Ÿè ¶x -xx@Å Y„Þ("ÜFB‘~F«‘ç4Ïٟ٥Tank§î26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0¹È¼pBehaviorÅ6,-4ÛÞpObjectEnergyå125 6,îóF >ÀÀÀ" þ† = 7,îj F µ ÀÀÀ" þ† q8,“]' Z ÿ" þâ@ Xàt�@ Xö àµ9,¸¬Cö _ ÿ" þBh|²˜À½HexÙ² _|»|h »˜_˜ :, _ »ÀÀÀ" þ† 1 ;, è_ $ ÀÀÀ" þ† W<,�m ÿÿÿ" É FÌþÖØní   Ÿ ¶xB -xxnÅ Y²Þ(" FB‘~6F«‘çbÏÙŸÙÓTankÕî26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0çöêpBehavioró7,-3  pObjectEnergy125? ?Zn¦ÆñÀÀÀ" þ† k @ZnÆhÀÀÀ" þ† ŸAZ§ ÿ" þâ@ Xࢯ@ Xö àãBZæ,övÿÿ" þþ h|²˜îëHex² _|»|h »˜_˜3 CZ”2ßnÀÀÀ" þ† _ DZ”›ß×ÀÀÀ" þ† …EZÉíÉÿÿÿ" ÷ OúþŒó ð  ŸD ¶xp -xxœÅ YàÞ("8FB‘~dF«‘ç�ÏÙŸÙTankî26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0$pBehavior!7,-37:pObjectEnergyA125m HˆŒ‰äÔÀÀÀ" þ† ™ IˆŒäKÀÀÀ" þ† ÍJˆ1óÅðÿ" þâ@ XàÐÝ@ Xö àKˆJÙ”õÿÿ" þþ h|²˜Hex5² _|»|h »˜_˜a Lˆ²ýQÀÀÀ" þ† � Mˆ²~ýºÀÀÀ" þ† ³Nˆ;¬ ¬ÿÿÿ" % X( þ2 4"ÐFO C  Ÿr" ¶xž" -xxÊ"Å Y#Þ("†#FB‘~²#F«‘çÞ#ÏÙŸÙ/ Tank1"î26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0C"R"F"pBehaviorO"6,-4e"h"pObjectEnergyo"125›" Q¶ÐÜ( 'ÀÀÀ þ† Ç" R¶ÐS( žÀÀÀ þ† û"S¶uF Cÿ þâ@ Xàþ" #@ Xö à?#T¶B#J#Ž,Ø Hÿ þBh|²˜j#G#Hex]#`#pObjectEnergyg#125ƒ#² _|»|h »˜_˜¯# U¶ö hA ¤ÀÀÀ þ† Û# V¶ö ÑA ÀÀÀ þ† $W¶ÿO ÿÿÿÿ }$ b€$þŠ$Œ&X@<= X <Ê&Q¶<ö&Q-<x"'€ œf'"¾'Xœœä')»G} (f3Ào8(fÉχ$Tank‰&î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0›&ª&ž&pBehavior§&-8,2½&À&pObjectEnergyÇ&125ó& Z$QÖ<! þº' [$QM<˜ þºS'\$€@œ= ÿ" þn #ë?èV'c'?ë#k?è—']$š'!"=ÿ þn h|²˜¢'Ÿ'Hex»'² _|»|h »˜_˜á'^$X¼¼ÿÿÿ  (_$)ÛG�ÿÿÿ þÎ 5( `$fSÀ�ÀÀÀ þ† a( a$féÏ%ÀÀÀ þ† Ý( là(þê(ì*X` <] X <*+Q¶<V+Q-<x‚+€ œÆ+",XœœD,)»G}l,f3Ào˜,fÉÏç(Tanké*î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0û* +þ*pBehavior+-7,3+ +pObjectEnergy'+125S+ dd(Qö <A  þº+ ed(Qm <¸  þº³+fd(€` œ] ÿ" þn #ë?è¶+Ã+?ë#k?è÷+gd(ú+A "] ÿÿ þþ h|²˜,ÿ+Hex,² _|»|h »˜_˜A,hd(XÜ Ü ÿÿÿ i,id()û G½ ÿÿÿ þÎ •, jd(fs À¯ ÀÀÀ þ† Á, kd(f ÏE ÀÀÀ þ† =- v@-þJ-L/X€ <}X <Š/Q¶<¶/Q-<xâ/€ œ&0"~0Xœœ¤0)»G}Ì0f3Àoø0fÉÏG-TankI/î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0[/j/^/pBehaviorg/-6,4}/€/pObjectEnergy‡/125³/ nÄ,Q <a  þºß/ oÄ,Q�<Ø þº0pÄ,€€ œ}ÿ" þn #ë?è0#0?ë#k?èW0qÄ,Z0a "}ÿ þBh|²˜b0_0Hex{0² _|»|h »˜_˜¡0rÄ,Xü ü ÿÿÿ É0sÄ,) GÝÿÿÿ þÎ õ0 tÄ,f“ ÀÏ ÀÀÀ þ† !1 uÄ,f)ÏeÀÀÀ þ† �1 € 1þª1¬3X <�X <ê3Q¶<4Q-<xB4€ œ†4"Þ4Xœœ5)»G},5f3ÀoX5fÉϧ1Tank©3î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0»3Ê3¾3pBehaviorÇ3-6,4Ý3à3pObjectEnergyç31254 x$1Q6<�" þº?4 y$1Q­<ø" þºs4z$1€ œ�ÿ þn #ë?èv4ƒ4?ë#k?è·4{$1º4�"�ÿ" þBh|²˜Â4¿4HexÛ4² _|»|h »˜_˜5|$1Xÿÿÿ" )5}$1);Gýÿÿÿ þÎ U5 ~$1f³ÀïÀÀÀ þ† �5 $1fIÏ…ÀÀÀ þ† ß5 â5G ² ¾G ² ¾ð5G ² ¾6’I… ‚H6bÁ¿7ËéòÈh7¹mwí5tank help6 ¯„5G ² ¾€€€  þj ;;E6 „5’I… ‚ÀÀÀ  þ† k6 °„5‡n6bÁ¿ÿÿÿ ú6ª÷6@SW[‡Æ ÿ €�BUTTONUPä�·�´"tank help"à‚Åààû‰ BUTTONUP'(<BUTTONUP:«tank helpÜ ªÿ6OKr57 ±„5ËéòÈÿÿÿÚ87Ð"=7@7e7 The Game of TankWarr¥7 „5¹mw¹mw¨7¹xwÐ7¹mwÍ7´h7¹xwÿÿÀ  þæ 8 ³h7¹mwÿÿÿ$:8HHHh&"" 8>8>ò This is a game of cellular automata. The cells or units in this game are tanks on a battlefield, firing at each other. There are two sides. Red and Blue. There are two phases to the game, Setup and Combat. During the Setup phase each player positions his units and defines their behavior. When the battle starts the tanks advance, firing on the enemy. The battle continues until one side has no tanks left. The purpose of this game is to let you try out various survival strategies and combat formations for your tank force. The Units. Each unit is a tank. At the beginning each tank has 125 units of energy. This energy is diminished each time the tank is hit. A unit also has a behavior characteristic (property, for those who have already OD'ed on ToolBook) that governs how it moves. A move consists of the following: the tank moves forward, fires at the closest enemy tank, and then moves back. The net motion on each turn is always forward, but the ratio between the two types of motion is governed by the behavior, and can be Aggressive (moves forward a lot more than back), Moderate (forward some, then back some) or Conservative (moves forward some, then back almost as much. If a unit gets to the end of the field it reverses its motion. Shots. Each shot starts out with 75 units of energy, but the further a shot travels the less energy it has. When its energy reaches zero it explodes harmlessly. A hit diminishes the target's energy by the amount of energy it has left. left. M>':ü:ó:ó:�> Ð�>Ö Š žª D’K¤>ª D’K?¶ « ß¡>Large explosionÕ>ÎP>Ö Š žÿ  þn ¹ D¡KØ>?â¹ ;¼YŒ ƒQ +Ç ¡ J ÃK— | .¶ ô ¹ É È Å DE?ÏP>Ð Ê„Úÿÿ  þþ ¶ « ßH?�?[ ¦O ¶ õ ¦ ¶ { Ó{ ¥Z¨ áÕ ´N ß™ ðô g› ´| ð« " K Í? ÌÐ?9 J‚ 9ª D’Kä?ª D’KT@¶ « ßá?Small explosion@Ê�?9 J‚ 9ÿ  þn ¹ D¡K@Q@â¹ ;¼YŒ ƒQ +Ç ¡ J ÃK— | .¶ ô ¹ É È Å D…@Ë�? Þ êÿÿ  þþ ¶ « ߈@Í@[ ¦O ¶ õ ¦ ¶ { Ó{ ¥Z¨ áÕ ´N ß™ ðô g› ´| ð« " K õ@ ø@ß Df Úÿ þn bullet125:A"@lArA Aú?261Aô@’@6,-41Aš@8@;A’@"@44EA125lA|@ô@rYA(A8@80mA¤@Î@6,-4mAÖ@š@vAA26�A125–AJ@Î@r—AÜ?È?-8,2¡A125ð?ú?rð?–A-7,3¶ ô ¹ É È Å DùAËAÕ!Ðæ"Üÿÿ 6 þN ¶ « ßüAAB[ ¦O ¶ õ ¦ ¶ { Ó{ ¥Z¨ áÕ ´N ß™ ðô g› ´| ð« " K tX<"t$<\85]B1254B @r,4jA0A-7,3Þ@,B-8,2OriginalUnitfTargetCoords ›N2Q$J›� x÷Eïì«ÎÖøõÐõÊšÜĩ۾«·F]©¼ tñ.V³HIT~~?:«bulletÜ ª3·Â1ÐpObjectEnergyª#ê°ª·ª°¬½ªT3·Â1ÂÏlObjectCenterªú¢BANG°ª«Large explosionªÐINSERTKILL·Â1ª:·Â1ªU[·ÂÏlObjectCenterªê·ªú¢BANG·ª«Small explosionª[°ª·Â1êÐpObjectEnergyªvObjsvBulletEnergysvCurrentListPositionfHitEnergyfTarget“:&áÆ¿öï�öí·ñ0N3TU¸BEGINMOVEUNIT~~·¼ª'[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒP“:HÈr?î3~Ì^€*CONTINUEMOVEUNIT~~·¼ª'G·ª¬·Ê¬·ʽ«,½¬·Ê¬·ʽ½ª[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒ{“:sÈrjî^JZXpCÚENDMOVEUNIT~·¼ª' óCONTINUEMOVEUNIT·ª·ª³áSETUNITPROPERTY·ªsvSettingUpfTargetlocúƒl“:dîX¤@@š#ØSETUNITPROPERTY~~~??·¼ª'c«Make this unit Aggressive, Moderate, Conservativeª«Agressª«Modª«Consª°«Agress½ª[¬ªê·ª%°«Mod½ª[¬ªê·ª [¬ªê·ª[··¬½·Ϊê·ª·²ÐpRedUnits½ ª[¬¼ªê·ª [¬ªê·ª¬ª ¬ª óÿ÷ÿ[··Ê·½ª·ê·ʪÙÿÝÿèÿ[·ª·êÐpBehaviorªi:toivMoveDirectionvStartPointvMovessvMoveDirectionsvUnitMovessvSettingUpfTarget “:‘î…Ûyá¸iÔ&b¸V8…G+Eæœ@䞬Ä!"BANGF·Ü ª·ª3·Ü ÂÏlObjectCenterªG·Ü ª¬·Ü Âʬ°Ê½«,½¬·Ü Âʬ°Ê½½ªw·Ü ª¬ªL¬ª·«large explosionÜ ½ª ¬ªL¬ª:·Ü ª:«bulletÜ ªfExplosionObjectfPointª½ÈÙ¬‚hšØ)#¦INSERTKILL~~~~qê·ªñªqê·ªñª¬ª ·¬½ª ïÿóÿS···ʽªq·ê·ʪ«deadª··Ê«dead½ ª··½ª qê·ªñª qê·ªñªžÿ¢ÿ±ÿi:toisvUnitListsvUnitsPerSidesvLiveRedsvLiveBluefObjectß,ÐQÑŘ¢»T›¬Eï¡+Ÿæœšê8€šÕ%�lObjectCenter????[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ªe··½¬½·½«,½··½¬½·½½ªx1y1x2y2vObjectBoundsºOŒõB‰B†’Bƒ¡A€"hµx'ÞnearestTarget~????[­üƒ×—Aªê·ª[·ªê·ª¬ª ·ª ôÿøÿ\M귪귪·«dead½ª:3··ÂÏnumDistanceToTargetª°·½ª[°ªê·ª[·ªê·ªšÿžÿ¨ÿe··Êªi:toivDistanceToTargetvThisTargetvOurTargetListvOurTargetsvUnitsPerSidefTargetListfMyBounds Y¥mûT›ô±àé‹¡ÚÝÎ… ¼+ºæœµŠ&"™Ê\*¸numDistanceToTarget????[·ÏlObjectCenterªê·ª[·ÏlObjectCenterªê·ª[¬·ʬ·ʽªê·ª[¬·ʬ·ʽªê·ªe··½··½½¾ªvCenter1vCenter2xDiffyDifffBounds2fBounds1 GÀƒG·šÜ±©Û«»L¢XL™™±!LBattlefield Survival Strategiesà#à €°� Ð€@ÀÀzu€cðfxâ þ€ðÿÿÀuÀÀ°¶?±?ЀUðþXÀ<cnj°fûŒ?¬ÞÇÊ >Ë?ÌL>Î`=ÏÐ=Ð =¯¬4°5±¾5³Œ6´d6ß²Ø4 $6 @43$ 4P 5| 6À 78D9p:† j>kjl–mÚn2oXp€q¬r–6v7¢8Î9:j;–<Â=Ø?†@²AÞB"CzD¦EÒFèH–IÂJîK2LŠM¶NâOøQ¦!RÒ!Sþ!TB"Uº"Væ"W#XZà%[ &\8&]|&^Ô&_ú&`"'aN'b8#d"*eN*fz*g¾*h+i<+jd+k�+lz'nd.o�.p¼.q/rX/s~/t¦/uÒ/v¼+x¦2yÒ2zþ2{B3|š3}À3~è34€þ/DÎEðFB–––– ˜°9B† –Øèø8#z'¼+þ/@4 =L>Œ?LA?€� F Û·B"Û·B²Û·BÞW&b÷R&]÷Îa&l ÷ð\ &g÷¯ControlPanelÛ ßBÛ·BÀÀÀ"Š þJÍÍ ¬BíW&b÷ÿÿ"ö´tó^q�“íÆ €�BUTTONUPä’4svSettingUpääŠ�Ÿ€±yäƒboolAllObjectsSetup()èŠÈ) €°”è�·‘‹ˆ±êè‡PLAYGAMEä°…è‘Î"À/ ‘}have ‘xbeen Šup"ä‚£à‚Åmààà€�­ÏUpà--ðSee ƒ�‘}Â*Â%assigned behaviorä’4svUnitListää…i †1 €² (Ç)èƒ�Ìi ˆÇ ‹"dead"ì�d¥è‚£èƒpBehavior ˆ�Ìi ˆÇ@ ‹±yì�·�Ìi ˆÇNì�31ì‘‘1 ±äì‘ñ�Ìi ˆÇcì�·�Ìi ˆÇmì�31ì‘‘1 ±äì‘ñ�Ìi ˆÇ‚ì‘Ò°”肣䂥ä‘Ò²Pà‚ßû‰ BUTTONUP¦a ’boolAllObjectsSetup�~ŠBUTTONUP~qêµDª«ªÏboolAllObjectsSetupª qê·ªñª:µAÂ1ªö`PLAYGAME&b«All objects have not been set upªsvSettingUpî~�z"¥¸ƒboolAllObjectsSetup~¬ª ·¾ ª òÿöÿj··Ê«dead½ªO··ÊÐpBehavior«½ª6:··Êª¬ªL¬ªw··Êª:··Êª¬ªL¬ªw··ÊªeñªŠÿŽÿšÿeñªi:toisvUnitListEï¬+ªæœ¥ÿCombatr% ÇB—(R&]÷ÿÿÿ€€Ä´tÁH[_c—Æ;OZ5€�BUTTONUPä‘ñ�´"tank Help"äŠ�Ÿ€±yà‚Åàààû‰ BUTTONUP</0SBUTTONUPw«tank HelpÜ ªqêµDª«ªËHelpSñ DBíôa&l ÷ÿæ´tãj}�…íÆ;**Z6€�BUTTONUPä’4svSettingUpääŠÈ €²P䊓o€4ä‡INITGAME䊓o€defaultäŠ�Ÿ€±y;à‚ÅBààû‰ BUTTONUPŠH\¼BUTTONUP~qê·ªñªqêµ ª¬ªj^INITGAMEqêµ ª·ªqêµDª«ªdefaultsvSettingUpîPç3HíReset EBa \ &g÷ÿÿ€ÿ| ´ty  ³·»aÆ4!Z$€�BUTTONUPä’4svSettingUpää‘Î"This will reset the ‘}€Áway they were �)Ábeginning ˆÁ#‘Jcombat.ðIt doesn't work yet."äŠ�Ÿ€±yà‚Åxààû‰ BUTTONUP<‘žÐBUTTONUP~b«This will reset the objects to the way they were at the beginning of the last combat. It doesn't work yet.ªqêµDª«ªsvSettingUp Redoõ :ø þ   Ÿ  Ÿ$ ¶xP -xx| Å YÀ Þ("FB‘~DF«‘çpÏÙŸÙÿ TankT î26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0  pObjectEnergy! 125M 3† ¶xÀÀÀ"Š þJy 4† -xxÀÀÀ"Š þJ­ 5† Å Yÿ"Š þ @ Xà° ½ @ Xö àñ 6† ô Þ("ÀÀÀ"Š þJh|²˜ü ù Hex² _|»|h »˜_˜A 7† FB‘~ÀÀÀ"Š þJm 8† F«‘çÀÀÀ"Š þJ“9† ÏÙŸÙÿÿÿ"Š  rþX <X <>Q¶<jQ-<x–€ œÚ"2XœœX)»G}€f3Ào¬fÉÏTankaî26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ014pObjectEnergy;125g j–Q¶<"Š þ¢ “ k–Q-<x"Š þ¢ Çl–€ œÿ"Š þ’ #ë?èÊ×?ë#k?è m–"ÀÀÀ"Š þJh|²˜Hex/² _|»|h »˜_˜Un–Xœœÿÿÿ"Š }o–)»G}ÿÿÿ"Š þz © p–f3ÀoÀÀÀ"Š þJÕ q–fÉÏÀÀÀ"Š þJG =JþTV @Ÿ=   Ÿv ¶x¢ -xxÎÅ YÞ("jFB‘~–F«‘çÂÏÙŸÙQTankSî26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0ilpObjectEnergys125Ÿ 6Ø Öx!ÀÀÀ"Š þJË 7Ø Mx˜ÀÀÀ"Š þJÿ8ØÅ@Y= ÿ"Š þ @ Xà@ Xö àC9ØFÞ&(BÀÀÀ"Š þJh|²˜NKHexg² _|»|h »˜_˜“ :ØFb‘žÀÀÀ"Š þJ¿ ;ØFË‘ÀÀÀ"Š þJå<ØÏùŸùÿÿÿ"Š W FZþdf ` Ÿ]   Ÿ† ¶x² -xxÞÅ Y"Þ("zFB‘~¦F«‘çÒÏÙŸÙaTankcî26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0y|pObjectEnergyƒ125¯ ?è ö xA ÀÀÀ"Š þJÛ @è m x¸ ÀÀÀ"Š þJAèÅ` Y] ÿ"Š þ @ Xà@ Xö àSBèVÞF (b ÀÀÀ"Š þJh|²˜^[Hexw² _|»|h »˜_˜£ CèF‚ ‘¾ ÀÀÀ"Š þJÏ DèFë ‘' ÀÀÀ"Š þJõEèÏ Ÿ ÿÿÿ"Š g Ojþtv € Ÿ}  Ÿ– ¶x -xxîÅ Y2Þ("ŠFB‘~¶F«‘çâÏÙŸÙqTanksî26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0‰ŒpObjectEnergy“125¿ Hø  xa ÀÀÀ"Š þJë Iø �xØÀÀÀ"Š þJJøÅ€ Y}ÿ"Š þ @ Xà"/@ Xö àcKøfÞf (‚ÀÀÀ"Š þJh|²˜nkHex‡² _|»|h »˜_˜³ LøF¢ ‘Þ ÀÀÀ"Š þJß MøF ‘GÀÀÀ"Š þJNøÏ9 Ÿ9 ÿÿÿ"Š w Xzþ„†!  Ÿ�  Ÿ¦! ¶xÒ! -xxþ!Å YB"Þ("º"FB‘~æ"F«‘ç#ÏÙŸÙ�Tankƒ!î26:þÆ  ?à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0™!œ!pObjectEnergy£!125Ï! Q 6x�ÀÀÀ"Š þJû! R ­xøÀÀÀ"Š þJ/"SÅ Y�ÿ"Š þ @ Xà2"?"@ Xö às"Tv"~"Þ†(¢ÀÀÀ"Š þJh|²˜ž"{"Hex‘"”"pObjectEnergy›"125·"² _|»|h »˜_˜ã" UF‘þÀÀÀ"Š þJ# VF+‘gÀÀÀ"Š þJ5#WÏYŸYÿÿÿ"Š ±# b´#þ¾#À%X@<= X <à%Q¶< &Q-<x8&€ œ|&"Ô&Xœœú&)»G}"'f3ÀoN'fÉÏ»#Tank½%î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0Ó%Ö%pObjectEnergyÝ%125 & Z8#QÖ<!"Š þ¢ 5& [8#QM<˜"Š þ¢ i&\8#€@œ= ÿ"Š þ’ #ë?èl&y&?ë#k?è­&]8#°&!"=ÀÀÀ"Š þJh|²˜¸&µ&HexÑ&² _|»|h »˜_˜÷&^8#X¼¼ÿÿÿ"Š '_8#)ÛG�ÿÿÿ"Š þz K' `8#fSÀ�ÀÀÀ"Š þJw' a8#féÏ%ÀÀÀ"Š þJó' lö'þ(*X` <] X <"*Q¶<N*Q-<xz*€ œ¾*"+Xœœ<+)»G}d+f3Ào�+fÉÏý'Tankÿ)î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0**pObjectEnergy*125K* dz'Qö <A "Š þ¢ w* ez'Qm <¸ "Š þ¢ «*fz'€` œ] ÿ"Š þ’ #ë?è®*»*?ë#k?èï*gz'ò*A "] ÀÀÀ"Š þJh|²˜ú*÷*Hex+² _|»|h »˜_˜9+hz'XÜ Ü ÿÿÿ"Š a+iz')û G½ ÿÿÿ"Š þz �+ jz'fs À¯ ÀÀÀ"Š þJ¹+ kz'f ÏE ÀÀÀ"Š þJ5, v8,þB,D.X€ <}X <d.Q¶<�.Q-<x¼.€ œ/"X/Xœœ~/)»G}¦/f3ÀoÒ/fÉÏ?,TankA.î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0W.Z.pObjectEnergya.125�. n¼+Q <a "Š þ¢ ¹. o¼+Q�<Ø"Š þ¢ í.p¼+€€ œ}ÿ"Š þ’ #ë?èð.ý.?ë#k?è1/q¼+4/a "}ÀÀÀ"Š þJh|²˜äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0™2œ2pObjectEnergy£2125Ï2 xþ/Q6<�"Š þ¢ û2 yþ/Q­<ø"Š þ¢ /3zþ/€ œ�ÿ"Š þ’ #ë?è23?3?ë#k?ès3{þ/v3�"�ÀÀÀ"Š þJh|²˜~3{3Hex—3² _|»|h »˜_˜½3|þ/Xÿÿÿ"Š å3}þ/);Gýÿÿÿ"Š þz 4 ~þ/f³ÀïÀÀÀ"Š þJ=4 þ/fIÏ…ÀÀÀ"Š þJ›4 ž4G ² ¾G ² ¾¬4G ² ¾Ø4’I… ‚5bÁ¿¾5ËéòÈ$6¹mw©4tank helpÕ4 ¯@4G ² ¾€€€ Š þÆ;;5 @4’I… ‚ÀÀÀ Š þJ'5 °@4‡*5bÁ¿ÿÿÿ ¶5ª³5@SW[‡Æ ÿ €�BUTTONUPä�·�´"tank help"à‚Åààû‰ BUTTONUP'(<BUTTONUP:«tank helpÜ ª»5OKrñ5 ±@4ËéòÈÿÿÿÚô5Ð$ù5ü5!6 The Game of TankWarra6 @4¹mw¹mwd6¹xwŒ6¹mw‰6´$6¹xwÿÿÀ Š þö ¿6 ³$6¹mwÿÿÿ$:Â6HHHh>$"Ç6Ò<Ê6Ï<ò This is a game of cellular automata. The cells or units in this game are tanks on a battlefield, firing at each other. There are two sides. Red and Blue. There are two phases to the game, Setup and Combat. During the Setup phase each player positions his units and defines their behavior. When the battle starts the tanks advance, firing on the enemy. The battle continues until one side has no tanks left. The purpose of this game is to let you try out various survival strategies and combat formations for your tank force. The Units. Each unit is a tank. At the beginning each tank has 125 units of energy. This energy is diminished each time the tank is hit. A unit also has a behavior characteristic (property, for those who have already OD'ed on ToolBook) that governs how it moves. A move consists of the following: the tank moves forward, fires at the closest enemy tank, and then moves back. The net motion on each turn is always forward, but the ratio between the two types of motion is governed by the behavior, and can be Aggressive (moves forward a lot more than back), Moderate (forward some, then back some) or Conservative (moves forward some, then back almost as much. If a unit gets to the end of the field it reverses its motion. Shots. Each shot starts out with 75 units of energy, but the further a shot travels the less energy it has. When its energy reaches zero it explodes harmlessly. A hit diminishes the target's energy by the amount of energy it has left. left. =':ü:ó:ó:I= ÐL= ] Ô⪠D’K`=ª D’KÐ=¶ « ß]=Large explosion‘=Î = ] Ôâÿ Š þ’ ¹ D¡K”=Í=â¹ ;¼YŒ ƒQ +Ç ¡ J ÃK— | .¶ ô ¹ É È Å D>Ï =�º­ÿÿ Š þ¶ « ß>I>[ ¦O ¶ õ ¦ ¶ { Ó{ ¥Z¨ áÕ ´N ß™ ðô g› ´| ð« " K ‰> ÌŒ>o¸ ª D’K >ª D’K?¶ « ß�>Small explosionÑ>ÊL>o¸ ÿ Š þ’ ¹ D¡KÔ> ?â¹ ;¼YŒ ƒQ +Ç ¡ J ÃK— | .¶ ô ¹ É È Å DA?ËL>7±H½ÿÿ Š þ¶ « ßD?‰?[ ¦O ¶ õ ¦ ¶ { Ó{ ¥Z¨ áÕ ´N ß™ ðô g› ´| ð« " K ±? ´?YkàÿŠ þ’ bulletÿÿN ë?å”;);Gýÿÿÿ"N þ @ æ”;f³ÀïÀÀÀ"N þâG@ ç”;fIÏ…ÀÀÀ"N þâ125 €c#€UðâXÀüc fßú&R¾~Ô  lâ0\:fˆñ ôùˆÿ€{ ûëßè"ûëßè~ô�ßÌÔôøßC#ë?èl”Ô¢ðâûg¼ğêH0 þc:\ ”rЧ ªô�ßÌÿ"þ½ÀpObjectEnergyÑ4710.5,5187.5ý ôøßCÿ"þ1 4#ë?èÿ"þ#ë?è\GJpObjectEnergyY 4870,5382.5i?ë#k?è�  ”Ô¢ð"þh|²˜Æ³¶pObjectEnergyà 4160,5375ß² _|»|h »˜_˜ûg¼gÿÿÿ"-̆êHÿÿÿ"þY  þc:ÀÀÀ"þ…  ”rÐÀÀÀ"þ÷ _Þ×úV÷ú×�/Û&×/RR|ú÷¾©Ûó÷ýHX:ý…HÁf†³V³# ˆ_®·ùÀÀÀ"þO ˆ_%·pÀÀÀ"þƒˆ†˜ÿ"þ@ Xà®™œpObjectEnergy« 4295,5367.5»@ Xö àïˆ1ù{ÿÿ"þh|²˜ò ² _|»|h »˜_˜7 ˆ…:ÐvÀÀÀ"þc ˆ…£ÐßÀÀÀ"þˆÑÞÑÿÿÿ"�´S€UðˆXÀªc�f…þn°  ò— �š§° ò­€í ðÒÁ(qª D’Kþª D’Kn¶ « ßûExplosion/°ÒÁ(qÿ"þ¹ D¡K2kâ¹ ;¼YŒ ƒQ +Ç ¡ J ÃK— | .¶ ô ¹ É È Å DŸ°N(T°ÿÿ"þ¶ « ߢç[ ¦O ¶ õ ¦ ¶ { Ó{ ¥Z¨ áÕ ´N ß™ ðô g› ´| ð« " K ïV e¯ŸÀÀÀ"þS àf!bÿÿÿ*#êHHHh``NImprovements/modifications, etc. 1. Visual redesign - give the tanks eyes & a beak. Think about each tank having a little bar that shows how much energy it has left. Also it would have some way of letting you tell what its behavior is (a color patch somewhere would do nicely 2. Think about having the tanks move towards their targets, fire, & fall back. They would no linger be restricted to straight horizontal movement. 3. How can we make this look a little more interesting? Possibly we could have terrain, the tanks cannot shoot or see anything with a "Wall" in between. ’£¶�ž‚ü@°J]|>=À6Z&Ð"N æàÜ­ª�&%ðH¨€È©@«@B Æ]J@†Kz´þÿ:cÆœþÿB . ¢bJ%H ÿÿB D%@ü_U\H¬. ¢˜"P!b8aRð¨� Lát€ELÌ(ätH4ºÀ! 2%&( à1@з ýÀÀÀÿÿ€ÿÿÿÿÿÿÿÿ@@ @@@@@@@@ÁÁÁ!!!ÿ@@ÿ¿@ÿÿ@@ÿ@@ÿÿ@@ÿÿ@ð` `@ `` `(`p( `` `øøøAAAÿ€€ÿÁ€ÿÿ€€ÿ€€ÿÿ€€ÿÿ€ÿ€€@€€€€€€€€ÿÿÿ€€€ÿÀÀÿß¿ÿÿÀÀÿÀÀÿÿÀÀÿÿÀÿ¿¿@¿¿ÀÀÀÀÀÀ1Helv"\=Xm ›`B|B|ý –"ÿ"¡¦fs Rmn|fXe ia||õ –Fòþa w®fLÿ" §àt<(lvF,!Xe ia||õ –F[ÿ"a×System=ÿHelv"¼&Xe ™`B|B|õ –"˜þ" 60t$lv>\nXe _a||õ –>[ÿ"`gHelvN"Xe ›`B|B|õ –N=ÿ" &#0lvF,!Xe ia||õ –F[ÿ"a'#ò'ªtlvF,!Xe ia||õ –F[ÿ"a'#–ªtlvF,!Xe ia||õ –F[ÿ"a'#ƪtlvF,!Xe ia||õ –F[ÿ"a'#öªtlvF,!Xe ia||õ –F[ÿ"a'#&ªts Rmn|fXe ia||õ –Fòþa '#Út&ÉUä‰75 ŒÈ³ä‰È·/10 ŒÎ°äŠÈø €²Pàà--ðSet up the ÐS ˆtargetsä�[Çóä‰pBlueUnits ˆŽ�8ŒÖ 䑼pRedUnits ˆŽ�8‘Ö ä…i †1 €ÚH * 2è�­�Ìi ˆÖ:è�[pBehavior ˆ°Êè‰Éê ŒpObjectEnergy ˆ°Êä‚¥ä�·�„"bullet"䊓�€°”à‚Ôààà€�PLAYGAMEà--ðThis ‹Á±main loop ˆÁ¾Ð¤. It iterates through a Ð- ˆunitsà--ð�¤each side, ’]Áøtwo ÒP�¤�;fire & ’>±é.à--ðÐzÁÒlÐsactually one ’fhalf �¤ÆHää’4ßLÔUserHalt, ÚOä‘ZÒTää‘ñ�„"ÄÒä’c²Pè…i †1 €Únì�­�Ìi ˆÖ\ìƒ�Ê‹‘x"dead"úï ‡MOVEANDFIRE ²P, °Êì‚£ì�­�Ìi + Ú« ˆÖ“ ìƒ�Ê‹‘x"Â5ï ‡É1�”€°Ê삣肥à--ðCheck �¤‚ˆÓ�è°bè„svUserHaltì�>€²4è„‘xÇì�d²cè°…ì�>²cè‚°b䂲càà--ðIf we're here ÁóÐ1 has won, figure out which †ÐCÐc Йà--ð�Hfinding Ð[1st non-Áß Ð=& checking Ðw±£.ä…i †1 €Ú… * 2èƒ�Ìi ˆÖv ‹‘x"Ñì�>¥è‚£ä‚¥äƒi > Ú®è‰"Ъ 2" ŒvWinnerä°…è‰"п 1" ŒÄä‚£ä‘Î"Ð<winner was " & Ä-àà‚ÔOààà€�ØlfWhichSide, fThisUnitä’4ÞØøBulletCoordsàà--ðІ �HÐ1built-�ÂÒSä‘nÆ7 �H�Ì1 ˆÖïˆÆE * 30,0àà--ð�­Ð`nearest ²>'s coordinatesä‰�=ˆÆu ŒvUnitBoundsäƒÇ’è�­nearestTarget(È, �ÎÚª+1 €Ú±*2 ˆÖ›)ä°…è�­Ë)È=, �Î1 €ÚÍ ˆÖµ)ä‚£ä‰lObjectCenter(fUnitBounds) ŒsvBulletCoordsä‘n�„"Ó� €Ëä‡Ñ€Ë9°Ê)ä‘nfTarget �H�Ì2 ˆÖшÄ,0à‚׫ààà€�ѬfTargetCoordsà--ðÑÒÍ moves & ’Fchecks €seeà--ðƒ�ÊÐOmade a hit.ðTo À ƒ�ÊÐgÇ, �Ê‹always "underneath"à--ð�вother ±}. If ‘x‘y’Fthere ‹a ÀM so ‡Àà--ð‘{a À^ message.ðÐPenergy goes down �HÐÒ}'s İ)à--ðÐ’IˆÐÁšàä’4ÚßîØ, ×ä’4ßëntä‘ZvBulletEnergy, vSlope, xDiff, yDiff, xMove, yMoveää‰×H ŒÊ6 àà--ðFigure ÐMhow much €‘nДÒ  �H(x/y). ÐÒ dies „°Êà--ðÐ�no more ÄαS.òä‰�Ì1 ˆÙŒ - �Ì1 ˆÚ㠌ˆä‰�Ì2 ˆÙ¥ - �Ì2 ˆÚü ŒÂšä‰°(¨/¤) ŒÃ¸ä‰(ý + 1)/100 ŒÂ´ä‰ßÓnt - ÂÀ ŒÂ½ää’c²Pè‘n�„"Ó­ �HÉØè�Å�Ì1 ˆÚP �HÂèè�Å�Ì2 ˆÚ` �HÂñè�­objectFromPoint(Ú{)èƒ�Ê‹±yì�uÙC �HÝOìƒÙN <= 0 ï ‡SMALLEXPLOSION ï �>²cì°…ï �d²c삣谅ì‡HIT Ù„ €°Ê肣䂲cäà‚Ð>ààà€�ÁÓ½,fHitEnergyà--ðÓ  sent €Ž‘{„a hit (Òy over �±{) happensä’4svBulletEnergy, svCurrentListPositionää�­pObjecttEnergy ˆÓ6ä�u�Ê�HË@äƒ�Ê<= 0à--ðÑ¿Ð� ‹Ðñ, blow �Êupè�­Ú«�=ˆÓm)è‘æÓt臰[è‡BANG "Big explosion",ð°Êè‡INSERTKILL Ӣ䰅è‰�ÊŒÚ\ˆÓ±ä‚£à‚HITààà--ðÑ3‹used only �ÂÐñsetup phase €‘nÐrobots aroundà€�BEGINMOVEUNIT loc, Ó ä’4Û< OldLocà䃑x×J è�>Ê+ä‚£ä‰À$ ŒsvOldLocà‚Ê@ààà€�CONTINUEMOVEUNIT ÂJÓTä’4Û† ÃGà䃑x×� è�>Í'ä‚£ä‘nÔs�H�Ì1 ˆÀu - �Ì1 ˆÅT, \è�Ì2 ˆÀŠ - �Ì2 ˆÅiä‰À˜ ŒÅqðà‚Íeààà€�ENDMOVEUNIT Á´Ó¾ä’4×ð ä䃑x×ø è�>È ä‚£ä‡Î–ÂÔÓÞä‡SETUNITPROPERTY Óóà‚ÈEààà€�ÍÓä’4svMoveDirection, ×Ö , ×I ä‘ZvStartPoint, vMovesä䃑x×g è�>Ì[ä‚£äà--ðÓq Ò1Ð} ˆÐu board we ÐÔ coming †& а•àä‘Î"Make ŽÐ» Aggressive, Moderate, Conservative" \è’f"Agress" ‘‚"À%" ‘‚"Á""ä°bä„�Ê‹"Äè‰1 ŒÈ«ä„�Ê‹"ÀG"è‰3 ŒÈ»ä°…è‰5 ŒÈÅä‚°bàä‰�ÎÈÐ €ÈÔ + 1 ˆ×À ŒÃÔà--ðgot Ð0 magnitude, adjust ÐE signäƒÔ/‹�ÂÖ' ˆŽ°8è‰-1 ŒÚ:ä°…è‰1 ŒÚEä‚£ä…i †1 €2è‰�Ìi ˆÒ3 * Úa Œ�Ìi ˆÒCä‚¥ä‰ÒK ŒÖB ˆÓ„à‚Û¦ààà€�ÑfPoint, fExplosionObjectä‘nÍ €Ãä‘ñÍä�31ä‘‘1 ±ää�·Í)à‚ÐOààà€�×=fObjectä’4Öã à‚ÖOààà€�­Ù3 vObjectBoundsà--ðinput:ôÐy containing �=ˆ�±{à--ðoutput:óЛ contining coords ˆ�Oˆ°=àä‘Zx1,y1,x2,y2ää‰�Ì1 ˆÊi Œx1ä‰�Ì2 ˆÊv Œy1ä‰�Ì3 ˆÊƒ Œx2ä‰�Ì4 ˆÊ� Œy2ä‘Ò((x2 - x1)/2) +ðx1,((y2 - y1)/2)àà‚Ùöààà€�­ÙD fMyBounds,fTargetListä’4 Ú÷ ä‘ZvDistanceToTarget, vThisTarget, vOurTargetListää‰ÿ9 ŒÎ3ä‰ÈL ŒËä…i †1 €ÚE è‘¢Ë+ ŒÈ<à--ðÓ×Ð Ð[ distance, ‰�ÊŒa н , �­Ðu minimumè�­numDistanceToTarget(ǵ�=ˆÈˆ)èƒ�Ê< Τì‰�ʌΫì‰i ŒÇ’肣䂥ä‘Ò�ÌÇŸ ˆÈØà‚Ù1 ààà€�­ÏKt fBounds1, fBounds2ä‘ZvCenter1,vCenter2, بàà--ðÓ†ÐÏ Ð Å¬ between ‘{°=' centers.ä‰ÛM ÄS) ŒÅDä‰ÛY ÄU) ŒÅGä‰�Ì1 ˆÅY - �Ì1 ˆÅZ ŒÑÿä‰�Ì2 ˆÅq - �Ì2 ˆÅr ŒÑä‘Ò²(Ñ  * Ñ& + Ñ% * Ñ+)àà‚ß ààà HRb$j^·*ö`p.á‰^.ɘTú¢²b R®O\ÐÀ´ ³á¢  .æ–Ú óyŒRÿŠ ËMEFIREENTERBOOKHITBEGINMOVEUNITPLAYGAMECONTINUEMOVEUNITENDMOVEUNITMOVEANDFIRESETUNITPROPERTYBANGINITGAMEINSERTKILL^>ð £P&ž Gf4Ê HrlObjectCenternearestTargetnumDistanceToTarget &&�7ENTERBOOKj^INITGAME ²:оåINITGAME~~~~~~~~?? qêµ(ªñªqñOꪬ¼«,½¬¼½«,½¬…½«,½¬å½ª[«8,-2,7,-3,6,-4ªê·ª[¬ªê·ª[¬ôªê·ª[¬Kªê·ª[·¬ ½ªê·ªqê·ªñª_ê·ª[²ÐpBlueUnitsªê·ªW²ÐpRedUnitsªê·ª ¬ª ·¬½ª ïÿóÿ83· ·ʪ_°êÐpBehaviorª[·ª°êÐpObjectEnergyª¹ÿ½ÿÌÿ:«bulletÜ ªqêµ(ªñªi:toivCurrentObjectvStartEnergysvBulletDecrementsvBulletMoveIncrementsvUnitMovessvSettingUpsvUnitsPerSidesvMoveUnitssvUnitListsvHitEnergy JÃEï¸Û¬T›�î‘Û…«Îox]?P–‡A+?æœ:¾R6„©‹PLAYGAME~~~~?w«bulletÜ ªñª�¬ª ·ª ôÿøÿ`3··ʪ°«dead½ ª.æMOVEANDFIREñª°ª3··½·ʪ°«dead½ ªo.æMOVEANDFIREñªê°ª–ÿšÿ¤ÿ·ª(·¼ªwÿnÿ¬ª ·¬½ª ïÿóÿ··Ê«dead½ ª ÔÿØÿçÿ··½ª[«Side 2ªê·ª[«Side 1ªê·ªb«The winner was ·½ªvWinneri:toi:to1ivUnitssvSettingUpsvUnitListsvUserHaltsvUnitsPerSide T›tíÞiEï^îRk.K+IG¦Cæœ>ëQ6È^: ÇMOVEANDFIRE~~~G·ª¬·ÐpBehaviorʬ½«,½¬½ª[·Âªê·ª·ª*3··¬½·¬½·ÎÏnearestTargetª3·¬··ÎÏnearestTargetª[·ÏlObjectCenterªê·ªF«bulletÜ ª·ªR®FIRE°ÏlObjectCenterªG·ª¬·ÐpBehaviorÊ«,½¬½ªfTargetfUnitBoundsvUnitBoundssvUnitsPerSidesvUnitListsvBulletCoordsfThisUnitfWhichSider³SŒªI›�:Eï/T› Ý“:ØÐž ÝFIRE~~~~~???? ? ? [·ªê· ª[¬·Ê¬·ʽªê· ª[¬·Ê¬·ʽªê·ª[· ·½¾ªê· ª[· ¬½¬d½ªê·ª[··½ªê·ªñª„G«bulletÜ ª·«,½·½ª=¬ê·ʪ·ª=¬ê·ʪ·ª3·¾ª°«½ª4#ê· ª·ª· ¬½ªÜŽSMALLEXPLOSIONŽÿoá‰HIT· ªê°ªzÿvBulletEnergyvSlopexDiffyDiffxMoveyMovesvBulletMoveIncrementsvUnitListsvBulletDecrementsvBulletCoordssvHitEnergyfTargetCoords ›N�Jƒ›�txbEïW«ÎAøõ;õ5šÜ/©Û)— "F]¨ öªâêHIT~~3·ÐpObjecttEnergyª#ê°ª·ª°¬½ªW3·ÂÏlObjectCenterªj·ª7Óclearú¢BANG«Big explosionª°ªÐINSERTKILL·ª[°ª·êÐpObjectEnergyªsvBulletEnergysvCurrentListPositionfHitEnergyfTarget“:ÚáÆÏ¿ö¹ï�ªž N3TB¸BEGINMOVEUNIT~~·¼ª'[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒP“:HÈr?î3ì Ì^€*CONTINUEMOVEUNIT~~·¼ª'G·ª¬·Ê¬·ʽ«,½¬·Ê¬·ʽ½ª[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒ{“:sÈrjî^¸ ZXp0ÚENDMOVEUNIT~·¼ª' óCONTINUEMOVEUNIT·ª·ª³áSETUNITPROPERTY·ªsvSettingUpfTargetlocúƒl“:dîX @@šÚSETUNITPROPERTY~~~??·¼ª'c«Make this unit Aggressive, Moderate, Conservativeª«Agressª«Modª«Consª°«Agress½ª[¬ªê·ª%°«Mod½ª[¬ªê·ª [¬ªê·ª[··¬½·Ϊê·ª·²ÐpRedUnits½ ª[¬¼ªê·ª [¬ªê·ª¬ª ¬ª óÿ÷ÿ[··Ê·½ª·ê·ʪÙÿÝÿèÿ[·ª·êÐpBehaviorªi:toivMoveDirectionvStartPointvMovessvMoveDirectionsvUnitMovessvSettingUpfTarget “:‘î…Ûyá¸iÔ&b¸V8…G+Eæœ@Rl-Fð­BANGF·ª·ªw·ª¬ªL¬ª:·ªfExplosionObjectfPointª>ÈÙ-¾ 0£CINSERTKILL~svUnitListfObjectß,'EïÊ,|–ì˜lObjectCenter????[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ªe··½¬½·½«,½··½¬½½ªx1y1x2y2vObjectBoundsºOˆõB…B‚’B¡A|ö8 Š{nearestTarget~???[­üƒ×—Aªê·ª[·ªê·ª¬ª ·ª ôÿøÿKM귪귪3··ÂÏnumDistanceToTargetª°·½ª[°ªê·ª[·ªê·ª«ÿ¯ÿ¹ÿe··ʪvOurTargeti:toivDistanceToTargetvThisTargetvOurTargetListsvUnitsPerSidefTargetListfMyBounds Y¥úmûîT›ß‹¡ÐÝÄ… ²+°æœ«±à .&"™Ê !¸numDistanceToTarget????[·ÏlObjectCenterªê·ª[·ÏlObjectCenterªê·ª[¬·ʬ·ʽªê·ª[¬·ʬ·ʽªê·ªe··½··½½¾ªvCenter1vCenter2xDiffyDifffBounds2fBounds1 GÀƒG·šÜ±©Û«»L¢XL™'#4#EL™'#4#˜%W#HelvmLÿ"ã#†group id 826 of page id 0,group id 1085 of page id 0,group id 1094 of page id 0,group id 1103 of page id 0,group id 1112 of page id 0b$%<(u$j'pRedUnitsü$%group id 882 of page id 0ý$ Là#id 835 of page id 0,group id 844 of page id 0,group id 853 of page id 0,group id 862 of page id 0%f$Z#pBlueUnitsf't$â#group id 826 of page id 0,group id 933 of page id 0,group id 942 of page id 0,group id 951 of page id 0,group id 960 of page id 0Û&V#²%pBlueObjectsÛ&V#˜%group id 826 of page id 0,group id 1009 of page id 0,group id 1018 of page id 0,group id 1027 of page id 0,group id 1036 of page id 0Û&V#®%R&pRedObjectsÛ&V#:&group id 882 of page id 0,group id 1046 of page id 0,group id 1056 of page id 0,group id 1066 of page id 0,group id 1076 of page id 0g'ò'¨tgroup id 882 of page id 0,group id 1046 of page id 0,group id 1056 of page id 0,group id 1066 of page id 0,group id 1076 of page id 0ó'†group id 882 of page id 0,group id 1122 of page id 0,group id 1132 of page id 0,group id 1142 of page id 0,group id 1152 of page id 0"(<( Llv>\nXe _a||õ –>[ÿ"`=( ª:Ú*#´tö'@(@(üKâ#ò's Rmn|fXe ia||õ –F.ÿa ýKàtv ŒpObjectEnergy ˆ°Êèƒi > ÚÔì‘n�Ê€800, (i - Úç)*800è°…ì‘n�Ê€7000,i*800肣䂥ä�·�„"bullet"ä�·�´"large explosion"ä�·�´"small Ç䊓�€°”à‚Ô»ààà€�PLAYGAMEà--ðThis ‹Ðmain loop ˆÐ$Ð]. It iterates through a Ð× ˆunitsà--ð�¤each side, ’]Ð_two Òû�¤�;fire & ’>±é.à--ðÐ%ÁÒÐactually one ’fhalf �¤ÆIää’4 ßøÔËÔÃä’4 ÞøLiveRed, svLiveBlueä‘ZÒääŠsvLiveRed €²PäŠÇ €²Pä�·�„"Ó$ä’c²Pè…i †1 €ÚBì�­�Ìi ˆÖ0ìƒ�Ê‹‘x"dead"ï ‡MOVEANDFIRE ²P, °Ê삣샑xÇ_‘‚‘xÇxï �>²c삃ì�­�Ìi + Ú“ ˆÖ{ ìƒ�Ê‹‘x"ÂIï ‡ÉF°”, °Ê삣샑xÇž‘‚‘xÇ·ï �>²c삃肥䂲càà--ðIf we're here Ð ÐI has won, figure out which †Ð¿Ð{ Ð[à--ð�Hfinding Ð×1st non-ÁÍ ÐT& checking Ðó±£.äƒÖ= è‰"Ðé" ŒvWinnerä°…è‰"Red" ŒÄä‚£ä‘Î"ÐÌwinner was " & Ä+àà‚Ô7ààà€�Ø)fWhichSide, fThisUnitä’4Þ¤؈BulletCoords, ßJtoràà--ðÐ �HЃbuilt-�ÂÒëä‘nÆ? �H�Ì1 ˆÖ;ˆÆM * ßÀ2,0àà--ð�­Ðµnearest ²>'s coordinatesä‰�=ˆÆ€ ŒvUnitBoundsäƒÇ�è�­nearestTarget(È, �ÎÚE+1 €ÚL*2 ˆÖ6)ä°…è�­Ë)È=, �Î1 €Úh ˆÖP)ä‚£ä‰lObjectCenter(Èb) ŒsvBulletCoordsä‘n�„"Ó� €Ëä‡Ñ?Ë0°Ê), Õä�­�Ì2 ˆÖˆÕ'ä‘nÕ- �H�Ì2 ˆÖ'ˆÕ< * ßltor,0äƒ�Ì1 ˆ�=ˆfThisunit < 0 ‘‚�Ì1 ˆ�=ˆÕl > 8000è‰- �Ì1 ˆÖnˆÕƒ Œ�Ì1 ˆÖ|ˆÕ‘è‰- �Ì2 ˆÖŒˆÕ¡ Œ�Ì2 ˆÖšˆÕ¯䂃à‚×ïààà€�ÑðfTargetCoords, fOriginalUnità--ðÑPÒo moves & ’Fchecks €seeà--ðƒ�Êгmade a hit.ðTo À ƒ�ÊÐËÇ, �Ê‹always "underneath"à--ð�Ð’other ±}. If ‘x‘y’Fthere ‹a ÀM so ‡Àà--ð‘{a À^ message.ðÐvenergy goes down �HÐäÒ's İ)à--ðÐõ’IˆÐûÁšàä’4Ú-ßÚ¦×*ä’4ßntä‘ZvBulletEnergy, vRatio, xDiff, yDiff, xMove, yMoveää‰×l ŒÊ6ä‘ñ�„"Ó”àà--ðFigure зhow much €‘nÐzÒµ �H(x/y). Ð2ÒÅ dies „°Êà--ðÐùno more ÄÔ±S.òä‰�Ì1 ˆÙ¡ - �Ì1 ˆÚ} ŒÂ�äƒÂ” = 0è‰1 ŒÂŸä¢ä‰�Ì2 ˆÙË - �Ì2 ˆÚ§ ŒÂ³äƒÂ· = 0è‰1 ŒÂÂ䂣䉰(ÂÓ/(°(ÂÚ)+°(ÂÚ))) ŒÃð䉲Q(Ã÷ * ß%nt) ŒÂîä‰ß1nt - Âú ŒÂ÷äƒÑ < 0è‰-Ñ ŒÑä‚£äƒÑ# < 0è‰-Ñ ŒÑ$ä‚£ä’c²Pè‘n�„"Ó´ �HØBè�Å�Ì1 ˆÚJ �HÑSè�Å�Ì2 ˆÚ[ �HÑ]è�­objectFromPoint(Úw)èƒ�Ê‹‘y‘‚�ʋ٧ ‘‚‘‹ˆ�ʋٳ ‘‚‘{ˆ�Ê‹"°B"ì�uÙÎ �HÝþìƒÙÙ <= 0ï ‡BANG ÚÁ,"Small Ö4 ï �>²cì°…ï �d²c삣谅ì‡HIT °Ê,Ùì�>²c肣䂲cäà‚Ð"ààà€�ÁÓ9,fHitEnergyà--ðÓš sent €Ž‘{„a hit (Ò¬ over �±{) happensä’4svBulletEnergy, svCurrentListPositionä‘ZvObjää�·�„"Óøä�­ÚOˆ‘‹ˆÓ¹ä�u�Ê�Hǃäƒ�Ê<= 0à--ðÑÕÑ=‹ÐÚ, blow �Êupè�­ÚÍ�=ˆ‘‹ˆÓò)è‡Ñ °Ê,"Large Ö>è‡INSERTKILL ‘‹ˆÓè�·‘‹ˆÓ!ä°…è‰Ú �=ˆÓ/) ŒÁ‘è‡ÑNÁ˜,"ÒKÖ| è‰�ÊŒÚ鈑‹ˆÓSä‚£à‚HITàààà--ðÑi‹used only �ÂЉ setup phase €‘nЛ robots aroundà€�BEGINMOVEUNIT loc, Ó­ä’4Û OldLocà䃑x×( è�>Ê+ä‚£ä‰À$ ŒsvOldLocà‚Ê@ààà€�CONTINUEMOVEUNIT ÂJÓ÷ä’4Ûd ÃGà䃑x×n è�>Í'ä‚£ä‘nÓ �H�Ì1 ˆÀv - �Ì1 ˆÅU, \è�Ì2 ˆÀ‹ - �Ì2 ˆÅjä‰À™ ŒÅrðà‚Ífààà€�ENDMOVEUNIT ÁµÓbä’4×Ï ä䃑x×× è�>È ä‚£ä‡Î—ÂÕÓ‚ä‡SETUNITPROPERTY Ó—à‚ÈEààà€�ÍÓ¥ä’4svMoveDirection, Ûµ Õ$ ä‘ZvStartPoint, vMovesä䃑x×D è�>ÌYä‚£äà--ðÓ ÒLа ˆÐ board we б coming †& з°•ä‘Î"Make ŽÑ‰Aggressive, Moderate, Conservative" \è’f"Agress" ‘‚"À%" ‘‚"Á""ä°bä„�Ê‹"Äè‰1 ŒÈ©ä„�Ê‹"ÀG"è‰3 ŒÈ¹ä°…è‰5 ŒÈÃä‚°bàä‰�ÎÈÎ €ÈÒ + 1 ˆ×› ŒÃÒà--ðgot ÐÅ magnitude, adjust ÐÚ signäƒÓÏ ‹�ÂÖ¼ ˆŽ°8è‰-1 ŒÚ7ä°…è‰1 ŒÚBä‚£ä…i †1 €2è‰�Ìi ˆÒ2 * Ú^ Œ�Ìi ˆÒBä‚¥ä‰ÒJ ŒÖÒ ˆÓ%à‚Û£ààà€�ÑGfPoint, fExplosionObjectàä‘n�´Í €Ãä�­Ú@�=ˆ�´Í$)ä‘n�´Í, �H�Ì1 ˆ�=ˆ�´Í; - �Ì1 ˆ°Ê, \è�Ì2 ˆ�=ˆ�´ÍU - �Ì2 ˆ°Êä‘ñ�´Ífä�31ä‘‘1 ±ääƒÍu ‹�´"Üû è�31è‘‘1 ±ää‚£ä�·�´Í’ä�·�„"Ó& à‚Ðôààà€�×ÝfObjectä’4Ú1ÜOßY ääŠÖC €°”äŠÖ^ €°”à--ðInsert Ð. Ð ÑŠflag ŒÐ> ÐÖä…i †1 €Ú’*2èƒÄR ‹�Ìi ˆÖ…ìŠ�Ìi ˆÖ� €"ÑZ è‚£àà--ð��X�¤Ðì Ð) having >0 live ÑL �)Й same ²Ièƒ�Ìi ˆÖÓ ‹‘x"Ñ  ìƒi > Úï ŠÖ €’Pýì°…ï ŠÖþ €²P삣肣䂥ààà‚ÖÄààà€�­Ù» vObjectBoundsà--ðinput:ôМ containing �=ˆ�±{à--ðoutput:óо contining coords ˆ�Oˆ°=àä‘Zx1,y1,x2,y2ää‰�Ì1 ˆÊi Œx1ä‰�Ì2 ˆÊv Œy1ä‰�Ì3 ˆÊƒ Œx2ä‰�Ì4 ˆÊ� Œy2ä‘Ò((x2 - x1)/2) +ðx1,((y2 - y1)/2 + y1)àà‚Ùƒ ààà€�­ÙÑ fMyBounds,fTargetListä’4 Úä‘ZvDistanceToTarget, vThisTarget, vOurTargetList, Ç ää‰ÿ9 ŒÎ7ä‰ÈP ŒËä…i †1 €Úqè‘¢Ë/ ŒÈ@èƒÈD ‹"Ñ, ì�d¥è‚£à--ðÓèЛ ÐRdistance, ‰�ÊŒa Ðú, �­Ðlminimumè�­numDistanceToTarget(ÇÊ�=ˆÈ�)èƒ�Ê< ιì‰�ÊŒÎÀì‰i ŒÇ§è‚£ä‚¥ä‘Ò�=ˆ�ÌÇ· ˆÈðà‚ÙÖ ààà€�­ÏNt fBounds1, fBounds2ä‘ZvCenter1,vCenter2, ØÄ àà--ðÓš ÐM Ðů between ‘{°=' centers.ä‰Úò ÅT) ŒÅDä‰Úþ ÅV) ŒÅGä‰�Ì1 ˆÅY - �Ì1 ˆÅZ ŒÑ ä‰�Ì2 ˆÅq - �Ì2 ˆÅr ŒÑ, ä‘Ò²(Ñ< * ÑB + ÑA * ÑG )àà‚ßààà HRbv j^·:ö`púá‰^0 ɘTú¢²´ R®O¸ÐÀ„³á¢ò .æ–š óyÞ RÿŠr ËMEFIREENTERBOOKHITBEGINMOVEUNITPLAYGAMECONTINUEMOVEUNITENDMOVEUNITMOVEANDFIRESETUNITPROPERTYBANGINITGAMEINSERTKILL^>|£P&.Gf4pHrlObjectCenternearestTargetnumDistanceToTarget$56ƒQENTERBOOKw«tank helpÜ ªj^INITGAME$€ÚaINITGAME~~~~~~~~~? ? ? qêµ(ªñªqñOꪬ¼«,½¬¼½«,½¬…½«,½¬å½ª[«8,-2,7,-3,6,-4ªê·ª[¬ªê·ª[¬}ªê· ª[¬Zªê·ª[¬–ªê·ª[·¬ ½ªê·ª[¬ ªê·ªqê·ªñªqê· ªñª_ê·ª[²ÐpBlueUnitsªê·ªW²ÐpRedUnitsªê·ª ¬ª ·¬½ª ïÿóÿv3· ·ʪw°ª_°êÐpBehaviorª[· ª°êÐpObjectEnergyª· ·½ªF°ª¬ «,½· ·½¬ ½½ªF°ª¬X«,½· ¬ ½½ª{ÿÿŽÿ:«bulletÜ ª:«large explosionÜ ª:«small explosionÜ ªqêµ(ªñªi:toisvUserHaltvCurrentObjectvStartEnergysvWinsvBulletDecrementsvBulletMoveIncrementsvUnitMovessvMoveConversionFactorsvSettingUpsvUnitsPerSidesvMoveUnitssvUnitListsvHitEnergyJsEïhÛ\T›MîAÅ*Û«Îxö³ûð?ã–‡ÔíÞÉ+ÇæœÂ2FtA"PLAYGAME~~~~~~?qê·ªñªqê·ªñª:«bulletÜ ªñª˜¬ª ·ª ôÿøÿƒ3··ʪ°«dead½ ª.æMOVEANDFIREñª°ª·¼á·¼ªK3··½·ʪ°«dead½ ª.æMOVEANDFIREñª°ª·¼á·¼ª sÿwÿ�ÿfÿ·ª[«Blueªê· ª[«Redªê· ªb«The winner was · ½ªvWinneri:to1ivUnitssvUnitsPerSidesvLiveRedsvLiveBluesvSettingUpsvUnitListsvUserHalt íÞiEï^îRQÑG˜¢=T›.k.'+%G¦ëQxîœþi PMOVEANDFIRE~~~~G·ª¬·ÐpBehaviorÊ·½«,½¬½ª[·Âªê·ª·ª*3··¬½·¬½·ÎÏnearestTargetª3·¬··ÎÏnearestTargetª[·ÏlObjectCenterªê·ªF«bulletÜ ª·ªR®FIRE°ÏlObjectCenterª·ª3¬·ÐpBehaviorʪG·ª¬·ÐpBehaviorÊ·½«,½¬½ª¬¶fThisunitÂʬ½á¬·Âʬ@½ªX[¬·ÐpBehaviorʼª¬·êÐpBehaviorʪ[¬·ÐpBehaviorʼª¬·êÐpBehaviorʪvUnitBoundssvUnitsPerSidesvUnitListsvBulletCoordssvMoveConversionFactorfThisUnitfWhichSider³òŒªèÅÑ›�ÂEï·T›¨Ýœf V©@¿‘FIRE~~~~~??? ? ? ? [·ªê· ªw«bulletÜ ª[¬·Ê¬·ʽªê· ª· ¬½ª [¬ªê· ª[¬·Ê¬·ʽªê· ª· ¬½ª [¬ªê· ª[· · ¾· ¾½½¾ªê· ª[· ·½¾ªê·ª[··½ªê·ª· ¬½ª [·¼ªê·ª· ¬½ª [·¼ªê·ªñª³G«bulletÜ ª·«,½·½ª=¬ê·ʪ·ª=¬ê·ʪ·ª3·¾ª°«½á!°·½á°Â1·½á°Â«button½ª?#ê· ª·ª· ¬½ª&ú¢BANG·ª«Small explosionªaÿá‰HIT°ª· ªKÿvBulletEnergyvRatioxDiffyDiffxMoveyMovesvBulletMoveIncrementsvUnitListsvBulletDecrementsvBulletCoordssvHitEnergyfOriginalUnitfTargetCoords ›N2Q$J›� x÷Eïì«ÎÖøõÐõÊšÜĩ۾«·F]©¼ tñ.V³HIT~~?:«bulletÜ ª3·Â1ÐpObjectEnergyª#ê°ª·ª°¬½ªT3·Â1ÂÏlObjectCenterªú¢BANG°ª«Large explosionªÐINSERTKILL·Â1ª:·Â1ªU[·ÂÏlObjectCenterªê·ªú¢BANG·ª«Small explosionª[°ª·Â1êÐpObjectEnergyªvObjsvBulletEnergysvCurrentListPositionfHitEnergyfTarget“:&áÆ¿öï�öí·ñ0N3TU¸BEGINMOVEUNIT~~·¼ª'[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒP“:HÈr?î3~Ì^€*CONTINUEMOVEUNIT~~·¼ª'G·ª¬·Ê¬·ʽ«,½¬·Ê¬·ʽ½ª[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒ{“:sÈrjî^JZXpCÚENDMOVEUNIT~·¼ª' óCONTINUEMOVEUNIT·ª·ª³áSETUNITPROPERTY·ªsvSettingUpfTargetlocúƒl“:dîX¤@@š#ØSETUNITPROPERTY~~~??·¼ª'c«Make this unit Aggressive, Moderate, Conservativeª«Agressª«Modª«Consª°«Agress½ª[¬ªê·ª%°«Mod½ª[¬ªê·ª [¬ªê·ª[··¬½·Ϊê·ª·²ÐpRedUnits½ ª[¬¼ªê·ª [¬ªê·ª¬ª ¬ª óÿ÷ÿ[··Ê·½ª·ê·ʪÙÿÝÿèÿ[·ª·êÐpBehaviorªi:toivMoveDirectionvStartPointvMovessvMoveDirectionsvUnitMovessvSettingUpfTarget “:‘î…Ûyá¸iÔ&b¸V8…G+Eæœ@䞬Ä!"BANGF·Ü ª·ª3·Ü ÂÏlObjectCenterªG·Ü ª¬·Ü Âʬ°Ê½«,½¬·Ü Âʬ°Ê½½ªw·Ü ª¬ªL¬ª·«large explosionÜ ½ª ¬ªL¬ª:·Ü ª:«bulletÜ ªfExplosionObjectfPointª½ÈÙ¬‚hšØ)#¦INSERTKILL~~~~qê·ªñªqê·ªñª¬ª ·¬½ª ïÿóÿS···ʽªq·ê·ʪ«deadª··Ê«dead½ ª··½ª qê·ªñª qê·ªñªžÿ¢ÿ±ÿi:toisvUnitListsvUnitsPerSidesvLiveRedsvLiveBluefObjectß,ÐQÑŘ¢»T›¬Eï¡+Ÿæœšê8€šÕ%�lObjectCenter????[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ªe··½¬½·½«,½··½¬½·½½ªx1y1x2y2vObjectBoundsºOŒõB‰B†’Bƒ¡A€"hµx'ÞnearestTarget~????[­üƒ×—Aªê·ª[·ªê·ª¬ª ·ª ôÿøÿ\M귪귪·«dead½ª:3··ÂÏnumDistanceToTargetª°·½ª[°ªê·ª[·ªê·ªšÿžÿ¨ÿe··Êªi:toivDistanceToTargetvThisTargetvOurTargetListvOurTargetsvUnitsPerSidefTargetListfMyBounds Y¥mûT›ô±àé‹¡ÚÝÎ… ¼+ºæœµŠ&"™Ê\*¸numDistanceToTarget????[·ÏlObjectCenterªê·ª[·ÏlObjectCenterªê·ª[¬·ʬ·ʽªê·ª[¬·ʬ·ʽªê·ªe··½··½½¾ªvCenter1vCenter2xDiffyDifffBounds2fBounds1 GÀƒG·šÜ±©Û«»L¢XL™™±!LBattlefield Survival Strategies°tò'ʤìðŠ(Æ:,[U4--üTankwar, a game �¤cellular automata.ðEach player (ˆ2)à--ðprograms his pieces & ’Fthey fight �Êout.ðàà€�ENTERBOOK䊓�€²Pä‡INITGAMEà‚Æààà€�Åà--ðThe sv-Moves ’_are lists that have À_ conservative, moderate,à--ðradical ‘namountsä’4svSettingUp, svUnitsPerSide, svMoveUnits, svUnitList, svHitEnergyä’4svBulletDecrement, svBulletMoveIncrement, svUnitMoves, svMoveConversionFactoràä‘ZvCurrentObject, vStartEnergy, svWin䊓�€²PäŠ�=ˆMainWindow €-5,-5,645,485òä‰"8,-2,7,-3,6,-4" ŒÈ�ä‰5 ŒËé ä‰125 ŒÉ[ä‰90 ŒÈÒä‰150 ŒÏ–Á†ä‰Èá/10 ŒÎÚä‰800 ŒÏÐÀ×äŠ×0 €²PäŠsvUserHalt €°”äà--ðSet up the Й ˆtargetsä�[Ö<ä‰pBlueUnits ˆŽ�8ŒÖQ䑼pRedUnits ˆŽ�8‘Ögä…i †1 €Ú� * 2è‰�Ìi ˆÖ€ ŒvThisGroupè‘ñÇ è�[pBehavior ˆÇàè…j †1 €°Í(‘}ˆÇ+)ì�­�Ìj ˆ‘}ˆÇ9샑pˆ�Ê‹"hex"ï Š’“ˆ�Ê€0,75.3125,0ï �>¥ì‚£è‚¥àè‰Øw ŒpObjectEnergy ˆÇ~èƒi > Ú+ì‘nÇŒ €800, (i - Ú?)*800è°…ì‘nǨ €7000,i*800肣䂥ä‡HIDESTUFFà‚Ôçààà€�PLAYGAMEà--ðÁÜ ‹Ð@main loop ˆÐNÐ~. It iterates through a Ð ˆunitsà--ð�¤each side, ’]Љtwo Ò%�¤�;fire & ’>±é.à--ðÐOÁÒAÐHactually one ’fhalf �¤ÆIää’4 ß"ÔõÔíä’4 Þ"LiveRed, svLiveBlueä‘ZÒ:ääŠsvLiveRed €²PäŠÇ €²P䇯òä’c²Pè…i †1 €Úgì�­�Ìi ˆÖUìƒ�Ê‹‘x"dead"ï ‡MOVEANDFIRE ²P, °Ê삣샑xÇZ‘‚‘xÇsï �>²c삃ì�­�Ìi + Ú¸ ˆÖ  ìƒ�Ê‹‘x"ÂIï ‡ÉF°”, °Ê삣샑xÇ™‘‚‘xDzï �>²c삃肥䂲càà--ðIf we're here ÐÐD has won, figure out which †ÐäÐv Ѐà--ð�Hfinding Ðü1st non-ÁÍ ÐO& checking б£.äƒÖ8 è‰"Ð" ŒvWinnerä°…è‰"Red" ŒÄä‚£ä‘Î"Ðñwinner was " & Ä+ä‘ñ�´"controlPanel"àà‚ÔCààà€�Ø<fWhichSide, fThisUnitä’4ÞÜØÀBulletCoords, ß‚toràà--ðÐV �Hлbuilt-�ÂÒ#ä‘nÆ? �H�Ì1 ˆÖhˆÆM * ß·À2,0àà--ð�­Ðínearest ²>'s coordinatesä‰�=ˆÆ€ ŒvUnitBoundsäƒÇ�è�­nearestTarget(È, �ÎÚ}+1 €Ú„*2 ˆÖn)ä°…è�­Ë)È=, �Î1 €Ú  ˆÖˆ)ä‚£ä‰lObjectCenter(Èb) ŒsvBulletCoordsä‘n�„"bullet" €Ëä‡ÑVË4°Ê), Õä�­�Ì2 ˆÖCˆÕ+ä‘nÕ1 �H�Ì2 ˆÖXˆÕ@ * ߨtor,0äƒ�Ì1 ˆ�=ˆfThisunit < 0 ‘‚�Ì1 ˆ�=ˆÕp > 8000è‰- �Ì1 ˆÖŸˆÕ‡ Œ�Ì1 ˆÖ­ˆÕ•è‰- �Ì2 ˆÖ½ˆÕ¥ Œ�Ì2 ˆÖˈճ䂃à‚×ààà€�ÑfTargetCoords, fOriginalUnità--ðуÃá moves & ’Fchecks €seeà--ðƒ�ÊÐÉmade a hit.ðTo À ƒ�ÊÐáÇ, �Ê‹always "underneath"à--ð�ÐÍother ±}. If ‘x‘y’Fthere ‹a ÀM so ‡Àà--ð‘{a À^ message.ðбenergy goes down �HÐÒ“'s İ)à--ðÐ0’IˆÐ6Ášàä’4ÚhßOÚ©×eä’4ßJntä‘ZvBulletEnergy, vRatio, xDiff, yDiff, xMove, yMoveää‰×§ ŒÊ6ä‘ñ�„"Óàà--ðFigure ÐÍhow much €‘nеÒ) �H(x/y). ÐmÒ9 dies „°Êà--ðÐno more ÄÔ±S.òä‰�Ì1 ˆÙ  - �Ì1 ˆÚ€ ŒÂ�äƒÂ” = 0è‰1 ŒÂŸä¢ä‰�Ì2 ˆÙÊ - �Ì2 ˆÚª ŒÂ³äƒÂ· = 0è‰1 ŒÂÂ䂣䉰(ÂÓ/(°(ÂÚ)+°(ÂÚ))) ŒÃð䉲Q(Ã÷ * ß`nt) ŒÂîä‰ßlnt - Âú ŒÂ÷äƒÑ < 0è‰-Ñ ŒÑä‚£äƒÑ# < 0è‰-Ñ ŒÑ$ä‚£ä’c²Pè‘n�„"Ô(�HØAè�Å�Ì1 ˆÚL �HÑRè�Å�Ì2 ˆÚ] �HÑ\è�­objectFromPoint(Úy)èƒ�Ê‹‘y‘‚�ʋ٥ ‘‚‘‹ˆ�ʋٱ ‘‚‘{ˆ�Ê‹"°B"ì�uÙÍ �HÝ8 ìƒÙØ <= 0ï ‡BANG ÚÃ,"Small explosion" ï �>²cì°…ï �d²c삣谅ì‡HIT °Ê,Ùì�>²c肣䂲cäà‚Ð>ààà€�ÁÓ>,fHitEnergyà--ðÓ  sent €Ž‘{„a hit (Ò& over �±{) happensä’4svBulletEnergy, svCurrentListPositionä‘ZvObjää�·�„"Órä�­Ú9ˆ‘‹ˆÓ¾ä�u�Ê�Hǃäƒ�Ê<= 0à--ðÐÉ ÑC‹Ð÷, blow �Êupè�­Ú×�=ˆ‘‹ˆÓø)è‡Ñ°Ê,"Large Öè‡INSERTKILL ‘‹ˆÓè�·‘‹ˆÓ'ä°…è‰Ú�=ˆÓ5) ŒÁ’è‡ÑVÁ™,"ÝSè‰�ÊŒÚЈ‘‹ˆÓUä‚£à‚HITàààà--ðÐZ ‹used only �ÂÐÈ setup phase €‘nÐÚ robots aroundà€�BEGINMOVEUNIT loc, Ó°ä’4ÛY OldLocà䃑x×g è�>Ê+ä‚£ä‰À$ ŒsvOldLocà‚Ê@ààà€�CONTINUEMOVEUNIT ÂJÓúä’4Û£ ÃGà䃑x×­ è�>Í'ä‚£ä‘nÓ �H�Ì1 ˆÀv - �Ì1 ˆÅU, \è�Ì2 ˆÀ‹ - �Ì2 ˆÅjä‰À™ ŒÅrðà‚Ífààà€�ENDMOVEUNIT ÁµÓeä’4× ä䃑x× è�>È ä‚£ä‡Î—ÂÕÓ…ä‡SETUNITPROPERTY Óšà‚ÈEààà€�ÍÓ¨ä’4svMoveDirection, Ûô Õc ä‘ZvStartPoint, vMoves, vColorä䃑x׋ è�>Ìaä‚£äà--ðÓO ÒnÐÍ ˆÐS board we Ðø coming †& Ðð•ä‘Î"Make ŽÑ”Aggressive, Moderate, Conservative" \è’f"Agress" ‘‚"À%" ‘‚"Á""ä°bä„�Ê‹"Äè‰1 ŒÈ±èŠÃ  €±Çä„�Ê‹"ÀO"è‰3 ŒÈÉèŠÃ¸ €²kä°…è‰5 ŒÈÛèŠÃÊ €°²ä‚°bàä‰�ÎÈî €Èò + 1 ˆ×ú ŒÃòà--ðgot Ð$ magnitude, adjust Ð9 signäƒÓò ‹�ÂÖ ˆŽ°8è‰-1 ŒÚWä°…è‰1 ŒÚbä‚£ä…i †1 €2è‰�Ìi ˆÒR * Ú~ Œ�Ìi ˆÒbä‚¥ä‰Òj ŒÖ& ˆÓHä…i †1 €°Í(‘}ˆÓY)è�­�Ìi ˆ‘}ˆÓh胑pˆ�Ê‹"Ð! 슒“ˆ�Ê€Ò¢ì�>¥è‚£ä‚¥à‚Ûààà€�Ñ­fPoint, fExplosionObjectàä‘n�´Í €Ãä�­Ú¨�=ˆ�´Í$)ä‘n�´Í, �H�Ì1 ˆ�=ˆ�´Í; - �Ì1 ˆ°Ê, \è�Ì2 ˆ�=ˆ�´ÍU - �Ì2 ˆ°Êä‘ñ�´ÍfäƒÍj ‹�´"large Ö"è�31ä‚£ä�·�´Í†ä�·�„"Óóà‚ÐNààà€�×/fObjectä’4ÚÅÜãßà ääŠÖ­ €°”äŠÖÈ €°”à--ðInsert РЎ Ñâflag ŒÐÒ Ðjä…i †1 €Ú&*2èƒÄR ‹�Ìi ˆÖìŠ�Ìi ˆÖ# €"ÑÉ è‚£àà--ð��X�¤ÐV Г having >0 live Ѷ �)Ð-same ²Ièƒ�Ìi ˆÖg ‹‘x"Ñ ìƒi > Ú•ï ŠÖm €’Pýì°…ï ŠÖh €²P삣肣䂥ààà‚Öààà€�Õa 䊓�€²Pä�·�„"Óÿ ä�·�´"Ò2ÖQä�·�´"small Ö`ä�·�´"tank help"䊓�€°”à‚Õ¨ àà€�­Ùe vObjectBoundsà--ðinput:ôÐ~ containing �=ˆ�±{à--ðoutput:óР contining coords ˆ�Oˆ°=àä‘Zx1,y1,x2,y2ää‰�Ì1 ˆÊi Œx1ä‰�Ì2 ˆÊv Œy1ä‰�Ì3 ˆÊƒ Œx2ä‰�Ì4 ˆÊ� Œy2ä‘Ò((x2 - x1)/2) +ðx1,((y2 - y1)/2 + y1)àà‚Ù- ààà€�­Ù{ fMyBounds,fTargetListä’4 Úä‘ZvDistanceToTarget, vThisTarget, vOurTargetList, Ç ää‰ÿ9 ŒÎ7ä‰ÈP ŒËä…i †1 €ÚSè‘¢Ë/ ŒÈ@èƒÈD ‹"Ñé ì�d¥è‚£à--ðÓ� ÐX Ð4distance, ‰�ÊŒa ÐÜ, �­ÐNminimumè�­numDistanceToTarget(ÇÊ�=ˆÈ�)èƒ�Ê< ιì‰�ÊŒÎÀì‰i ŒÇ§è‚£ä‚¥ä‘Ò�=ˆ�ÌÇ· ˆÈðà‚Ù€ ààà€�­ÏNt fBounds1, fBounds2ä‘ZvCenter1,vCenter2, Øk àà--ðÓA Ð Ðæů between ‘{°=' centers.ä‰Úœ ÅT) ŒÅDä‰Ú¨ ÅV) ŒÅGä‰�Ì1 ˆÅY - �Ì1 ˆÅZ ŒÑ ä‰�Ì2 ˆÅq - �Ì2 ˆÅr ŒÑÓ ä‘Ò²(Ñã * Ñé + Ñè * Ñî )àà‚ßààà HRbÖ j^·2ö`pFá‰^� 4“ÐNɘTú¢²”R®ËÐÀV³á¢R .æ–ú óy> RÿŠÒ ÚEENTERBOOKHITBEGINMOVEUNITPLAYGAMECONTINUEMOVEUNITENDMOVEUNITMOVEANDFIRESETUNITPROPERTYBANGINITGAMEINSERTKILLFIREHIDESTUFF^>À£P&rGf4´HrlObjectCenternearestTargetnumDistanceToTarget*..ƒTENTERBOOKqêµ(ªñªj^INITGAME*Œ÷ÈÝ8INITGAME~~~~~~~~~? ? ? qêµ(ªñªqñOꪬ¼«,½¬¼½«,½¬…½«,½¬å½ª[«8,-2,7,-3,6,-4ªê·ª[¬ªê·ª[¬}ªê· ª[¬Zªê·ª[¬–ªê·ª[·¬ ½ªê·ª[¬ ªê·ªqê·ªñªqê· ªñª_ê·ª[²ÐpBlueUnitsªê·ªW²ÐpRedUnitsªê·ª ¬ª ·¬½ª ïÿóÿÛ[· ·ʪê·ªw·ª_·êÐpBehaviorª¬ª ·Â0¾ ª ðÿôÿG3··Â0ʪ°Â«hex½ª)q°êÂ,ª¬«,½­ÔR@½«,½¬½ª «ÿ¯ÿ½ÿ[· ª·êÐpObjectEnergyª· ·½ªF·ª¬ «,½· ·½¬ ½½ªF·ª¬X«,½· ¬ ½½ªÿÿ)ÿ4“HIDESTUFFj:to1jvThisGroupi:toisvUserHaltvCurrentObjectvStartEnergysvWinsvBulletDecrementsvBulletMoveIncrementsvUnitMovessvMoveConversionFactorsvSettingUpsvUnitsPerSidesvMoveUnitssvUnitListsvHitEnergyJ»Eï°Û¤T›•î‰ÅrÛf«ÎPx>³û8?+–‡íÞ+æœ ½æÿä+ý§÷¶L+ˆ:PLAYGAME~~~~~~?qê·ªñªqê·ªñª4“HIDESTUFFñª˜¬ª ·ª ôÿøÿƒ3··ʪ°«dead½ ª.æMOVEANDFIREñª°ª·¼á·¼ªK3··½·ʪ°«dead½ ª.æMOVEANDFIREñª°ª·¼á·¼ª sÿwÿ�ÿfÿ·ª[«Blueªê· ª[«Redªê· ªb«The winner was · ½ªw«controlPanelÜ ªvWinneri:to1ivUnitssvUnitsPerSidesvLiveRedsvLiveBluesvSettingUpsvUnitListsvUserHalt íÞ}EïrîfQÑ[˜¢QT›Bk.;+9G¦3ëQ+îœþ[ PMOVEANDFIRE~~~~G·ª¬·ÐpBehaviorÊ·½«,½¬½ª[·Âªê·ª·ª*3··¬½·¬½·ÎÏnearestTargetª3·¬··ÎÏnearestTargetª[·ÏlObjectCenterªê·ªF«bulletÜ ª·ªR®FIRE°ÏlObjectCenterª·ª3¬·ÐpBehaviorʪG·ª¬·ÐpBehaviorÊ·½«,½¬½ª¬¶fThisunitÂʬ½á¬·Âʬ@½ªX[¬·ÐpBehaviorʼª¬·êÐpBehaviorʪ[¬·ÐpBehaviorʼª¬·êÐpBehaviorʪvUnitBoundssvUnitsPerSidesvUnitListsvBulletCoordssvMoveConversionFactorfThisUnitfWhichSider³òŒªèÅÑ›�ÂEï·T›¨Ýœð V©@±‘FIRE~~~~~??? ? ? ? [·ªê· ªw«bulletÜ ª[¬·Ê¬·ʽªê· ª· ¬½ª [¬ªê· ª[¬·Ê¬·ʽªê· ª· ¬½ª [¬ªê· ª[· · ¾· ¾½½¾ªê· ª[· ·½¾ªê·ª[··½ªê·ª· ¬½ª [·¼ªê·ª· ¬½ª [·¼ªê·ªñª³G«bulletÜ ª·«,½·½ª=¬ê·ʪ·ª=¬ê·ʪ·ª3·¾ª°«½á!°·½á°Â1·½á°Â«button½ª?#ê· ª·ª· ¬½ª&ú¢BANG·ª«Small explosionªaÿá‰HIT°ª· ªKÿvBulletEnergyvRatioxDiffyDiffxMoveyMovesvBulletMoveIncrementsvUnitListsvBulletDecrementsvBulletCoordssvHitEnergyfOriginalUnitfTargetCoords ›N2Q$J›� x÷Eïì«ÎÖøõÐõÊšÜĩ۾«·F]©Ftñ.H³HIT~~?:«bulletÜ ª3·Â1ÐpObjectEnergyª#ê°ª·ª°¬½ªT3·Â1ÂÏlObjectCenterªú¢BANG°ª«Large explosionªÐINSERTKILL·Â1ª:·Â1ªU[·ÂÏlObjectCenterªê·ªú¢BANG·ª«Small explosionª[°ª·Â1êÐpObjectEnergyªvObjsvBulletEnergysvCurrentListPositionfHitEnergyfTarget“:&áÆ¿öï�öí·ñºN3TG¸BEGINMOVEUNIT~~·¼ª'[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒP“:HÈr?î3Ì^€*CONTINUEMOVEUNIT~~·¼ª'G·ª¬·Ê¬·ʽ«,½¬·Ê¬·ʽ½ª[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒ{“:sÈrjî^ÔZXp5ÚENDMOVEUNIT~·¼ª' óCONTINUEMOVEUNIT·ª·ª³áSETUNITPROPERTY·ªsvSettingUpfTargetlocúƒl“:dîX.BµSETUNITPROPERTY~~~???·¼ª'c«Make this unit Aggressive, Moderate, Conservativeª«Agressª«Modª«Consª°«Agress½ª[¬ªê·ªqê·ª«0,50,100ªH°«Mod½ª [¬ªê·ªqê·ª«60,50,100ª[¬ªê·ªqê·ª«120,50,100ª[··¬½·Ϊê·ª·²ÐpRedUnits½ ª[¬¼ªê·ª [¬ªê·ª¬ª ¬ª óÿ÷ÿ[··Ê·½ª·ê·ʪÙÿÝÿèÿ[·ª·êÐpBehaviorª¬ª ·Â0¾ ª ðÿôÿ,3··Â0ʪ°Â«hex½ªq°êÂ,ª·ª ÆÿÊÿØÿi:toivMoveDirectionvStartPointvMovesvColorsvMoveDirectionsvUnitMovessvSettingUpfTarget “: îÛõá¸åCÞÔ&׸Ë8…¼+º朵ph�¶0#èBANGF·Ü ª·ª3·Ü ÂÏlObjectCenterªG·Ü ª¬·Ü Âʬ°Ê½«,½¬·Ü Âʬ°Ê½½ªw·Ü ª·«large explosionÜ ½ª¬ª:·Ü ª:«bulletÜ ªfExplosionObjectfPointª®ÈÙ�ØhšØ%¦INSERTKILL~~~~qê·ªñªqê·ªñª¬ª ·¬½ª ïÿóÿS···ʽªq·ê·ʪ«deadª··Ê«dead½ ª··½ª qê·ªñª qê·ªñªžÿ¢ÿ±ÿi:toisvUnitListsvUnitsPerSidesvLiveRedsvLiveBluefObjectß,ÐQÑŘ¢»T›¬Eï¡+Ÿæœš@¢nnÊ'ÜHIDESTUFFqêµ(ªñª:«bulletÜ ª:«large explosionÜ ª:«small explosionÜ ª:«tank helpÜ ªqêµ(ªñªâ8€šª(�lObjectCenter????[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ªe··½¬½·½«,½··½¬½·½½ªx1y1x2y2vObjectBoundsºOŒõB‰B†’Bƒ¡A€hµM*ÞnearestTarget~????[­üƒ×—Aªê·ª[·ªê·ª¬ª ·ª ôÿøÿ\M귪귪·«dead½ª:3··ÂÏnumDistanceToTargetª°·½ª[°ªê·ª[·ªê·ªšÿžÿ¨ÿe··Êªi:toivDistanceToTargetvThisTargetvOurTargetListvOurTargetsvUnitsPerSidefTargetListfMyBounds Y¥mûT›ô±àé‹¡ÚÝÎ… ¼+ºæœµ‚&"™Ê1-¸numDistanceToTarget????[·ÏlObjectCenterªê·ª[·ÏlObjectCenterªê·ª[¬·ʬ·ʽªê·ª[¬·ʬ·ʽªê·ªe··½··½½¾ªvCenter1vCenter2xDiffyDifffBounds2fBounds1 GÀƒG·šÜ±©Û«»L¢XL™™átHelvF° Xí™`D|D|•–F=ÿ"£ÚÈÌ(Æ Z--üTankwar, a game �¤cellular automata.ðEach player (ˆ2)à--ðprograms his pieces & ’Fthey fight �Êout.ðàà€�ENTERBOOK䊓�€²Pä‡INITGAMEà‚Æààà€�Åà--ðThe sv-Moves ’_are lists that have À_ conservative, moderate,à--ðradical ‘namountsä’4svSettingUp, svUnitsPerSide, svMoveUnits, svUnitList, svHitEnergyä’4svBulletDecrement, svBulletMoveIncrement, svUnitMoves, svMoveConversionFactoràä‘ZvCurrentObject, vStartEnergy, svWin䊓�€²PäŠ�=ˆMainWindow €-5,-5,645,485òä‰"8,-2,7,-3,6,-4" ŒÈ�ä‰5 ŒËé ä‰125 ŒÉ[ä‰90 ŒÈÒä‰150 ŒÏ–Á†ä‰Èá/10 ŒÎÚä‰800 ŒÏÐÀ×äŠ×0 €²PäŠsvUserHalt €°”äà--ðSet up the Й ˆtargetsä�[Ö<ä‰pBlueUnits ˆŽ�8ŒÖQ䑼pRedUnits ˆŽ�8‘Ögä…i †1 €Ú� * 2è‰�Ìi ˆÖ€ ŒvThisGroupè‘ñÇ è�[pBehavior ˆÇàè…j †1 €°Í(‘}ˆÇ+)ì�­�Ìj ˆ‘}ˆÇ9샑pˆ�Ê‹"hex"ï Š’“ˆ�Ê€0,75.3125,0ï �>¥ì‚£è‚¥àè‰Øw ŒpObjectEnergy ˆÇ~èƒi > Ú+ì‘nÇŒ €800, (i - Ú?)*800è°…ì‘nǨ €7000,i*800肣䂥ä‡HIDESTUFFà‚Ôçààà€�PLAYGAMEà--ðÁÜ ‹Ð@main loop ˆÐNÐ~. It iterates through a Ð ˆunitsà--ð�¤each side, ’]Љtwo Ò%�¤�;fire & ’>±é.à--ðÐOÁÒAÐHactually one ’fhalf �¤ÆIää’4 ß"ÔõÔíä’4 Þ"LiveRed, svLiveBlueä‘ZÒ:ääŠsvLiveRed €²PäŠÇ €²P䇯òä’c²Pè…i †1 €Úgì�­�Ìi ˆÖUìƒ�Ê‹‘x"dead"ï ‡MOVEANDFIRE ²P, °Ê삣샑xÇZ‘‚‘xÇsï �>²c삃ì�­�Ìi + Ú¸ ˆÖ  ìƒ�Ê‹‘x"ÂIï ‡ÉF°”, °Ê삣샑xÇ™‘‚‘xDzï �>²c삃肥䂲càà--ðIf we're here ÐÐD has won, figure out which †ÐäÐv Ѐà--ð�Hfinding Ðü1st non-ÁÍ ÐO& checking б£.äƒÖ8 è‰"Ð" ŒvWinnerä°…è‰"Red" ŒÄä‚£ä‘Î"Ðñwinner was " & Ä+ä‘ñ�´"controlPanel"àà‚ÔCààà€�Ø<fWhichSide, fThisUnitä’4ÞÜØÀBulletCoords, ß‚toràà--ðÐV �Hлbuilt-�ÂÒ#ä‘nÆ? �H�Ì1 ˆÖhˆÆM * ß·À2,0àà--ð�­Ðínearest ²>'s coordinatesä‰�=ˆÆ€ ŒvUnitBoundsäƒÇ�è�­nearestTarget(È, �ÎÚ}+1 €Ú„*2 ˆÖn)ä°…è�­Ë)È=, �Î1 €Ú  ˆÖˆ)ä‚£ä‰lObjectCenter(Èb) ŒsvBulletCoordsä‘n�„"bullet" €Ëä‡ÑVË4°Ê), Õä�­�Ì2 ˆÖCˆÕ+ä‘nÕ1 �H�Ì2 ˆÖXˆÕ@ * ߨtor,0äƒ�Ì1 ˆ�=ˆfThisunit < 0 ‘‚�Ì1 ˆ�=ˆÕp > 8000è‰- �Ì1 ˆÖŸˆÕ‡ Œ�Ì1 ˆÖ­ˆÕ•è‰- �Ì2 ˆÖ½ˆÕ¥ Œ�Ì2 ˆÖˈճ䂃à‚×ààà€�ÑfTargetCoords, fOriginalUnità--ðуÃá moves & ’Fchecks €seeà--ðƒ�ÊÐÉmade a hit.ðTo À ƒ�ÊÐáÇ, �Ê‹always "underneath"à--ð�ÐÍother ±}. If ‘x‘y’Fthere ‹a ÀM so ‡Àà--ð‘{a À^ message.ðбenergy goes down �HÐÒ“'s İ)à--ðÐ0’IˆÐ6Ášàä’4ÚhßOÚ©×eä’4ßJntä‘ZvBulletEnergy, vRatio, xDiff, yDiff, xMove, yMoveää‰×§ ŒÊ6ä‘ñ�„"Óàà--ðFigure ÐÍhow much €‘nеÒ) �H(x/y). ÐmÒ9 dies „°Êà--ðÐno more ÄÔ±S.òä‰�Ì1 ˆÙ  - �Ì1 ˆÚ€ ŒÂ�äƒÂ” = 0è‰1 ŒÂŸä¢ä‰�Ì2 ˆÙÊ - �Ì2 ˆÚª ŒÂ³äƒÂ· = 0è‰1 ŒÂÂ䂣䉰(ÂÓ/(°(ÂÚ)+°(ÂÚ))) ŒÃð䉲Q(Ã÷ * ß`nt) ŒÂîä‰ßlnt - Âú ŒÂ÷äƒÑ < 0è‰-Ñ ŒÑä‚£äƒÑ# < 0è‰-Ñ ŒÑ$ä‚£ä’c²Pè‘n�„"Ô(�HØAè�Å�Ì1 ˆÚL �HÑRè�Å�Ì2 ˆÚ] �HÑ\è�­objectFromPoint(Úy)èƒ�Ê‹‘y‘‚�ʋ٥ ‘‚‘‹ˆ�ʋٱ ‘‚‘{ˆ�Ê‹"°B"ì�uÙÍ �HÝ8 ìƒÙØ <= 0ï ‡BANG ÚÃ,"Small explosion" ï �>²cì°…ï �d²c삣谅ì‡HIT °Ê,Ùì�>²c肣䂲cäà‚Ð>ààà€�ÁÓ>,fHitEnergyà--ðÓ  sent €Ž‘{„a hit (Ò& over �±{) happensä’4svBulletEnergy, svCurrentListPositionä‘ZvObjää�·�„"Órä�­Ú9ˆ‘‹ˆÓ¾ä�u�Ê�Hǃäƒ�Ê<= 0à--ðÐÉ ÑC‹Ð÷, blow �Êupè�­Ú×�=ˆ‘‹ˆÓø)è‡Ñ°Ê,"Large Öè‡INSERTKILL ‘‹ˆÓè�·‘‹ˆÓ'ä°…è‰Ú�=ˆÓ5) ŒÁ’è‡ÑVÁ™,"ÝSè‰�ÊŒÚЈ‘‹ˆÓUä‚£à‚HITàààà--ðÐZ ‹used only �ÂÐÈ setup phase €‘nÐÚ robots aroundà€�BEGINMOVEUNIT loc, Ó°ä’4ÛY OldLocà䃑x×g è�>Ê+ä‚£ä‰À$ ŒsvOldLocà‚Ê@ààà€�CONTINUEMOVEUNIT ÂJÓúä’4Û£ ÃGà䃑x×­ è�>Í'ä‚£ä‘nÓ �H�Ì1 ˆÀv - �Ì1 ˆÅU, \è�Ì2 ˆÀ‹ - �Ì2 ˆÅjä‰À™ ŒÅrðà‚Ífààà€�ENDMOVEUNIT ÁµÓeä’4× ä䃑x× è�>È ä‚£ä‡Î—ÂÕÓ…ä‡SETUNITPROPERTY Óšà‚ÈEààà€�ÍÓ¨ä’4svMoveDirection, Ûô Õc ä‘ZvStartPoint, vMoves, vColorä䃑x׋ è�>Ìaä‚£äà--ðÓO ÒnÐÍ ˆÐS board we Ðø coming †& Ðð•ä‘Î"Make ŽÑ”Aggressive, Moderate, Conservative" \è’f"Agress" ‘‚"À%" ‘‚"Á""ä°bä„�Ê‹"Äè‰1 ŒÈ±èŠÃ  €±Çä„�Ê‹"ÀO"è‰3 ŒÈÉèŠÃ¸ €²kä°…è‰5 ŒÈÛèŠÃÊ €°²ä‚°bàä‰�ÎÈî €Èò + 1 ˆ×ú ŒÃòà--ðgot Ð$ magnitude, adjust Ð9 signäƒÓò ‹�ÂÖ ˆŽ°8è‰-1 ŒÚWä°…è‰1 ŒÚbä‚£ä…i †1 €2è‰�Ìi ˆÒR * Ú~ Œ�Ìi ˆÒbä‚¥ä‰Òj ŒÖ& ˆÓHä…i †1 €°Í(‘}ˆÓY)è�­�Ìi ˆ‘}ˆÓh胑pˆ�Ê‹"Ð! 슒“ˆ�Ê€Ò¢ì�>¥è‚£ä‚¥à‚Ûààà€�Ñ­fPoint, fExplosionObjectàä‘n�´Í €Ãä�­Ú¨�=ˆ�´Í$)ä‘n�´Í, �H�Ì1 ˆ�=ˆ�´Í; - �Ì1 ˆ°Ê, \è�Ì2 ˆ�=ˆ�´ÍU - �Ì2 ˆ°Êä‘ñ�´ÍfäƒÍj ‹�´"large Ö"è�31ä‚£ä�·�´Í†ä�·�„"Óóà‚ÐNààà€�×/fObjectä’4ÚÅÜãßà ääŠÖ­ €°”äŠÖÈ €°”à--ðInsert РЎ Ñâflag ŒÐÒ Ðjä…i †1 €Ú&*2èƒÄR ‹�Ìi ˆÖìŠ�Ìi ˆÖ# €"ÑÉ è‚£àà--ð��X�¤ÐV Г having >0 live Ѷ �)Ð-same ²Ièƒ�Ìi ˆÖg ‹‘x"Ñ ìƒi > Ú•ï ŠÖm €’Pýì°…ï ŠÖh €²P삣肣䂥ààà‚Öààà€�SAVEBOARDà‚Æàà€�Õr 䊓�€²Pä�·�„"Ó ä�·�´"ÒCÖbä�·�´"small Öqä�·�´"tank help"䊓�€°”à‚Õ¹ àà€�­Ùv vObjectBoundsà--ðinput:ôÐ� containing �=ˆ�±{à--ðoutput:óб contining coords ˆ�Oˆ°=àä‘Zx1,y1,x2,y2ää‰�Ì1 ˆÊi Œx1ä‰�Ì2 ˆÊv Œy1ä‰�Ì3 ˆÊƒ Œx2ä‰�Ì4 ˆÊ� Œy2ä‘Ò((x2 - x1)/2) +ðx1,((y2 - y1)/2 + y1)àà‚Ù> ààà€�­ÙŒ fMyBounds,fTargetListä’4 Úä‘ZvDistanceToTarget, vThisTarget, vOurTargetList, Ç ää‰ÿ9 ŒÎ7ä‰ÈP ŒËä…i †1 €Údè‘¢Ë/ ŒÈ@èƒÈD ‹"Ñú ì�d¥è‚£à--ðÓ  Ði ÐEdistance, ‰�ÊŒa Ðí, �­Ð_minimumè�­numDistanceToTarget(ÇÊ�=ˆÈ�)èƒ�Ê< ιì‰�ÊŒÎÀì‰i ŒÇ§è‚£ä‚¥ä‘Ò�=ˆ�ÌÇ· ˆÈðà‚Ù‘ ààà€�­ÏNt fBounds1, fBounds2ä‘ZvCenter1,vCenter2, Ø| àà--ðÓR ÐÐ÷ů between ‘{°=' centers.ä‰Ú­ ÅT) ŒÅDä‰Ú¹ ÅV) ŒÅGä‰�Ì1 ˆÅY - �Ì1 ˆÅZ ŒÑÓ ä‰�Ì2 ˆÅq - �Ì2 ˆÅr ŒÑä ä‘Ò²(Ñô * Ñú + Ñù * Ñÿ )àà‚ßàààHRbÖ j^·2ö`pFá‰^� áŠÐN4“älɘÚú¢²”R®ËÐÀV³á¢R .æ–ú óy> RÿŠÒ îRBOOKHITBEGINMOVEUNITPLAYGAMECONTINUEMOVEUNITENDMOVEUNITMOVEANDFIRESETUNITPROPERTYBANGINITGAMEINSERTKILLFIRESAVEBOARDENTERBOOKHIDESTUFF^>Þ£P&�Gf4ÒHrlObjectCenternearestTargetnumDistanceToTarget*..ƒTENTERBOOKqêµ(ªñªj^INITGAME*Œ÷ÈÝ8INITGAME~~~~~~~~~? ? ? qêµ(ªñªqñOꪬ¼«,½¬¼½«,½¬…½«,½¬å½ª[«8,-2,7,-3,6,-4ªê·ª[¬ªê·ª[¬}ªê· ª[¬Zªê·ª[¬–ªê·ª[·¬ ½ªê·ª[¬ ªê·ªqê·ªñªqê· ªñª_ê·ª[²ÐpBlueUnitsªê·ªW²ÐpRedUnitsªê·ª ¬ª ·¬½ª ïÿóÿÛ[· ·ʪê·ªw·ª_·êÐpBehaviorª¬ª ·Â0¾ ª ðÿôÿG3··Â0ʪ°Â«hex½ª)q°êÂ,ª¬«,½­ÔR@½«,½¬½ª «ÿ¯ÿ½ÿ[· ª·êÐpObjectEnergyª· ·½ªF·ª¬ «,½· ·½¬ ½½ªF·ª¬X«,½· ¬ ½½ªÿÿ)ÿ4“HIDESTUFFj:to1jvThisGroupi:toisvUserHaltvCurrentObjectvStartEnergysvWinsvBulletDecrementsvBulletMoveIncrementsvUnitMovessvMoveConversionFactorsvSettingUpsvUnitsPerSidesvMoveUnitssvUnitListsvHitEnergyJ»Eï°Û¤T›•î‰ÅrÛf«ÎPx>³û8?+–‡íÞ+æœ ½æÿä+ý§÷¶L+ˆ:PLAYGAME~~~~~~?qê·ªñªqê·ªñª4“HIDESTUFFñª˜¬ª ·ª ôÿøÿƒ3··ʪ°«dead½ ª.æMOVEANDFIREñª°ª·¼á·¼ªK3··½·ʪ°«dead½ ª.æMOVEANDFIREñª°ª·¼á·¼ª sÿwÿ�ÿfÿ·ª[«Blueªê· ª[«Redªê· ªb«The winner was · ½ªw«controlPanelÜ ªvWinneri:to1ivUnitssvUnitsPerSidesvLiveRedsvLiveBluesvSettingUpsvUnitListsvUserHalt íÞ}EïrîfQÑ[˜¢QT›Bk.;+9G¦3ëQ+îœþ[ PMOVEANDFIRE~~~~G·ª¬·ÐpBehaviorÊ·½«,½¬½ª[·Âªê·ª·ª*3··¬½·¬½·ÎÏnearestTargetª3·¬··ÎÏnearestTargetª[·ÏlObjectCenterªê·ªF«bulletÜ ª·ªR®FIRE°ÏlObjectCenterª·ª3¬·ÐpBehaviorʪG·ª¬·ÐpBehaviorÊ·½«,½¬½ª¬¶fThisunitÂʬ½á¬·Âʬ@½ªX[¬·ÐpBehaviorʼª¬·êÐpBehaviorʪ[¬·ÐpBehaviorʼª¬·êÐpBehaviorʪvUnitBoundssvUnitsPerSidesvUnitListsvBulletCoordssvMoveConversionFactorfThisUnitfWhichSider³òŒªèÅÑ›�ÂEï·T›¨Ýœð V©@±‘FIRE~~~~~??? ? ? ? [·ªê· ªw«bulletÜ ª[¬·Ê¬·ʽªê· ª· ¬½ª [¬ªê· ª[¬·Ê¬·ʽªê· ª· ¬½ª [¬ªê· ª[· · ¾· ¾½½¾ªê· ª[· ·½¾ªê·ª[··½ªê·ª· ¬½ª [·¼ªê·ª· ¬½ª [·¼ªê·ªñª³G«bulletÜ ª·«,½·½ª=¬ê·ʪ·ª=¬ê·ʪ·ª3·¾ª°«½á!°·½á°Â1·½á°Â«button½ª?#ê· ª·ª· ¬½ª&ú¢BANG·ª«Small explosionªaÿá‰HIT°ª· ªKÿvBulletEnergyvRatioxDiffyDiffxMoveyMovesvBulletMoveIncrementsvUnitListsvBulletDecrementsvBulletCoordssvHitEnergyfOriginalUnitfTargetCoords ›N2Q$J›� x÷Eïì«ÎÖøõÐõÊšÜĩ۾«·F]©Ftñ.H³HIT~~?:«bulletÜ ª3·Â1ÐpObjectEnergyª#ê°ª·ª°¬½ªT3·Â1ÂÏlObjectCenterªú¢BANG°ª«Large explosionªÐINSERTKILL·Â1ª:·Â1ªU[·ÂÏlObjectCenterªê·ªú¢BANG·ª«Small explosionª[°ª·Â1êÐpObjectEnergyªvObjsvBulletEnergysvCurrentListPositionfHitEnergyfTarget“:&áÆ¿öï�öí·ñºN3TG¸BEGINMOVEUNIT~~·¼ª'[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒP“:HÈr?î3Ì^€*CONTINUEMOVEUNIT~~·¼ª'G·ª¬·Ê¬·ʽ«,½¬·Ê¬·ʽ½ª[·ªê·ªsvSettingUpsvOldLocfTargetlocúƒ{“:sÈrjî^ÔZXp5ÚENDMOVEUNIT~·¼ª' óCONTINUEMOVEUNIT·ª·ª³áSETUNITPROPERTY·ªsvSettingUpfTargetlocúƒl“:dîX.BµSETUNITPROPERTY~~~???·¼ª'c«Make this unit Aggressive, Moderate, Conservativeª«Agressª«Modª«Consª°«Agress½ª[¬ªê·ªqê·ª«0,50,100ªH°«Mod½ª [¬ªê·ªqê·ª«60,50,100ª[¬ªê·ªqê·ª«120,50,100ª[··¬½·Ϊê·ª·²ÐpRedUnits½ ª[¬¼ªê·ª [¬ªê·ª¬ª ¬ª óÿ÷ÿ[··Ê·½ª·ê·ʪÙÿÝÿèÿ[·ª·êÐpBehaviorª¬ª ·Â0¾ ª ðÿôÿ,3··Â0ʪ°Â«hex½ªq°êÂ,ª·ª ÆÿÊÿØÿi:toivMoveDirectionvStartPointvMovesvColorsvMoveDirectionsvUnitMovessvSettingUpfTarget “: îÛõá¸åCÞÔ&׸Ë8…¼+º朵ph�¶0#èBANGF·Ü ª·ª3·Ü ÂÏlObjectCenterªG·Ü ª¬·Ü Âʬ°Ê½«,½¬·Ü Âʬ°Ê½½ªw·Ü ª·«large explosionÜ ½ª¬ª:·Ü ª:«bulletÜ ªfExplosionObjectfPointª®ÈÙ�ØhšØ%¦INSERTKILL~~~~qê·ªñªqê·ªñª¬ª ·¬½ª ïÿóÿS···ʽªq·ê·ʪ«deadª··Ê«dead½ ª··½ª qê·ªñª qê·ªñªžÿ¢ÿ±ÿi:toisvUnitListsvUnitsPerSidesvLiveRedsvLiveBluefObjectß,ÐQÑŘ¢»T›¬Eï¡+Ÿæœš@Ê'"SAVEBOARDF¢nnð'ÜHIDESTUFFqêµ(ªñª:«bulletÜ ª:«large explosionÜ ª:«small explosionÜ ª:«tank helpÜ ªqêµ(ªñªè8€šÐ(�lObjectCenter????[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ª[¬·Êªê·ªe··½¬½·½«,½··½¬½·½½ªx1y1x2y2vObjectBoundsºOŒõB‰B†’Bƒ¡A€ hµs*ÞnearestTarget~????[­üƒ×—Aªê·ª[·ªê·ª¬ª ·ª ôÿøÿ\M귪귪·«dead½ª:3··ÂÏnumDistanceToTargetª°·½ª[°ªê·ª[·ªê·ªšÿžÿ¨ÿe··Êªi:toivDistanceToTargetvThisTargetvOurTargetListvOurTargetsvUnitsPerSidefTargetListfMyBounds Y¥mûT›ô±àé‹¡ÚÝÎ… ¼+ºæœµˆ&"™ÊW-¸numDistanceToTarget????[·ÏlObjectCenterªê·ª[·ÏlObjectCenterªê·ª[¬·ʬ·ʽªê·ª[¬·ʬ·ʽªê·ªe··½··½½¾ªvCenter1vCenter2xDiffyDifffBounds2fBounds1 GÀƒG·šÜ±©Û«»L¢XL™·ªµ.Â1ªlocúƒ0ñ(ô(pObjectEnergyû(125') dV&Qö <A "R þºS) eV&Qm <¸ "R þº‡)fV&€` œ] ÿ"R þú #ë?èŠ)—)?ë#k?èË)gV&Î)A "] ÀÀÀ"R þV h|²˜Ö)Ó)Hexï)² _|»|h »˜_˜*hV&XÜ Ü ÿÿÿ"R =*iV&)û G½ ÿÿÿ"R þF i* jV&fs À¯ ÀÀÀ"R þV •* kV&f ÏE ÀÀÀ"R þV + v+þ+ -X€ <}"X <@-Q¶<l-Q-<x˜-€ œÜ-"4.XœœZ.)»G}‚.f3Ào®.fÉÏ+Tank-î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ03-6-pObjectEnergy=-125i- n˜*Q <a "R þº•- o˜*Q�<Ø"R þºÉ-p˜*€€ œ}ÿ"R þú #ë?èÌ-Ù-?ë#k?è .q˜*.a "}ÀÀÀ"R þV h|²˜..Hex1.² _|»|h »˜_˜W.r˜*Xü ü ÿÿÿ"R .s˜*) GÝÿÿÿ"R þF «. t˜*f“ ÀÏ ÀÀÀ"R þV ×. u˜*f)ÏeÀÀÀ"R þV S/ €V/þ`/b1X <�"X <‚1Q¶<®1Q-<xÚ1€ œ2"v2Xœœœ2)»G}Ä2f3Àoð2fÉÏ]/Tank_1î26:þÆ (@à--ðThis ‹used only �Âthe setup phase €‘nÁrobots aroundà€�BUTTONDOWN locàä‡BEGINMOVEUNIT À, ‘‹ˆ²>äà‚Ç(ààà€�BUTTONSTILLDOWN À4àä‡CONTINUEMOVEUNIT ÀJ,‘‹ˆ²>äà‚Ì.ààà€�BUTTONUP Àeàä‡ENDMOVEUNIT Àv,‘‹ˆ²>äà‚Å"ààû‰;ˆ²Ï @Há0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP*48F^BUTTONDOWNHRBEGINMOVEUNIT·ªµ.Â1ªlocúƒ4**<@ªjBUTTONSTILLDOWN óCONTINUEMOVEUNIT·ªµ.Â1ªlocúƒ<T*04WBUTTONUPRÿENDMOVEUNIT·ªµ.Â1ªlocúƒ0u1x1pObjectEnergy1125«1 xÚ.Q6<�"R þº×1 yÚ.Q­<ø"R þº 2zÚ.€ œ�ÿ"R þú #ë?è22?ë#k?èO2{Ú.R2�"�ÀÀÀ"R þV h|²˜Z2W2Hexs2² _|»|h »˜_˜™2|Ú.Xÿÿÿ"R Á2}Ú.);Gýÿÿÿ"R þF í2 ~Ú.f³ÀïÀÀÀ"R þV 3 Ú.fIÏ…ÀÀÀ"R þV w3 z3G ² ¾VïÁ  ˆ3VïÁ  ´3¡+” dà3q£¡š4ÚW65Èû|Y…3tank help±3 ¯3G ² ¾€€€ R þ¾;;Ý3 3’I… ‚ÀÀÀ R þV 4 °3‡4bÁ¿ÿÿÿ ’4ª�4@SW[‡Æ ÿ €�BUTTONUPä�·�´"tank help"à‚Åààû‰ BUTTONUP'(<BUTTONUP:«tank helpÜ ª—4OKrÍ4 ±3ËuòTÿÿÿÚÐ4Ð.Õ4Ø4ý4 The Game of TankWarr=5 3¹mwÈû|Y@5Èû‡Yh5Èû|Ye5´5¹xwÿÿÀ R þZ›5 ³5¹mwÿÿÿ$:ž5HHHh&""£5®;¦5«;ò This is a game of cellular automata. The cells or units in this game are tanks on a battlefield, firing at each other. There are two sides. Red and Blue. There are two phases to the game, Setup and Combat. During the Setup phase each player positions his units and defines their behavior. When the battle starts the tanks advance, firing on the enemy. The battle continues until one side has no tanks left. The purpose of this game is to let you try out various survival strategies and combat formations for your tank force. The Units. Each unit is a tank. At the beginning each tank has 125 units of energy. This energy is diminished each time the tank is hit. A unit also has a behavior characteristic (property, for those who have already OD'ed on ToolBook) that governs how it moves. A move consists of the following: the tank moves forward, fires at the closest enemy tank, and then moves back. The net motion on each turn is always forward, but the ratio between the two types of motion is governed by the behavior, and can be Aggressive (moves forward a lot more than back), Moderate (forward some, then back some) or Conservative (moves forward some, then back almost as much. If a unit gets to the end of the field it reverses its motion. Shots. Each shot starts out with 75 units of energy, but the further a shot travels the less energy it has. When its energy reaches zero it explodes harmlessly. A hit diminishes the target's energy by the amount of energy it has left. left. å;':ü:ó:ó:%< Ð(<øYÀ Þª D’K<<ª D’K¬<¶ « ß9<Large explosionm<Îè;øYÀ Þÿ R þú ¹ D¡Kp<©<â¹ ;¼YŒ ƒQ +Ç ¡ J ÃK— | .¶ ô ¹ É È Å DÝ<Ïè;ò™ ¦ © ÿÿ R þ ¶ « ßà<%=[ ¦O ¶ õ ¦ ¶ { Ó{ ¥Z¨ áÕ ´N ß™ ðô g› ´| ð« " K e= Ìh=p3¹"ª D’K|=ª D’Kì=¶ « ßy=Small explosion­=Ê(=p3¹"ÿ R þú ¹ D¡K°=é=â¹ ;¼YŒ ƒQ +Ç ¡ J ÃK— | .¶ ô ¹ É È Å D>Ë(=8ÇIÓÿÿ R þ ¶ « ß >e>[ ¦O ¶ õ ¦ ¶ { Ó{ ¥Z¨ áÕ ´N ß™ ðô g› ´| ð« " K ë> î>eú>dD¥´æ5Ú" iZª5€šJ»Zª5¥@ZiŸV"€hZ¶_õ!ON[|® æ[¶¤ö FiC ¤QF¸j±¤oFTq¼¤ö!F,zV â6!÷>BrowseraDuy}eÆ 8$ª€�SHOWOBJECTä’4svBrowseActionääŠË €"Show ±{"ä‰"Click on �±{'s ID €‘ñ°Ê" Œ\è�ˆ�–"Browser message"à‚Ç_ààà€�PRINTFIELDä’4ËfääŠËk €"Print Field"ä‰"Æ^a °–'s ID €‘¦its ­" \èŒ�ˆ�–"ÍZà‚ÇEààà€�GETOBJECTSCRIPTä’4˺ääŠË¿ €"Get Script"ä‰"Ʊ�±{'s ID €work ’fÁU±Þ" \èŒ�ˆ�–"ͱàà‚ÌNààà€�ADJUSTPARAMSä’4ÚàäŠÚ €"Adjust Parameters"ä‰"Õ�±{'s ID €Â\’fÁ±°=" \èŒ�ˆ�–"Üà‚ÉRàà€�CLEARBROWSERFIELDSä�[�ˆ�–"Object ID"ä�[�ˆ�–"ıp"ä�[�ˆ�–"ı»"ä�[�ˆ�–"Ä)Bounds"ä�[�ˆ�–"browser Ôrä�[�ˆ�–"Ô…title"à‚Ïrá¿$F¤%^>l§6×ÂS„–É+qINTFIELDSHOWOBJECTGETOBJECTSCRIPTADJUSTPARAMSPRINTFIELDCLEARBROWSERFIELDSTm|ÌSHOWOBJECT~qê·ª«Show objectª[«Click on an object's ID to show itª«Browser messageÜ êÂ/ªsvBrowseActionY�mTTr‚ÒÑPRINTFIELD~qê·ª«Print Fieldª[«Click on a field's ID to print its textª«Browser messageÜ êÂ/ªsvBrowseActionY�r¨T~Ž©äGETOBJECTSCRIPT~qê·ª«Get Scriptª[«Click on an object's ID to work with its scriptª«Browser messageÜ êÂ/ªsvBrowseActionY�~üT‚’“ßADJUSTPARAMS~qê·ª«Adjust Parametersª[«Click on an object's ID to work with its boundsª«Browser messageÜ êÂ/ªsvBrowseActionY�‚Pº!¦¦v*CLEARBROWSERFIELDS_«Object IDÜ êÂ/ª_«Object nameÜ êÂ/ª_«Object propertiesÜ êÂ/ª_«Object BoundsÜ êÂ/ª_«browser messageÜ êÂ/ª_«Browser titleÜ êÂ/ªuDDJxDpBrowseHelpAJÆ This is the object browser. The four fields show the following information about the current page: Object ID The unique id of an object is shown. Object name If the object has a name it will appear here Object Properties The status of the following four properties is shown here; script, visible, userProperties, and layer. The first three are Yes/No flags, the layer is by number Object bounds The bounds of the object are shown. If an item in the list is negative, it will be surrounded by angle brackets. The following functions are available through the buttons on the browser. They all work the same way: first click on the function button to set the mode, then click on the object's line in the Object ID field. Get script An object's script can be printed, edited with a DOS text editor (you must set this up through the tools configuration menu first), or put into a field on the screen. Print field The text of a field can be printed. Show object An invisible object can be shown. Adjust Bounds/Vertices You can adjust the size and shape of an object without ungrouping. Other features. The black diamond in the upper right of the control panel is a move handle - click on it and you can drag the browser around. The small box in the upper left of the control panel is the go-away button, and a click there will remove the browser. The two black triangles over the bounds field are scroll buttons for all four fields.[J^Jpbrowsefieldnames—J6object id,object name,object properties,object bounds'K h>÷´æ5ÿ" »Zª5¥*K]†›ŸRK+CxszK®Æoð¢Kn}š9ÊK»êª5¥€L@ÆàÍbMÙÈf ÍPNÑo)\ôP¸ ÄóÍÚQ+ZuCOKøšJ™à×ù"R þºwKùšJg�´Í€€ÿ"R þ1ŸKúšJê «JÀÀ"R þ1ÇKûšJª×Ö“ÁÁÁ"R þ" L ÿšJ÷Dæ5ÿ"»êª5¥ LËêï 6L»ÿ3L ýÊKD+gÿÿÿ"R þF aaiL þÊKlLOu÷Yÿÿÿ&®tÐ}LBrowser message£L šJ¦L›´L| 'ÿÿÿ‚‚‚"TMú±LShow ObjQMH[_c›Æ1Nÿ.€�BUTTONUPä‡SHOWOBJECT €�´"browser"à‚Å àû‰ BUTTONUP34HBUTTONUPo–ÉSHOWOBJECT«browserÜ ª_MShow Obj…M šJˆM£˜M"¢ 'ÿÿÿ€€€"@Nú•MGet Script=NL_cg£Æ;bÿU€�BUTTONUPä‡GETOBJECTSCRIPT €�´"browser"à‚Å%àû‰ BUTTONUP88MBUTTONUPol§GETOBJECTSCRIPT«browserÜ ªMNGet Script—N šJ Ée¶"Ño)\šNÑy)>ÂNÆá¾´Oóáú¿NPN Óe˜ÁÁÁ"R þ" åN PNèN¯öNC ÿÿÿ‚‚‚"ªOúóNToolsHelp§OReim¯Æ $(D €�BUTTONUPä‡PUTHELP pBrowseHelp ˆ�´"Browser"à‚Å)ààû‰ BUTTONUP$>>QBUTTONUP²KPUTHELP«BrowserÜ ÐpBrowseHelpª±OHelp×O PNÚOñìOCMTÿÿÿ‚‚‚"âPúéOAdjust BoundsßPt‡‹�ñÆ%$ÿ€�BUTTONUPä‘Î"This feature ‹‘ximplemented yet."è�>€²4ä‡ADJUSTPARAMS €�´"Browser"à‚ÅMàû‰ BUTTONUP6^^—BUTTONUPb«This feature is not implemented yet.ª(o¿$ADJUSTPARAMS«BrowserÜ ªñPAdj Bnds/vertQ šJQ™,Qô /'ÿÿÿ€€€"ÊQú)QPrint Field ÇQFY]a™Æ#,Rÿ(€�BUTTONUPä‡PRINTFIELD €�´"browser"à‚Å û‰ BUTTONUP34HBUTTONUPo×ÂPRINTFIELD«browserÜ ª×QPrint Field!R šJg´±�"g´±�$Rg´±�ŠR}ÑQqRW„×8…WR ÚQg´±�ÁÁÁ"úZRÐÞ _RbR‡R Object Browser Control PanelÇR ÚQÐÊR}ÑQq"}ÑQqžS}ÑQq V¡ -(›S^z~‚ÐÆ  %ÿ&€�BUTTONDOUBLECLICKä‡BUTTONUP €�B"Dismiss Browser Control"à‚Î7ý BUTTONDOUBLECLICK JJiBUTTONDOUBLECLICKoû‰BUTTONUP«Dismiss Browser ControlÜ ªÁS ŠRËÄS}ÑQqÁÁÁ"”Vª‘Vh{ƒËÆ % €�BUTTONUPä’4svToolsNameä‘ZvThisBook, vStrlenäà--ðCheck €be sure we are ‘xdeleting ކour ’4tools °8䉑pˆŽ�8ŒÆN䉲€(ÆU) ŒvStrLenàà--ðÃO�¤the separator ‘‚colon starting †Á¢ä…i †Ä‡ €1 �H-1èƒ�Ri ˆÆ£ ‹"\" ‘‚�Ri ˆÆ² ‹":"ì�>¥è‚£ä‚¥äƒ�Vi + 1 €Äq ˆÆÒ ‹Èäè‘Î"You Á·�Âyour ’4ë�8- �¯€�,mode €delete ޱ{."è�>Ô'䂣䑿�´"Browser"䇰[à‚ÔAààû‰ BUTTONUPV,ÃBUTTONUP~??[²Âªê·ª[·¾ªê¶vStrLenª·ª ¬ª ¬¼ªìÿïÿóÿ)··Ç«\½á ··Ç«:½ª ÅÿÈÿÌÿÛÿ·¬½¶vStrLen·Ë·½ªSb«You are in your system tools book - go to author mode to delete this object.ª'j«BrowserÜ ª7Ócleari:byi:toivThisBookvStrlensvToolsName_ Vm¦ + æœê–�VButtonÅV ŠR…ÈV¡ -(ÿÿÿ"R þF OW:MQU…Æ3$: €�BUTTONUPä‡Å €‘‹ˆ±êà‚Åàû‰ BUTTONUP+,EBUTTONUPoû‰BUTTONUPµAêÂ1ªƒWÚQ¢†W„×8…"R þºÒi†,Z)ZHLP¢Æ [€�BUTTONDOWN locä’4svOldLocä䃳(²ú) ‹downè�>Ç(䂃ñ䊓o€7ä‰À+ ŒÅ)ä‡BUTTONSTILLDOWN ÀCà‚ÇRàà€�ÍÀOä’4ÅNà䃳(²ú) ‹ÁHè�>Ì0䂃ñä‘n�´"browser" �H�Ì1 ˆÀ‚ - �Ì1 ˆÅ†, \è�Ì2 ˆÀ— - �Ì2 ˆÅ›ä‰À¥ ŒÅ£à‚Ìwàà€�BUTTONUP À¼ä‡ÍŠÀÂ䊓o€defaultà‚Åû‰;²Ï vHá0DUTTONDOWNBUTTONSTILLDOWNBUTTONDOWNBUTTONUP„SfçBUTTONDOWN~¬¾ ·½ª'qêµ ª¬ª[·ªê·ª²ÏBUTTONSTILLDOWN·ªdownsvOldLoclocúƒaÈrXƽS„Øi|ë+BUTTONSTILLDOWN~¬¾ ·½ª'G«browserÜ ª¬·Ê¬·ʽ«,½¬·Ê¬·ʽ½ª[·ªê·ªdownsvOldLoclocúƒwÈrnƽi\67D`BUTTONUP²ÏBUTTONSTILLDOWN·ªqêµ ª·ªdefaultlocúƒ?ç37=Z7iÒÃ7†ÃeZh>¥ù’"ÚÁÁÁÿ""1ò ›Z h>ò¹1"©ÁÁÁ"®tžZHHHÐN)£Z¦ZK[ „Object Id Name Sc Vi P Ly Bounds �[ h>„[¸Xfÿÿÿ&*–[Ð^)“[Browser Title›[ž[ã[@015 Objects on page 1 of Book "C:\EGYPT\TANK.TBK"\ h>\Ã*\òþ2  ÿÿÿ"®tò_HHHÐÆ'\Object IDï_ÊÝáåÃÆ;€�BUTTONUP locä’4svBrowseActionä‘ZvThisObjectä䃳(²ú) ‹downè�>€²4ä‚£ä�­�Ì1 ˆ³•(ÀB)äƒ�Ê‹0è‰1 Œ°Ê䂣䉓–�ʈ�ˆ‘êŒÈJ àà--ðClear the hierarchy indicatorsä’c�š�RˆÈx ‹">"è�[�š�RˆÈ‡ä‚²cä°bä„Ë£ ‹"Get Script"è‡GETSCRIPTS2 Ȱä„ËÅ ‹"Print °–"胑{ˆÈÇ ‹‘x"°–" �\ì‘{ˆÈÙ ‹‘x"³J"ì‘Î"Can only ‘¦�ˆ�–‘‚³J."ì�>€²4è‚£è‡PRINTTEXT �ˆ×ä„Ú, ‹"Show ±{"è‘ñ×,ä„ÚB ‹"Adjust Parameters"è�>€²4芓�€²Pè‘ñ�´"Æ °´"è‡ADJUSTOBJECT ×q €�´"Æ8 °´"ä‚°bà‚Ô¥û‰ BUTTONUPv¦Ê…BUTTONUP~?¬¾ ·½ª(3¬·ÏtextFromPointʪ°¬½ª [¬ªê°ª[°µAÂ/ɪê·ª·ë>½ª _ê·êëÿ·«Get Script½ªžàGETSCRIPTS2·ª·«Print field½ªp·Â«field½ à·Â«recordField½ ª3b«Can only print text of field or recordField.ª(â»PRINTTEXT·Â/ª‚·«Show object½ª w·ªf·«Adjust Parameters½ªK(qêµ(ªñªw«Parameter groupÜ ªo¢ADJUSTOBJECT·ª«Parameter groupÜ ªdownvThisObjectsvBrowseActionlocúƒÆY�·)ø«ƽ¦÷_ú_ÿh ÷group id 736 >roundedrectangle id 735 >button id 172 >button id 198 >button id 199 group id 826 >roundedrectangle id 819 >roundedrectangle id 820 >irregularpolygon id 821 >polygon id 822 >roundedrectangle id 823 >roundedrectangle id 824 >line id 825 group id 882 >roundedrectangle id 874 >roundedrectangle id 875 >irregularpolygon id 876 >polygon id 877 >line id 878 >rectangle id 879 >roundedrectangle id 880 >roundedrectangle id 881 ellipse id 4 group id 1085 >roundedrectangle id 1078 >roundedrectangle id 1079 >irregularpolygon id 1080 >polygon id 1081 >roundedrectangle id 1082 >roundedrectangle id 1083 >line id 1084 group id 1094 >roundedrectangle id 1087 >roundedrectangle id 1088 >irregularpolygon id 1089 >polygon id 1090 >roundedrectangle id 1091 >roundedrectangle id 1092 >line id 1093 group id 1103 >roundedrectangle id 1096 >roundedrectangle id 1097 >irregularpolygon id 1098 >polygon id 1099 >roundedrectangle id 1100 >roundedrectangle id 1101 >line id 1102 group id 1112 >roundedrectangle id 1105 >roundedrectangle id 1106 >irregularpolygon id 1107 >polygon id 1108 >roundedrectangle id 1109 >roundedrectangle id 1110 >line id 1111 group id 1122 >roundedrectangle id 1114 >roundedrectangle id 1115 >irregularpolygon id 1116 >polygon id 1117 >line id 1118 >rectangle id 1119 >roundedrectangle id 1120 >roundedrectangle id 1121 group id 1132 >roundedrectangle id 1124 >roundedrectangle id 1125 >irregularpolygon id 1126 >polygon id 1127 >line id 1128 >rectangle id 1129 >roundedrectangle id 1130 >roundedrectangle id 1131 group id 1142 >roundedrectangle id 1134 >roundedrectangle id 1135 >irregularpolygon id 1136 >polygon id 1137 >line id 1138 >rectangle id 1139 >roundedrectangle id 1140 >roundedrectangle id 1141 group id 1152 >roundedrectangle id 1144 >roundedrectangle id 1145 >irregularpolygon id 1146 >polygon id 1147 >line id 1148 >rectangle id 1149 >roundedrectangle id 1150 >roundedrectangle id 1151 group id 778 >roundedrectangle id 687 >roundedrectangle id 776 >button id 688 >field id 689 >group id 777 >>rectangle id 692 >>field id 691 group id 208 >irregularpolygon id 206 >irregularpolygon id 207 group id 204 >irregularpolygon id 202 >irregularpolygon id 203 5i h>8i þ� ÿÿÿ"®tHiHHHhfEiObject nameMiPiµj`RControl Panel Tank Hex Tank Hex bullet Tank Hex Tank Hex Tank Hex Tank Hex Tank Hex Tank Hex Tank Hex Tank Hex tank help Large explosion Small explosion ëj h>îjíþ« ÿÿÿ"®tkHHHÐþ%kObject Properties k kQq@- N Y N 1 N Y N 1 Y Y N 1 Y Y N 1 Y Y N 1 Y Y Y 2 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 Y Y Y 3 N Y Y 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N N N 4 Y Y Y 5 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 Y Y Y 6 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 Y Y Y 7 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 Y Y Y 8 N Y N 1 N Y N 1 N Y N 1 N Y Y 1 N Y N 1 N Y N 1 N Y N 1 Y Y Y 9 N Y Y 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 Y Y Y 10 N Y Y 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 Y Y Y 11 N Y Y 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 Y Y Y 12 N Y Y 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N Y N 1 N N N 13 N N N 1 N N N 1 Y N N 1 N N N 1 N N N 1 N N N 1 N N N 1 N N N 14 N N N 1 N N N 1 N N N 15 N N N 1 N N N 1 ‡q h>Šqøþ2" ÿÿÿ"®tœqHHHÐn'™qObject Bounds¡q¤q)z€h1860,5595,7110,6210 1860,5595,7110,6210 3675,5685,5265,6150 1980,5685,3570,6150 5400,5685,6990,6150 800,800,1695,1565 800,950,1400,1025 800,1325,1400,1400 965,800,1625,1565 990,1030,1320,1314 1350,1090,1425,1150 1350,1195,1425,1255 975,985,1695,985 7000,800,7996,1565 7505,950,7996,1025 7505,1325,7996,1400 7040,800,7580,1565 7700,1025,7970,1309 7000,1180,7705,1180 7465,955,7495,1405 7270,1075,7360,1135 7270,1225,7375,1285 818,4963,953,5113 800,1600,1695,2365 800,1750,1400,1825 800,2125,1400,2200 965,1600,1625,2365 990,1830,1320,2114 1350,1890,1425,1950 1350,1995,1425,2055 975,1785,1695,1785 800,2400,1695,3165 800,2550,1400,2625 800,2925,1400,3000 965,2400,1625,3165 990,2630,1320,2914 1350,2690,1425,2750 1350,2795,1425,2855 975,2585,1695,2585 800,3200,1695,3965 800,3350,1400,3425 800,3725,1400,3800 965,3200,1625,3965 990,3430,1320,3714 1350,3490,1425,3550 1350,3595,1425,3655 975,3385,1695,3385 800,4000,1695,4765 800,4150,1400,4225 800,4525,1400,4600 965,4000,1625,4765 990,4230,1320,4514 1350,4290,1425,4350 1350,4395,1425,4455 975,4185,1695,4185 7000,1600,7996,2365 7505,1750,7996,1825 7505,2125,7996,2200 7040,1600,7580,2365 7700,1825,7970,2109 7000,1980,7705,1980 7465,1755,7495,2205 7270,1875,7360,1935 7270,2025,7375,2085 7000,2400,7996,3165 7505,2550,7996,2625 7505,2925,7996,3000 7040,2400,7580,3165 7700,2625,7970,2909 7000,2780,7705,2780 7465,2555,7495,3005 7270,2675,7360,2735 7270,2825,7375,2885 7000,3200,7996,3965 7505,3350,7996,3425 7505,3725,7996,3800 7040,3200,7580,3965 7700,3425,7970,3709 7000,3580,7705,3580 7465,3355,7495,3805 7270,3475,7360,3535 7270,3625,7375,3685 7000,4000,7996,4765 7505,4150,7996,4225 7505,4525,7996,4600 7040,4000,7580,4765 7700,4225,7970,4509 7000,4380,7705,4380 7465,4155,7495,4605 7270,4275,7360,4335 7270,4425,7375,4485 1095,525,8370,5310 1095,525,8370,5310 1170,585,8325,5250 5730,4545,7440,5055 1995,885,7410,1620 1465,1305,8045,4215 1465,1305,7800,4215 1465,1305,8045,4215 1528,1881,3008,3806 1528,1881,3008,3806 2034,2457,2726,3497 1136,51,1721,546 1136,51,1721,546 1336,199,1609,467 iz h>’ <r!`"’ <r!`lz• æh!Q‚|• Zh!Á�z,zÍ z• æh!Q"R þº• æh!Qr|o|ÌáåéÍÆ 9 T€�BUTTONDOWNä‘ZvThisField, vTheseFieldsä䃳(²ú) ‹downè�>€²4ä‚£ä‰pBrowseFieldNames ˆ�´Browser ŒÉA䊓�€²Pä…i †1 €°Í(ÉU)è�­"�–" & ‘¾& �Ìi ˆÉk & ±¾è�ő߈�Ê�H16䂥䊓�€�”ñà‚ǤàHá BUTTONDOWN2›È¾BUTTONDOWN??¬¾ ·½ª([·Ü ÐpBrowseFieldNamesªê·ªqêµ(ªñª¬ª ·¾ ª òÿöÿ.3«field «"½··Ê½«"½ª=°êª¬ªÆÿÊÿÖÿqêµ(ªñªi:toiBrowserdownvThisFieldvTheseFieldsfºįƽªN¢+ æœ›|h!æ• æÿ Q³|,z)¶|• Zh!Á"R þºY ,!gä~á~ú)Æ 9'!€�BUTTONDOWNä‘ZvThisField, vTheseFields,vScrollä䃳(²ú) ‹downè�>€²4ä‚£ä‰pBrowseFieldNames ˆ�´Browser ŒÉI䊓�€²Pä…i †1 €°Í(É])è�­"�–" & ‘¾& �Ìi ˆÉs & ±¾è‰‘߈�ÊŒÄuèƒÄy > 15ì�u‘߈�Ê�H16è°…ì�u‘߈�Ê�Hę肣è䂥䊓�€�”ñà‚ÇÒàHá BUTTONDOWN¤¾òaBUTTONDOWN???¬¾ ·½ª([·Ü ÐpBrowseFieldNamesªê·ªqêµ(ªñª¬ª ·¾ ª òÿöÿO3«field «"½··ʽ«"½ª[°Âªê·ª·¬½ª#°êª¬ª #°êª·ª¥ÿ©ÿµÿqêµ(ªñªi:toiBrowserdownvThisFieldvTheseFieldsvScroll[NêfÝÄÒÆ½ÍNÅ+Ãæœ¾ñ~,!gà Y g