amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator) (05/18/91)
Submitted-by: RWALLACE%vax1.tcd.ie@CUNYVM.CUNY.EDU Posting-number: Volume 91, Issue 116 Archive-name: games/battle-1.1/part01 [ includes uuencoded executable ...tad ] This program simulates an abstract battle between a number of players. Each player can be controlled by either the program or a human player typing instructions at the keyboard. The game works like this: Each player has a Strength value. During each game turn this increases by 1/16 of its previous value. The player also has an option to attack another player. This causes the attacker's strength to increase by 1/8 of its previous value and the victim's strength to decrease by 1/4 of the attacker's. Of course the victim or other players may retaliate. A player whose strength is reduced to zero dies. The winner is the last player left alive and the winner's name will be displayed when all other players are dead. #!/bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 1)." # Contents: battle.c battle.uu # Wrapped by tadguy@ab20 on Fri May 17 22:16:03 1991 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'battle.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'battle.c'\" else echo shar: Extracting \"'battle.c'\" \(8141 characters\) sed "s/^X//" >'battle.c' <<'END_OF_FILE' X/* XBattle v1.1 by Russell Wallace 21 August 1989 XDeveloped using Aztec C 3.6a compiled with 16-bit ints. X XThis program simulates an abstract battle between a number of players. Each Xplayer can be controlled by either the program or a human player typing Xinstructions at the keyboard. X XThe game works like this: XEach player has a Strength value. During each game turn this increases by X1/16 of its previous value. The player also has an option to attack another Xplayer. This causes the attacker's strength to increase by 1/8 of its Xprevious value and the victim's strength to decrease by 1/4 of the Xattacker's. Of course the victim or other players may retaliate. A player Xwhose strength is reduced to zero dies. The winner is the last player left Xalive and the winner's name will be displayed when all other players are Xdead. X XInformation about the players is contained in a file called players. XThis is a text file of which each line contains information about one player. XThe information should consist of the following fields separated by Xwhitespace and terminated by a linefeed: X XName XStrength XMorality XIrritability XLoyalty base XLoyalty percent XUnpredictability XRate of forgetting friends XRate of forgetting enemies X X(These are the fields defined in the player data structure) X XName is the name of the player. All other fields are long integers ranging Xfrom about -2000000000 to 2000000000 in whole number values only. X XStrength is the player's starting strength. X XAll following fields are relevant only to computer-controlled players. To Xdefine a player as being keyboard-controlled, simply give a negative value Xfor strength. This will be interpreted as a positive value except that any Xother information on the line will be ignored and during play the player's Xactions will be controlled by keyboard input. X XThe lower the figure for morality the less likely the player is to make Xunprovoked attacks on others. A zero means that attacks will be made if and Xonly if provoked, a figure greater than one means that unprovoked attacks Xwill be made. X XIrritability is a measure of how annoyed the player is likely to get at Xother players who attack it. X XLoyalty base and loyalty percent are measures of how likely the player is Xto retaliate against attacks on its friends or innocent bystanders. A Xloyalty percent of zero indicates total apathy in this regard. X XUnpredictability is a measure of how random and irrational the player's Xactions will be. X XRate of forgetting friends and rate of forgetting enemies are measures of Xhow fast the player will forget friendship or enmity towards other players. XZero values indicate that friendship and enmity are eternal unless cancelled Xby actions on the part of the other players. X XIf a player is controlled from the keyboard the name of the player will be Xdisplayed together with a : as a prompt for input. If you wish to attack Xanother player type the name of the other player, otherwise just press XRETURN. X XRecommended ways to play the game are between human players, between Xcomputer-controlled players designed by human players (a la COREWARS) or Xbetween a human and several computer-controlled players. X XThis program is in the public domain. X*/ X X#include <stdio.h> X#include <stdlib.h> X#include <string.h> X#include <math.h> X X#define MAXBUF 128 X Xtypedef struct relationstruct X{ X struct relationstruct *next; X struct playerstruct *pl; X long opinion; X} relation; X Xtypedef struct playerstruct X{ X struct playerstruct *next; X relation *rel; X char *name; X long str; X long moral; X long irritable; X long loyalbase; X long loyalpc; X long unpredict; X long forgetgood; X long forgetbad; X int keycontrol; X} player; X Xchar buf[MAXBUF]; XFILE *file; Xplayer *firstpl; Xint numpl,c; X Xvoid *alloc (int bytes) X{ X void *p=malloc (bytes); X if (!p) X { X printf ("ERROR - Out of memory\n"); X exit (20); X } X setmem (p,bytes,0); X return p; X} X Xvoid printstatus (void) X{ X player *p; X putchar ('\n'); X for (p=firstpl;p;p=p->next) X printf ("%s:\tstr=%ld\n",p->name,p->str); X putchar ('\n'); X} X Xlong readnum (void) X{ X int i=0; X do X c=fgetc (file); X while (c=='\t' || c==' '); X do X { X buf[i++]=c; X if (i>=MAXBUF) X { X printf ("ERROR - Number too long\n"); X exit (20); X } X c=fgetc (file); X } X while (c=='-' || (c>='0' && c<='9') ); X buf[i]=0; X return atol (buf); X} X Xrandom (int n) X{ X srand (*((short *)0xdff006)); X return rand (); X} X Xplayer *findplayer (char *s) X{ X player *p; X for (p=firstpl;p;p=p->next) X if (!strcmp (s,p->name)) X return p; X return 0; X} X Xvoid attack (player *source,player *dest) X{ X relation *r,*sourcer,*destr; X player *p; X printf ("%s attacks %s\n",source->name,dest->name); X source->str+=source->str >> 3; X dest->str-=source->str >> 2; X if (dest->str<=0) X { X printf ("%s dies\n",dest->name); X if (dest==firstpl) X firstpl=dest->next; X else X { X for (p=firstpl;p->next!=dest;p=p->next) X ; X p->next=dest->next; X } X for (p=firstpl;p;p=p->next) X { X if (dest==p->rel->pl) X p->rel=p->rel->next; X else X { X for (r=p->rel;r->next->pl!=dest;r=r->next) X ; X r->next=r->next->next; X } X } X numpl--; X if (numpl==1) X { X printf ("\n%s wins\n",firstpl->name); X exit (0); X } X } X else X { X for (r=dest->rel;r->pl!=source;r=r->next) X ; X r->opinion-=dest->irritable; X for (p=firstpl;p;p=p->next) X { X if (p!=source && p!=dest) X { X for (r=p->rel;r;r=r->next) X { X if (r->pl==source) X sourcer=r; X if (r->pl==dest) X destr=r; X } X sourcer->opinion-=(destr->opinion + p->loyalbase) * X p->loyalpc / 100; X } X } X } X} X Xvoid action (player *pl) X{ X player *targ=0; X long targop=0x7fffffff; X long n; X relation *r; X if (pl->keycontrol) X { XREDO: X printf ("%s: ",pl->name); X gets (buf); X if (strlen (buf)) X { X targ=findplayer (buf); X if (!targ) X { X printf ("Error - No such player\n"); X goto REDO; X } X if (targ==pl) X { X printf ("Error - You can't attack yourself\n"); X goto REDO; X } X attack (pl,targ); X } X } X else X { X for (r=pl->rel;r;r=r->next) X { X if (r->opinion>=0) X { X r->opinion-=pl->forgetgood; X if (r->opinion<0) X r->opinion=0; X } X else X { X r->opinion+=pl->forgetbad; X if (r->opinion>0) X r->opinion=0; X } X n=r->opinion + random (pl->unpredict + 1) - (pl->unpredict >> 1); X if (n<pl->moral && n<targop) X { X targop=n; X targ=r->pl; X } X } X if (targ) X attack (pl,targ); X } X pl->str+=pl->str >> 4; X} X X Xmain (int argc,char **argv) X{ X player *p=0,*q; X relation *r; X int i; X if (argc>1) X { X printf ("Battle v1.1 by Russell Wallace 21 August 1989\n\ XSee source code for details\n"); X return; X } X file=fopen ("players","r"); X if (!file) X { X printf ("ERROR - Can't open players file\n"); X exit (20); X } X for (;;) X { X i=0; X do X c=fgetc (file); X while (c==' ' || c=='\t' || c=='\n'); X do X { X buf[i++]=c; X if (i>=MAXBUF) X { X printf ("ERROR - Name too long\n"); X exit (20); X } X c=fgetc (file); X } X while (c!=' ' && c!='\t' && c!=EOF); X buf[i]=0; X if (c==EOF) X break; X q=alloc (sizeof (player)); X if (!firstpl) X firstpl=q; X if (p) X p->next=q; X p=q; X p->name=alloc (i+1); X strcpy (p->name,buf); X p->str=readnum (); X if (p->str>0) X { X p->moral=readnum (); X p->irritable=readnum (); X p->loyalbase=readnum (); X p->loyalpc=readnum (); X p->unpredict=readnum (); X p->forgetgood=readnum (); X p->forgetbad=readnum (); X } X else X { X p->str=-p->str; X p->keycontrol=1; X while (c!='\n' && c!=EOF) X c=fgetc (file); X } X numpl++; X } X fclose (file); X if (numpl<2) X { X printf ("ERROR - Need at least 2 players\n"); X exit (20); X } X for (p=firstpl;p;p=p->next) X { X r=0; X q=firstpl; X for (i=0;i<numpl;i++) X { X if (q!=p) X { X if (r) X r=r->next=alloc (sizeof (relation)); X else X p->rel=r=alloc (sizeof (relation)); X r->pl=q; X } X q=q->next; X } X } X do X { X printstatus (); X for (p=firstpl;p;p=p->next) X action (p); X } X while (1); X} END_OF_FILE if test 8141 -ne `wc -c <'battle.c'`; then echo shar: \"'battle.c'\" unpacked with wrong size! fi # end of 'battle.c' fi if test -f 'battle.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'battle.uu'\" else echo shar: Extracting \"'battle.uu'\" \(14127 characters\) sed "s/^X//" >'battle.uu' <<'END_OF_FILE' Xbegin 644 battle XM```#\P`````````#``````````(```D,````[0````$```/I```)#$[Z#=Y.` XM5?_\2.<``"\M``A.NA]"6$\K0/_\2JW__&8``!9(>@`P3KH*?%A/2'@`%$ZZ* XM(<A83T*G+RT`""\M__Q.N@V"3^\`#"`M__Q,WP``3EU.=4524D]2("T@3W5TE XM(&]F(&UE;6]R>0H``$Y5__Q(YP``2'@`"DZZ"E!83RML@LK__&````H@;?_\H XM*U#__$JM__QG```@(&W__"\H``P@;?_\+R@`"$AZ`!Y.N@GV3^\`#'@`D XM"DZZ"@Y83TS?``!.74YU)7,Z"7-T<CTE;&0*``!.5?_\2.<``$*M__PO+(+.\ XM3KH)'EA/*4""T@RL````"8+29^@,K````"""TF?>("W__%*M__Q![(+6$:R"N XMU0@`#*T```"`__QM```62'H`7DZZ"7Q83TAX`!1.NB#(6$\O+(+.3KH(REA/_ XM*4""T@RL````+8+29[8,K````#""TFT```P,K````#F"TF^@("W__$'L@M9"K XM,`@`2&R"UDZZ"YY83TS?``!.74YU15)23U(@+2!.=6UB97(@=&]O(&QO;F<*A XM``!.50``2.<``#!Y`-_P!B\(3KH+YEA/3KH+Z$S?``!.74YU3E7__$CG```KS XM;(+*__Q@```*(&W__"M0__Q*K?_\9P``*"!M__PO*``(+RT`"$ZZ$HQ03TJ`V XM9@``#B`M__Q,WP``3EU.=6#*<`!@\DY5__!(YP``(&T`#"\H``@@;0`(+R@`F XM"$AZ`BQ.N@A\3^\`#"!M``C1_`````PB;0`(("D`#.:`T9`@;0`,T?P````,A XM(FT`""`I``SD@)&0(&T`#$JH``QN``$`(&T`#"\H``A(>@'O3KH(,%!/(&T`- XM#+'L@LIF```.(&T`#"E0@LI@```N*VR"RO_P8```"B!M__`K4/_P(&W_\"!0C XML>T`#&<```1@Z"!M``PB;?_P(I`K;(+*__!@```*(&W_\"M0__!*K?_P9P``5 XM8B!M__`@:``$(FT`#+/H``1F```6(&W_\"!H``0B;?_P(U``!&```#@@;?_PQ XM*V@`!/_\8```"B!M__PK4/_\(&W__"!0(&@`!+'M``QG```$8.0@;?_\(%`BQ XM;?_\(I!@D%.L@U8,K`````F8``!P@;(+*+R@`"$AZ`1A.N@=04$]"ITZZW XM'IY83V```.8@;0`,*V@`!/_\8```"B!M__PK4/_\(&W__"!H``2Q[0`(9P``= XM!&#F(&W__%"((FT`#"`I`!21D"ML@LK_\&````H@;?_P*U#_\$JM__!G``"4& XM(&W_\+'M``AG``"$(&W_\+'M``QG``!X(&W_\"MH``3__&````H@;?_\*U#_, XM_$JM__QG```P(&W__"!H``2Q[0`(9@``""MM__S_^"!M__P@:``$L>T`#&8`; XM``@K;?_\__1@PB!M__A0B")M__0@*0`((FW_\-"I`!@B;?_P(BD`'$ZZ']!R\ XM9$ZZ&7B1D&``_V!,WP``3EU.=25S(&%T=&%C:W,@)7,*`"5S(&1I97,*``HEQ XM<R!W:6YS"@!.5?_P2.<``$*M__PK?'______^"!M``A*J``L9P``>B!M``@O[ XM*``(2'H!<DZZ!@103TAL@M9.N@626$](;(+63KH5^EA/2H!G``!*2&R"UDZZ! XM_/I83RM`__Q*K?_\9@``#DAZ`3U.N@7*6$]@LB!M__RQ[0`(9@``#DAZ`3U.I XMN@6R6$]@FB\M__PO+0`(3KK]"%!/8```Z"!M``@K:``$__!@```*(&W_\"M0] XM__!*K?_P9P``M"!M__!*J``(;0``*B!M__!0B")M``@@*0`DD9`@;?_P2J@`D XM"&P```H@;?_P0J@`"&```"8@;?_P4(@B;0`(("D`*-&0(&W_\$JH``AO```*> XM(&W_\$*H``@@;0`((&@`(%*(+PA.NOP.6$\@;?_PT*@`""!M``@B*``@XH&0C XM@2M`__0@;0`(("W_]+"H`!!L```>("W_]+"M__AL```2*VW_]/_X(&W_\"MH) XM``3__&``_T!*K?_\9P``$"\M__PO+0`(3KK\'E!/(&T`"-'\````#")M``@@H XM*0`,Z(#1D$S?``!.74YU)7,Z(`!%<G)O<B`M($YO('-U8V@@<&QA>65R"@!%, XM<G)O<B`M(%EO=2!C86XG="!A='1A8VL@>6]U<G-E;&8*`$Y5__!(YP``0JW_& XM_`RM`````0`(;P``%$AZ`O!.N@0X6$],WP``3EU.=4AZ`S%(>@,E3KH%9%!/I XM*4""SDJL@LYF```62'H#&4ZZ!`Q83TAX`!1.NAM86$]"K?_P+RR"SDZZ`U980 XM3RE`@M(,K````"""TF?H#*P````)@M)GW@RL````"H+29]0@+?_P4JW_\$'L) XM@M81K(+5"``,K0```(#_\&T``!9(>@+83KH#JEA/2'@`%$ZZ&O983R\L@LY.C XMN@+X6$\I0(+2#*P````@@M)G```8#*P````)@M)G```,#*S_____@M)FGB`MD XM__!![(+60C`(``RL_____X+29P`!&DAX`#!.NOBN6$\K0/_X2JR"RF8```@IX XM;?_X@LI*K?_\9P``"B!M__P@K?_X*VW_^/_\("W_\%*`+P!.NOAX6$\@;?_\- XM(4``"$AL@M8@;?_\+R@`"$ZZ%_Q03TZZ^2H@;?_\(4``#"!M__Q*J``,;P``K XM6DZZ^1(@;?_\(4``$$ZZ^08@;?_\(4``%$ZZ^/H@;?_\(4``&$ZZ^.X@;?_\; XM(4``'$ZZ^.(@;?_\(4``($ZZ^-8@;?_\(4``)$ZZ^,H@;?_\(4``*&```$@@N XM;?_\("@`#$2`(&W__"%```P@;?_\(7P````!`"P,K`````J"TF<``!X,K/__8 XM__^"TF<``!(O+(+.3KH!L%A/*4""TF#84JR#5F``_D`O+(+.3KH4?%A/#*P`B XM```"@U9L```62'H!94ZZ`B!83TAX`!1.NAEL6$\K;(+*__Q@```*(&W__"M0I XM__Q*K?_\9P``?D*M__0K;(+*__A"K?_P8```!E*M__`@+?_PL*R#5FP``%@@5 XM;?_XL>W__&<``$)*K?_T9P``&DAX``Q.NO<<6$\@;?_T((`K0/_T8```&$AX5 XM``Q.NO<$6$\K0/_T(&W__"%```0@;?_T(6W_^``$(&W_^"M0__A@FF``_W9.= XMNO="*VR"RO_\8```"B!M__PK4/_\2JW__&<```XO+?_\3KK[)EA/8.1@U&``? XM_1I"871T;&4@=C$N,2!B>2!2=7-S96QL(%=A;&QA8V4@,C$@075G=7-T(#$Y= XM.#D*4V5E('-O=7)C92!C;V1E(&9O<B!D971A:6QS"@!P;&%Y97)S`'(`15)26 XM3U(@+2!#86XG="!O<&5N('!L87EE<G,@9FEL90H`15)23U(@+2!.86UE('1OR XM;R!L;VYG"@!%4E)/4B`M($YE960@870@;&5A<W0@,B!P;&%Y97)S"@!(YP`@U XM)&\`""`*9P9*:@`,9@AP_TS?!`!.=2!2L>H`!&0*(%)2DG``$!!@Z"\*3KH`O XMS%A/8-Y(YR`P)F\`$"1+(&R!"+'L@0QD#B!L@0A2K($(<``0$&`*2&R!"$ZZ0 XM`)Y83R0`#(#_____9Q`,@@````IG"!2"($I2BF#$#(+_____9A2URV<(""P`6 XM`8$59@AP`$S?#`1.=4(2(`M@]$CG("!![P`0)$@O"B\O`!!(;($>3KH+$"0`B XM(`)/[P`,3-\$!$YU2.<@`"0O``@@;($>L>R!(F00(&R!'E*L@1X0@G``$`)@G XM$'``$`(O`$AL@1Y.NA!,4$],WP`$3G5(YS`P)&\`%"`*9Q9P`#`J``PF`&<,5 XM"`,`"F8&"`,``V<(</],WPP,3G4@4K'J``1E``"F2JH`"&8(+PI.NA,@6$\P$ XM*@`,`D``H&<P0>R!""9(<``P*P`,`H```$`@#(```$`@9@@O"TZZ#U183]?\% XM````%D'L@L"WR&76($K1_`````PP$`)`K_\P@"\J`!`O*@`($"H`#DB`2,`OS XM`$ZZ"#XD`$_O``QN($J"9@1P`F`"<`0@2M'\````#'(`,A"`@3"`</]@`/]<: XM)*H`""!"T>H`""5(``0@4E*2<``0$&``_T)(>/__3KH`[B\`+R\`$"\O`!!.` XMN@`(3^\`$$YU2.<\,BQO`"`D;P`D)F\`*"@O`"PF/```!``0$DB`2,`J``R`P XM````<F8.)#P``!``)CP```(`8"@,A0```'=F""0\```3`6`8#(4```!A9@@DH XM/```&0%@"'``3-],/$YU4HH0$DB`#$``*V8,$"H``4B`#$``8F<,$!)(@`Q`M XM`&)F"E**",,`!`B"``P0$DB`#$``*V8:(`((@```)``(P@`!(`,"@/__^?\F. XM``C#``L@#F<,+P(O#DZZ!5`H`%!/2H1ME`R$````%&R,%T0`#C=#``P@"V""P XM2.<`($'L@0@D2$IJ``QG&-7\````%D'L@L"UR&8(<`!,WP0`3G5@XD)J`!1"7 XMDD*J``1"J@`((`I@YDCG,"`D;P`0$!)(@`Q``"!G"A`22(`,0``)9@12BF#H< XM=@`0$DB`#$``+68&=@%2BF`,$!)(@`Q``"MF`E**=`!@&'(*(`).NA:N$AI(S XM@4C!T($D``2"````,!`22(!![(`'$#```$B`"````F;42H-G!B`"1(!@`B`"# XM3-\$#$YU*6\`!(`"3G4B/$'&3FT@+(`"3KH68@:````P.2E`@`(@+(`"<A#B9 XMJ`*```!__TYU(&\`!$SO``,`"&`"$,%1R/_\!(```0``:O).=2I/87)#[(+*V XM1>R"RK7)9@XR/``Z:PAT`"+"4<G__"E/@UHL>``$*4Z#7DCG@(`(+@`$`2EG& XM$$OZ``A.KO_B8`9"I_-?3G-#^@`B3J[^:"E`@V)F#"X\``.`!TZN_Y1@!BI/_ XM3KH`&E!/3G5D;W,N;&EB<F%R>0!)^0``?_Y.=4CG`"!(YP`"(CP``0``,"R"L XMP,'\``8L;(->3J[_.DS?0``I0(-F9AY(YP$&F\TN/``!```L;(->3J[_E$S?N XM8(`N;(-:3G4@;(-F0F@`!"!L@V8Q?``!`!`@;(-F,7P``0`*(&R#6B`L@UJ0_ XMJ``$4(`I0(-J(&R#:B"\34%.6$CG``*3R2QL@UY.KO[:3-]``"1`2JH`K&<\' XM+R\`#"\O``PO"DZZ`0PI?`````&#;B!L@V98B#`0`$"``#"`(&R#9M'\````` XM"C`0`$"``#"`3^\`#&!J2.<``B!*T?P```!<+&R#7DZN_H!,WT``2.<``B!*+ XMT?P```!<+&R#7DZN_HQ,WT``*4"#<B!L@W)*J``D9R9(YP`"(&R#<B!H`"0B5 XM$"QL@V).KO^"3-]``"\L@W(O"DZZ!0Q03REL@W*#=DCG``(L;(-B3J[_RDS?7 XM0``@;(-F((!(YP`"+&R#8DZN_\1,WT``(&R#9B%```9G)$CG(`(D/````^U!V XM^@`T(@@L;(-B3J[_XDS?0`0@;(-F(4``#"\L@W8O+(-Z3KKV5%!/+P!.NA'X@ XM6$],WP0`3G4J`$CG.#(F+P`<*"\`("9O`"0@0TJH`*QG%"!#("@`K.6`+$`@! XM+@`0Y8`D0&`$)&R"PA`22(!(P-"$5(`I0(-^2.<``G(`("R#?BQL@UY.KO\ZA XM3-]``"E`@X)F!DS?3!Q.=1`22(!(P"0`+P(@2E*(+P@O+(."3KH%%DAZ`4H@- XM0M'L@X(O"$ZZ#PXO!"\++RR#@DZZ`30@;(."0C`H`"E\`````8-Z)$+5[(."D XM4HHF2D_O`"`0$DB`2,`D``R`````(&<@#((````)9Q@,@@````QG$`R"````H XM#6<(#((````*9@12BF#,#!(`(&UV#!(`(F8J4HH0&DB`2,`D`&<<%L(,@@``: XM`")F$`P2`")F!%**8`9"*___8`)@VF`X$!I(@$C`)`!G+`R"````(&<D#((`; XM```)9QP,@@````QG%`R"````#6<,#((````*9P06PF#*0AM*@F8"4XI2K(-Z= XM8`#_4D(32.<``G(`("R#>N6`6(`L;(->3J[_.DS?0``I0(-V9@A"K(-Z8`#^A XMT'0`)&R#@F`:(`+E@"!L@W8AB@@`+PI.N@C\U<!2BEA/4H*TK(-Z;>`@`N6`T XM(&R#=D*P"`!@`/Z8(`!,[P,```0@""(O``Q*&&;\4X@0V5?)__P$@0`!``!JO XM\D(@3G4O+P`(2'@#`2\O``QA!D_O``Q.=4CG/C(L;P`D*"\`*$ZZ#VPF;(-FZ XM=`!@$'(&(`).NA'@2K,(`&<04H(P;(+`L<)NZ'8(8``!3@@$``EG7DCG(`)TZ XM_R(O``0L;(-B3J[_K$S?0`0J`&=$2.<``B(%+&R#8DZN_Z9,WT``2.<``B(7' XM+&R#8DZN_[A,WT``2H!F'$CG``(L;(-B3J[_?$S?0``F``R`````S68``.I(. XMYR`")#P```/M(B\`!"QL@V).KO_B3-]`!"1`(`IF``"D"`0`"&8&=@%@``"\B XM2.<@`B0\```#[B(O``0L;(-B3J[_XDS?0`0D0$J`9A9(YP`"+&R#8DZN_WQ,; XMWT``)@!@``"&2.<``G`A0_H`P"QL@UY.KOW83-]``"P`9Q1(YP`"(D8L;(->8 XM3J[^8DS?0`!@,$CG,`)V`4'Z`)XD""(*+&R#8DZN_]!,WT`,2.<P`G;_=``B+ XM"BQL@V).KO^^3-]`#&`P(`0"@```!0`,@```!0!F($CG``(B"BQL@V).KO_<Z XM3-]``'8%*4.#AG#_3-],?$YU<@8@`DZZ$&HGB@@`<@8@`DZZ$%XWA`@$"`0`X XM"V<62.<P`G8!=``B"BQL@V).KO^^3-]`#"`"8,)D;W,N;&EB<F%R>0```$CG) XM,"`D+P`03KH-G'(&(`).NA`8)$#5[(-F2H)M##!L@L"QPF\$2I)F$"E\````\ XM`X.&</],WP0,3G4P*@`$2,`"@`````,,@`````%F#"E\````!H.&</]@VDCGO XM,`(F+P`D)"\`("(2+&R#8DZN_]9,WT`,)@`,@/____]F&$CG``(L;(-B3J[_L XM?$S?0``I0(.&</]@GB`#8)I,[P,```2SR&<,<``0&+`95LC_^F8$<`!.=6,$/ XM<`%.=7#_3G5(YS`R+&\`&$CG``)P`$/Z`-8L;(->3J[]V$S?0``I0(.*9@9,! XMWTP,3G5(YP`"(&\`("!H`"0@:``$+&R#BDZN_[),WT``)$!*@&=^2.<``D/Z0 XM`*$@:@`V+&R#BDZN_Z!,WT``)`!G4$CG(`(D/````^TB%RQL@V).KO_B3-]`& XM!"9`2H!G,B`+Y8`F`"!#+6@`"`"D+4L`G$CG(`(D/````^U!^@!6(@@L;(-B4 XM3J[_XDS?0`0M0`"@2.<``B!*+&R#BDZN_Z9,WT``2.<``B)L@XHL;(->3J[^D XM8DS?0`!"K(.*8`#_0&EC;VXN;&EB<F%R>0!724Y$3U<`*@!,[P,```0@""(OP XM``Q@`A#95\G__&<,!($``0``:O!.=4(84<G__`2!``$``&KR3G5.5?WT2.<_> XM,B9M``@L;0`0?@`D;0`,%A)F"B`'3-],_$Y=3G52B@P#`"5G0B0'(%.QZP`$H XM9`P@4U*3$(-P`!`#8`YP`!`#+P`O"TZZ!2Y03PR`_____V<`!&12@A829@0@O XM`F"X4HH,`P`E9L(N`G@`*WP````@__P6&G``$`-@9@C$``!@\@C$``%@[`C$X XM``)@Y@C$``-@X%B.)"[__$J";`8(Q```1((6&F!6*WP````P__QT`&`8(`+G' XM@'(`$@/0@=""T((D``2"````,!8:<``0`T'L@`<0,```2(`(```"9M1@'`1`) XM`"!GH%=`9Z)?0&>D4T!GCE5`9X170&>L8+(K0O_X)#P``'W&#`,`+F9<%AH,W XM`P`J9A18CB0N__Q*@FP&)#P``'W&%AI@,'0`8!@@`N>`<@`2`]"!T(+0@B0`0 XM!((````P%AIP`!`#0>R`!Q`P``!(@`@```)FU`R"``!]QF<(*WP````@__PJ5 XM`@P#`&AF!@C$``=@%@P#`&QF!@C$``9@"@P#`$QF!@C$``@6&BM*``QP`!`#@ XM8``!CF```QH(!``'9PI8CB!N__PPAV`8"`0`!F<*6(X@;O_\((=@"%B.(&[_" XM_""'=`!@``&H6(XD;O_\+PI.N@,()``,A0``?<983V<&M(5O`B0%8``!AEB.+ XM%B[__T'M_?@D2!"#=`%@``%R=`A@$`!$`$AV>'008`8(Q``$=`H,`P!89@A!@ XM^@*>(`A@!D'Z`J<@""M`_?0(!``&9PA8CBPN__Q@%`@$``1G"%B.+"[__&`&@ XM6(XL+O_\"`0`!&<*2H9L!D2&",0`!4'M__@D2`R%``!]QF8">@%*AF8$2H5G1 XM'"("(`9.N@6L(&W]]!4P"``B`B`&3KH%J"P`9N1![?_XD<HD"`@$``-G;@P#^ XM`&]F%$J"9PH,$@`P9PBTA6T$*@)2A6!4#`,`>&<&#`,`6&9(2H)G1`P2`#!GY XM/K2%;!!![?WZL<ID"!4\`#!2@F#L"`0``&8<#*T````P__QF$B`"5("PK?_X4 XM;`@J+?_X585@RA4#%3P`,%2"M(5L$$'M_?BQRF0(%3P`,%*"8.Q@3`1``"5G1 XM`/[(!$``,V<`_M@$0``+9P#^LE-`9P#^SEM`9P#^R%M`9P#^4%-`9P#^KE-`W XM9P#^K%=`9P#^;%5`9P#^KE=`9P#^H&``_BH(!``$9R@(!``%9P85/``M8!H(B XM!``!9P85/``K8`X(!``"9P85/``@8`)3@E*"WH((!```9@``D`RM````,/_\9 XM9D((!``$9SPP!`)``"9G-"!3L>L`!&0.(%-2DQ":<``0*O__8`YP`!`:+P`OG XM"TZZ`9)03PR`_____V<``,A3K?_X4X)@-"!3L>L`!&00(%-2DQ"M__]P`!`MC XM__]@$'``$"W__R\`+PM.N@%84$\,@/____]G``".4H<@+?_X4ZW_^+"";L`J= XM`B`"4X)*@&<N(%.QZP`$9`X@4U*3$)IP`!`J__]@#G``$!HO`"\+3KH!$E!/R XM#(#_____9TA@R@@$``!G/"0%8"P@4['K``1D#B!34I,0O``@<`!P(&`,2'@`Z XM("\+3KH`W%!/#(#_____9Q)2AR`M__A3K?_XL()NR&``^UAP_V``^UPP,3(SY XM-#4V-S@Y04)#1$5&`#`Q,C,T-38W.#EA8F-D968`(&\`!"`(2AAF_%-(D<`@) XM"$YU2.<`("1O``@@"F9$0>R!""1(2FH`#&<F,"H`#`)``@AF'$AX__\O"DZZK XM`%H,@/____]03V8(</],WP0`3G75_````!9![(+`M<AEQG``8.A(>/__+PI.+ XMN@`L4$]@VDCG`"!![($()$@O"DZZ`;Y83]7\````%D'L@L"UR&7J3-\$`$YUK XM2.<\("1O`!@H+P`<(`IG``&0-"H`#&<``8@(`@`)9@`!@`@"``-F``%X($K1& XM_`````PP$`)`[_TP@$JJ``AF'`R$_____V8(<`!,WP0\3G4O"DZZ`L@T*@`,Q XM6$\(`@`.9C0@4K'J``AC'DAX``$@$I"J``0O`!`J``Y(@$C`+P!.N@1,3^\`L XM#"2J``@@:@`0T=(E2``$#(3_____9@1V`&`"%@0@$I"J``@J`#`"`D``H&=.? XM#(3_____9R(@4E*2$(,@2M'\````##`0",``#C"`-`!!^O\$*4B#CE*%#(3_A XM____9PP,`P`*9P:ZJ@`0901X_V`,)5(`!'``$`-@`/]*"`(`#F<P2H5G'"\%2 XM+RH`"!`J``Y(@$C`+P!.N@1VL(5/[P`,9EX@2M'\````##`0"(``#C"`#(3_% XM____9A(DJ@`()6H`"``$<``0`V``_OI!^OZ&*4B#CB!*T?P````,,!`(P``.; XM,(`DJ@`((&H`$-'2)4@`!"!24I(0@W``$`-@`/[&($K1_`````PP$`C```(P! XM@"5J``@`!"2J``AP_V``_J9.5?_V2.<X("1M``AT`"`*9P9*:@`,9@IP_TS?Q XM!!Q.74YU""H``0`,9@HO"DZZ_:B$@%A/$"H`#DB`2,`O`$ZZ!HB$@`@J````A XM#5A/9PHO*@`(3KH!EEA/2FH`%&=.2'H`:DAM__=.N@)0."H`%'8`4$]P`#`$I XM<@I.N@!\!H`````P<@>2@T'M__<1@!@`2,2)_``*4H,,@P````5MU$(M__](+ XM;?_W3KH#$EA/0I)"J@`$0JH`"$)J``Q*@F<&</]@`/]8<`!@`/]25$U0`$CGW XM2`!"A$J`:@1$@%)$2H%J!D2!"D0``6$^2D1G`D2`3-\`$DJ`3G5(YT@`0H1*: XM@&H$1(!21$J!:@)$@6$:(`%@V"\!81(@`2(?2H!.=2\!808B'TJ`3G5(YS``N XM2$%*068@2$$V`30`0D!(0(##(@!(0#("@L,P`4)!2$%,WP`,3G5(028!(@!") XM04A!2$!"0'0/T(#3@;:!8@22@U)`4<K_\DS?``Q.=4CG("`D;P`,=$$0*@`.0 XM2(!(P"\`3KH!.DJ`6$]G`G0A)7P```0``!!(>`0`3KH`QB5```A83V88)7P`K XM```!`!`@2M'\````#R5(``@T/`"`($K1_`````QP`#`0,@)(P8"!,(`E:@`(T XM``0DJ@`(3-\$!$YU2.<`,)?+)&R#DF`0($I0B")O``RSR&<.)DHD4B`*9NQ,C XMWPP`3G4@"V<$)I)@!"E2@Y)(YP`"("H`!%"`(DHL;(->3J[_+DS?0`!@U$CG; XM`#`D;(.28!PF4DCG``(@*@`$4(`B2BQL@UY.KO\N3-]``"1+(`IFX$*L@Y),_ XMWPP`3G5(YR`@)"\`#$J"9@AP`$S?!`1.=4CG``)R`"`"4(`L;(->3J[_.DS?* XM0``D0$J`9@1P`&#:0?K_EBE(@Y8DK(.2)4(`!"E*@Y(@"E"`8,!,[P,```0@P XM"!#99OQ.=4CG("`D+P`,<@8@`DZZ!$PD0-7L@V9*@FT,,&R"P+'";P1*DF80_ XM*7P````#@X9P_TS?!`1.=4CG``)R!B`"3KH$&B!L@V8B,`@`+&R#8DZN_RA," XMWT``2H!G!'`!8`)P`&#.2.<P("0O`!!.N@%J<@8@`DZZ`^8D0-7L@V9*@FT,X XM,&R"P+'";P1*DF80*7P````#@X9P_TS?!`Q.=4CG,`(@+P`D4X`F`"0O`"`B6 XM$BQL@V).KO^^3-]`#"8`#(#_____9AA(YP`"+&R#8DZN_WQ,WT``*4"#AG#_< XM8+I(YS`"=@!T`"(2+&R#8DZN_[Y,WT`,8*)(YP`"(B\`""QL@V).KO^X3-]`M XM`$J`9AA(YP`"+&R#8DZN_WQ,WT``*4"#AG#_3G5P`&#Z2.<P("0O`!!.N@"D4 XM<@8@`DZZ`R`D0-7L@V9*@FT,,&R"P+'";P1*DF80*7P````#@X9P_TS?!`Q.7 XM=3`J``0"0``#9@PI?`````:#AG#_8.0(*@`#``1G%DCG,`)V`70`(A(L;(-BD XM3J[_ODS?0`Q(YS`")B\`)"0O`"`B$BQL@V).KO_03-]`#"8`#(#_____9AA(D XMYP`"+&R#8DZN_WQ,WT``*4"#AG#_8(H@`V"&2.<@`$CG``(B/```$`!P`"QL2 XM@UY.KO[.3-]``"0`"```#&<22JR#;F8((`),WP`$3G5.N@`&<`!@\DCG,`)V5 XM!$'Z`"XD""\#+P(L;(-B3J[_Q"(`)!\F'RQL@V).KO_03-]`#$AX``%.N@`*T XM6$].=5Y#"@!*K(.:9Q0@;(.:(&@`!$Z0(&R#FBE0@YI@YDJL@XYG!B!L@XY.: XMD"\O``1.N@`&6$].=4CG,``F+P`,2JR#9F<R=`!@"B\"3KH!<%A/4H(P;(+`# XML<)N[DCG``(P+(+`P?P`!B)L@V8L;(->3J[_+DS?0`!*K(.69P8@;(.63I!*N XMK(+&9Q1(YP`"(BR"QBQL@V).KO^F3-]``$JL@YYG""!L@YX@K(.B2JR#IF<4] XM2.<``B)L@Z8L;(->3J[^8DS?0`!*K(.J9Q1(YP`"(FR#JBQL@UY.KOYB3-]`R XM`$JL@ZYG%$CG``(B;(.N+&R#7DZN_F),WT``2JR#LF<42.<``B)L@[(L;(->E XM3J[^8DS?0`!(YP`&+'@`!`@N``0!*6<02_H`"$ZN_^)@!D*G\U].<RI?2JR#- XM<F8\2JR#@F<T2.<``B`L@WXB;(."+&R#7DZN_RY,WT``2.<``B`L@WKE@%B`_ XM(FR#=BQL@UY.KO\N3-]``&`D2.<``BQL@UY.KO]\3-]``$CG``(B;(-R+&R#S XM7DZN_H9,WT``2.<``B)L@V(L;(->3J[^8DS?0``@`RYL@UI.=4S?``Q.=4CGS XM("`D+P`,<@8@`DZZ`$HD0-7L@V9*@FT,,&R"P+'";P1*DF80*7P````#@X9P5 XM_TS?!`1.=3`J``0"0(``9A)(YP`"(A(L;(-B3J[_W$S?0`!"DG``8-A(YW``, XM-`'$P"8!2$/&P$A#0D/4@TA`P,%(0$)`T(),WP`.3G4``````^P````!````I XM`0``#E@````````#\@```^H```"R`````0`@("`@("`@("`P,#`P,"`@("`@L XM("`@("`@("`@("`@()!`0$!`0$!`0$!`0$!`0$`,#`P,#`P,#`P,0$!`0$!`H XM0`D)"0D)"0$!`0$!`0$!`0$!`0$!`0$!`0$!0$!`0$!`"@H*"@H*`@("`@("2 XM`@("`@("`@("`@("`@)`0$!`(```````````````````````````````````\ XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM``````````````````````````````````(````````!````````````````# XM```$``$``````0``````````````````!``"``````$`````````````````- XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` X=`````!0``````````````_(```/K`````0```_(`M X`` Xend Xsize 10064 END_OF_FILE if test 14127 -ne `wc -c <'battle.uu'`; then echo shar: \"'battle.uu'\" unpacked with wrong size! fi # end of 'battle.uu' fi echo shar: End of archive 1 \(of 1\). cp /dev/null ark1isdone MISSING="" for I in 1 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have the archive. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- Mail submissions (sources or binaries) to <amiga@uunet.uu.net>. Mail comments to the moderator at <amiga-request@uunet.uu.net>. Post requests for sources, and general discussion to comp.sys.amiga.misc.