|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T a
Length: 33796 (0x8404)
Types: TextFile
Names: »aliens.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Aliens/aliens.c«
#include <stdio.h>
#define MAXCHAR 20
char s[MAXCHAR]; /* character command string */
long hkill, hwound, humans, aliens, humwnd;
main () /* satiric alien invasion game */
{
char c, cold;
long akill;
int i, n;
extern char s[];
extern long humans, aliens, hkill, hwound, humwnd;
/*hwound: wounded this time*/
/*humwnd: total wounded*/
humans = aliens = 0;
hwound = hkill = cold = humwnd = 0;
n = 0;
printf("ALIENS FROM OUTER SPACE\n");
printf("Please enter a seed, greater than 1: ");
scanf("%d", &i);
srand(i);
while(humans <= 0) {
printf("How many humans do you want in your army?\n");
scanf("%d", &humans);
}
while(aliens <= 0) {
printf("How many aliens do you wish to fight?\n");
scanf("%d", &aliens);
if(aliens > humans) {
printf("Are you sure that is wise?\n");
scanf("%s", &c);
if(c != 'y') aliens = 0;
}
}
printf("\n\n\n\n\tTHE ALIENS HAVE LANDED\n");
printf("Do you want instructions?\n");
scanf("%s", &c);
if(c == 'y')
printf("Sorry, the instructions aren't ready yet.\n");
/* MAIN LOOP */
while(aliens > 0 && humans > 0) {
printf("Aliens left: %d \tHumans left: %d ",aliens,humans);
printf("\t Wounded Humans: %d\n",humwnd);
prompt();
scanf("%s", s);
if(s[0] == cold) n++;
else {
n = 0;
cold = s[0];
}
switch( s[0] ) {
case '\\':
printf("Magic Weapons Engaged, Sir.\n");
akill = aliens;
break;
case 'd':
akill = dyna(n);
break;
case 'f':
akill = flak(n);
break;
case 'h':
akill = handguns(n);
break;
case 'j':
akill = jets(n);
break;
case 'l':
akill = lasers(n);
break;
case 'M':
hwound = medic();
break;
case 'n':
akill = nukes(n);
break;
case 'o':
akill = obscene(n);
break;
case 'p':
akill = punk(n);
break;
case 'r':
akill = rocks(n);
break;
case 's':
akill = secret();
break;
case 't':
akill = tires(n);
break;
case 'D':
akill = god();
break;
case '?':
akill = 0;
unrec('?');
break;
case 'T':
if(s[3] == 'p') {
akill = trap();
s[3] = 'x';
}
else if(s[3] == 'a') {
treaty();
exit(0);
}
else unrec('x');
break;
default:
unrec('x');
break;
}
aliens = aliens - akill;
humans = humans - hkill - hwound;
humwnd = humwnd + hwound;
hkill = hwound = akill = 0;
}
if(aliens <= 0) {
printf("\n\n\n\tYOU HAVE DEFEATED ALL THE ALIENS!!!!\n");
printf("The human race thanks you.\n");
}
else {
printf("\n\nYour army has been destroyed!\n");
printf("The human race will be enslaved and used as food ");
printf("animals.\n");
}
}
prompt() /* command prompt */
{
printf("\nYour command, sir:\t");
return;
}
int unrec(n) /* unrecognized command */
char n;
{
char c;
if(n != '?') {
printf("That is indisputably an illegal command.\n");
printf("Do you wish a list of commands?\t");
scanf("%s", &c);
}
else c = 'y';
if(c == 'y') {
printf("Presently implemented commands:\n");
printf("d\tDynamite\t\tf\tFlak Guns\n");
printf("h\tHandguns\t\tj\tJet Fighter Planes\n");
printf("l\tLaser Cannon\t\tn\tNuclear Missiles\n");
printf("o\tObscene Gestures\tp\tPunk Rock\n");
printf("r\tRocks\t\t\tt\tTire Irons\n");
printf("M\tMedic\t\t\ts\tSecret Weapon\n");
printf("Trap\tTrap\t\t\tTreaty\tTreaty\n");
printf("D\tDivine Intervention\n");
printf("?\tList all commands\n\n");
}
return;
}
long rocks(n)
int n;
{
extern long hkill, hwound, aliens, humans;
static int prob[5] ={35, 65, 77, 92, 100};
long akill;
int i, j;
printf("Your men throw rocks at the aliens.\n");
i = dice(100) + 10 * n + modd();
for( j = 0; prob[j] < i; j++ );
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("The aliens are surprised by your unorthodox tactics.\n");
printf("They laugh so hard they soil their pantaloons.\n");
printf("This causes their suits' environmental ");
printf("control to go haywire.\n");
printf("%d aliens are killed by poor toilet discipline.\n",akill);
break;
case 1:
akill = 0;
printf("The aliens pick up the rocks and wonder what they are.\n");
printf("One of the aliens picks up a rock and chews ");
printf("on it speculatively.\n");
printf("He gabbles in alienese and soon all the aliens ");
printf("are wolfing down rocks.\n");
printf("It seems that your rocks are the best ");
printf("things they've ever tasted.\n");
printf("No aliens are killed by your attack, but a ");
printf("few of them get tummyaches.\n");
break;
case 2:
akill = 0;
hwound = dice(range(humans));
if(hwound > humans) hwound = humans;
printf("The aliens have set up a defensive repulsifier ");
printf("around themselves.\n");
printf("When your rocks strike the repulsifier field, ");
printf("they bounce right back.\n");
printf("In fact, they bounce back at twice the speed ");
printf("you threw them.\n");
printf("%d humans are wounded by thrown rocks.\n",hwound);
break;
case 3:
akill = 0;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("The aliens are angered by your thrown rocks.\n");
printf("They use their riot-control troops and ");
printf("tear gas on your men.\n");
printf("The aliens' tear gas proves to be rather toxic to humans.\n");
printf("%d humans are killed by Philadelphia Police Dept. tactics.\n",
hkill);
break;
default:
akill = dice(range(humans - aliens)) + dice(range(humans));
printf("The aliens are gratified by the reception you give them.\n");
printf("To acknowledge your courtesy, they call in ");
printf("a full parade band.\n");
printf("The band is armed for full combat.\n");
printf("%d aliens have joined the expeditionary force.\n", akill);
akill = - akill;
break;
}
return(akill);
}
long medic()
{
static int count = 0;
extern long humwnd, humans, aliens;
long i;
printf("You call in the M*A*S*H and their crew of excellent,");
printf(" humanitarian doctors.\n");
printf("They do not like the idea of sending wounded men back");
printf(" to the front.\n");
printf("You order them to patch up the wounded and never mind");
printf(" what they like.\n");
if(count < 3) {
if(aliens > humans) {
i = - humwnd;
printf("The M*A*S*H doctors patch up your");
printf(" wounded and they return to the front.\n");
count++;
if(count == 3) {
printf("They also say that this is the");
printf(" last time they'll help you.\n");
printf("Next time, they'll make sure you");
printf(" can\'t get any more men wounded.\n");
}
}
else {
i = 0;
printf("The M*A*S*H doctors know that able-bodied");
printf(" humans outnumber the aliens.\n");
printf("Therefore, you are not in desperate need");
printf(" of men.\n");
printf("The M*A*S*H doctors flatly refuse to send");
printf(" the wounded back to the front.\n");
printf("Your wounded remain in their beds.\n");
}
}
else {
printf("The M*A*S*H doctors weren't kidding.\n");
printf("They refuse to even consider sending the wounded");
printf(" back to the front.\n");
printf("Instead, they give you a psychiatric examination,");
printf(" which you fail.\n");
printf("You are committed to a mental hospital.\n");
printf("Without your leadership, your army soon falls");
printf(" apart...............\n");
i = humans;
}
return(i);
}
long handguns(n)
int n;
{
extern long hkill, hwound, aliens, humans;
static int prob[5] ={45, 65, 90, 100};
long akill;
int i, j;
printf("Your men shoot handguns at the aliens.\n");
i = dice(100) + 10 * n + modd();
for( j = 0; prob[j] < i; j++) ;
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("The aliens are surprised by your attack and retreat.\n");
printf("Your men shoot several aliens during their ");
printf("hasty withdrawal.\n");
printf("%d aliens are killed by your handguns.\n",akill);
break;
case 1:
akill = 0;
hwound = dice(range(humans / 2));
if(hwound > humans) hwound = humans;
printf("Your men greatly enjoy old western movies.\n");
printf("Their handguns let them act out these movies realistically.\n");
printf("In fact, they start having shootouts just like ");
printf("Matt Dillon used to.\n");
printf("%d humans are wounded outside of Dodge City.\n",hwound);
break;
case 2:
akill = 0;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("Your men decide that shooting at aliens is boring.\n");
printf("They drive down to the local liqour store and demand money.\n");
printf("After stealing $20, they are arrested in a brothel outside ");
printf("of town.\n");
printf("%d humans are locked up and lost to your army.\n",hkill);
break;
default:
akill = dice(range(humans));
printf("The aliens are alarmed that such simple ");
printf("and common weapons work.\n");
printf("They realize that the entire population of ");
printf("Earth can be armed this way.\n");
printf("The alien commander hurriedly calls back home ");
printf("for reinforcements.\n");
printf("%d additional aliens arrive on Earth ",akill);
printf("to counter your cheap handguns.\n");
akill = - akill;
break;
}
return(akill);
}
long tires(n)
int n;
{
extern long hkill, hwound, aliens, humans;
static int prob[4] ={50, 60, 85, 100};
long akill;
int i, j;
printf("Your men attack the aliens with tire irons.\n");
i = dice(100) + 10 * n + modd();
for(j = 0; prob[j] < i; j++);
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("No aliens are killed by this, but their ");
printf("helmets are cracked.\n");
printf("The cracked helmets let air into the aliens' suits.\n");
printf("Our air is poisonous to the aliens and the ");
printf("aliens choke and die.\n");
printf("%d aliens are killed by two things ", akill);
printf("needed to fix a flat tire.\n");
break;
case 1:
akill = 0;
hwound = dice(range(humans) / 2);
if(hwound > humans) hwound = humans;
printf("Your men are inexperienced in the use of hoodlum weapons.\n");
printf("They end up trying to figure out how to use ");
printf("them on each other.\n");
printf("They become rather proficient in the use of tire irons.\n");
printf("%d humans are wounded by lack of streetwisdom.\n",hwound);
break;
case 2:
akill = 0;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("Your men cannot believe the idiotic weapons ");
printf("that they now have.\n");
printf("Most of your men refuse to advance into the attack.\n");
printf("The remaining brave men are greatly outnumbered ");
printf("and are overwhelmed.\n");
printf("%d humans are killed by unquestioning ",hkill);
printf("obedience to dumb orders.\n");
break;
default:
akill = dice(range(humans - aliens)) + dice(range(humans / 2));
printf("Your tire iron attacks prove to be highly effective.\n");
printf("The aliens' commander is alarmed and requests ");
printf("special reinforcements.\n");
printf("These reinforcements have been trained to fight dirty.\n");
printf("%d aliens join the expeditionary ", akill);
printf("force ready to fight like men.\n");
akill = - akill;
break;
}
return(akill);
}
long lasers(n)
int n;
{
extern long hkill,hwound;
static int prob[5] ={30, 60, 70, 90, 100};
long akill;
int i, j;
printf("Your men fire high-powered laser cannon at the aliens.\n");
i = dice(100) + 10 * n + modd();
for(j = 0; prob[j] < i; j++);
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("The laser cannons turn out to be extremely effective.\n");
printf("You vaporize several of the aliens' landing craft.\n");
printf("The aliens retreat temporarily to orbit ");
printf("without counterattacking.\n");
printf("%d aliens are vaporized in their ships.\n", akill);
break;
case 1:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("Your laser cannons vaporize several alien ships.\n");
printf("The aliens counterattack in rage using their ");
printf("own laser cannons.\n");
printf("Both sides take heavy casualties.\n");
printf("%d humans and %d aliens are ", hkill, akill);
printf("killed in the battle.\n");
break;
case 2:
hwound = dice(range(humans / 3));
if(hwound > humans) hwound = humans;
printf("Your laser cannons do not work exactly as designed.\n");
printf("They overheat considerably, inflicting serious ");
printf("burns to your men.\n");
printf("%d humans are wounded by fundamental design errors.\n",hwound);
akill = 0;
break;
case 3:
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("The aliens think you are trying to signal them ");
printf("with searchlights.\n");
printf("They activate their lights to send signals back.\n");
printf("Their lights turn out to be even deadlier ");
printf("than your laser cannon.\n");
printf("%d humans are vaporized by aliens saying \"Hi!\"\n",hkill);
akill = 0;
break;
default:
akill = dice(range(aliens));
printf("The aliens notice your powerful light sources.\n");
printf("Many of the aliens strip off their suits to ");
printf("sunbathe in them.\n");
printf("This precipitates an orgy amongst the nude ");
printf("aliens, causing them to...\n");
printf("\t..... REPRODUCE!!! .....\n");
printf("%d new aliens are hatched and join ", akill);
printf("the expeditionary force.\n");
akill = - akill;
break;
}
return(akill);
}
long nukes(n)
int n;
{
extern long hkill, aliens, humans;
static int prob[5] ={25, 45, 65, 80, 100};
long akill;
int i, j;
printf("Your men launch nuclear missiles at the aliens.\n");
i = dice(100) + n * 10 + modd();
for(j = 0; prob[j] < i; j++) ;
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("The nuclear attacks hit the aliens hard.\n");
printf("Many aliens are killed in the attack.\n");
printf("The aliens retreat to regroup and do not counterattack.\n");
printf("%d aliens are nuked out of existence.\n", akill);
break;
case 1:
printf("Your nuclear weapons all date back to the 1970's.\n");
printf("None of them work especially well.\n");
printf("All of them are duds.\n");
printf("1 alien is killed accidentally when an unexploded bomb ");
printf("falls on him.\n");
akill = 1;
break;
case 2:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("The aliens are hit hard by your nuclear missiles.\n");
printf("They are forced to launch several nuclear weapons o");
printf("f their own.\n");
printf("Both humans and aliens suffer heavy casualties.\n");
printf("%d humans and %d aliens get nuked ",hkill, akill);
printf("out of existence.\n");
break;
case 3:
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("Some of the missiles have 1960's-vintage guidance systems.\n");
printf("These missiles insist on hitting the targets they ");
printf("were given in 1962.\n");
printf("Many of your men are staying in these places.\n");
printf("%d humans are nuked by old political hatreds.\n",hkill);
break;
default:
akill = dice(range(humans));
printf("The intense radiation from the nuclear blasts affects ");
printf("some humans.\n");
printf("The radiation causes them to ............ MUTATE!!!!\n");
printf("The mutants decide they like the aliens more than ");
printf("they like you.\n");
printf("%d mutants enlist in the alien expeditionary force.\n",akill);
hkill = akill;
if(hkill > humans) hkill = humans;
akill = - hkill;
break;
}
return(akill);
}
long obscene(n)
int n;
{
extern long hkill, hwound, humans, aliens;
long akill;
static int prob[6] ={20, 40, 60, 75, 90, 100};
int i, j;
printf("Your men make obscene gestures at the aliens.\n");
i = dice(100) + n * 12 + modd();
for(j = 0; prob[j] < i; j++) ;
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("They aliens are appalled at your disrespect for them.\n");
printf("Many decide that they do not want to associate with ");
printf("such vulgar beings.\n");
printf("They get back into their ships and go back to where ");
printf("they came from.\n");
printf("%d aliens are offended right off the face of the Earth.\n",
akill);
break;
case 1:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("The aliens are confused by your peculiar contortions.\n");
printf("Some of the more puzzled aliens try to make ");
printf("the gestures themselves.\n");
printf("The aliens' skeletons are not made to perform such motions.\n");
printf("These aliens hurt themselves and have to be sent ");
printf("home to recover.\n");
printf("%d aliens depart because of sprained middle tentacles.\n",
akill);
break;
case 2:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("Your obscene gestures have deep religious significance ");
printf("to the aliens.\n");
printf("Many of them become convinced that humans are ");
printf("sacred beings.\n");
printf("These aliens apply for conscientious objector status.\n");
printf("%d aliens are shipped back home to be de-programmed.\n",akill);
break;
case 3:
hwound = dice(range(humans / 2));
akill = 0;
if(hwound > humans) hwound = humans;
printf("Some of your men also make obscene gestures at each other.\n");
printf("This precipitates fighting among your men.\n");
printf("The aliens are greatly amused by this show of human ");
printf("solidarity.\n");
printf("%d humans are wounded by fighting amongst themselves.\n",
hwound);
break;
case 4:
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
akill = 0;
printf("The aliens make obscene gestures back.\n");
printf("The aliens' obscene gestures turn out to be highly comical.\n");
printf("They are so comical that several of your men die laughing.\n");
printf("%d humans are killed by dirty-mindedness.\n",hkill);
break;
default:
akill = dice(range(humans));
printf("The aliens decide to take the advice of your men's obscene");
printf(" gestures.\n");
printf("This causes them to ..................... REPRODUCE!!!!!\n");
printf("%d more aliens are added to the expeditioary force.\n",akill);
akill = - akill;
break;
}
return(akill);
}
long flak(n)
int n;
{
extern long hkill, hwound, humans, aliens;
static int prob[5] ={40, 70, 78, 90, 100};
long akill;
int i, j;
printf("Your men fire flak guns at the aliens.\n");
i = dice(100) + 10 * n + modd();
for(j = 0; prob[j] < i; j++) ;
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("The flak guns prove to be very effective against ");
printf("the aliens.\nThe aliens suffer heavy losses and ");
printf("retreat without counterattacking.\n");
printf("%d aliens are killed by your anti-aircraft fire.\n",akill);
break;
case 1:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("The aliens suffer some casualties from your flak guns.\n");
printf("The aliens decide to counterattack.\n");
printf("The aliens bomb your flak gun emplacements.\n");
printf("%d aliens and %d humans are killed ",akill, hkill);
printf("in the exchange.\n");
break;
case 2:
akill = 0;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("Your men accidentally load the wrong ammunition ");
printf("into the flak guns.\nThey put regular shells in the ");
printf("guns instead of proximity-fuzed shells.\n");
printf("These shells sail harmlessly past the aliens\' ships ");
printf("when fired.\nThey land much less harmlessly among ");
printf("your other positions downrange.\n");
printf("%d humans are killed by gross ineptitude.\n", hkill);
break;
case 3:
akill = 0;
hwound = dice(range(humans / 3));
if(hwound > humans) hwound = humans;
hkill = dice(range(humans / 2));
if(hkill > humans) hkill = humans;
printf("Some of your flak guns are very old.\n");
printf("These old guns suffer from severe metal fatigue.\n");
printf("When your men fire these flak guns the barrels burst ");
printf("and hurt you men.\n");
printf("%d humans are killed and %d are ",hkill,hwound);
printf("wounded by tired old guns.\n");
break;
default:
akill = dice(range(humans));
printf("Your flak guns shoot down several alien ships.\n");
printf("The ships fall into the ocean, where the aliens bail out.\n");
printf("Seawater turns out to be an aphrodisiac to the aliens.\n");
printf("The aliens in the ocean ................. REPRODUCE!!!!!!!\n");
printf("%d aliens are hatched in the warm ocean.\n", akill);
akill = - akill;
break;
}
return(akill);
}
long punk(n)
int n;
{
static int prob[5] ={25, 60, 75, 90, 100};
extern long hwound, hkill, humans, aliens;
long akill;
int i, j;
printf("Your men play loud punk rock music at the aliens.\n");
i = dice(100) + 20 * n + modd();
for(j = 0; prob[j] < i; j++) ;
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("Many aliens cannot stand the noise of your punk rock.\n");
printf("They pack up their things and throw them frantically ");
printf("into their ships.\n");
printf("They take off, never to be seen again.\n");
printf("%d aliens leave in search of a place ", akill);
printf("with more class than Earth.\n");
break;
case 1:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("The loud punk rock music has no effect on the aliens.\n");
printf("However, it does set up sympathetic resonances ");
printf("in their suits.\n");
printf("This causes their environment suits to go haywire ");
printf("and cook the aliens.\n");
printf("%d aliens are killed because machines ",akill);
printf("can't stand punk rock either.\n");
break;
case 2:
akill = 0;
hwound = dice(range(humans / 2));
if(hwound > humans) hwound = humans;
printf("Many of your men \(understandably\) cannot ");
printf("stand the loud punk rock.\n");
printf("They get mad and destroy the large speaker systems ");
printf("playing the music.\n");
printf("They also attack those men who do like the punk rock.\n");
printf("%d humans are wounded in a sudden revival ",hwound);
printf("of good taste in music.\n");
break;
case 3:
akill = 0;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("The aliens find the sound of your punk rock irritating.\n");
printf("They are angry and throw things at your men ");
printf("to make them be quiet.\n");
printf("Unfortunately, the things they throw are rather explosive.\n");
printf("%d humans are killed by aliens trying ", hkill);
printf("to get some sleep.\n");
break;
default:
akill = dice(range(humans));
printf("The aliens really enjoy the loud punk rock music.\n");
printf("The loud music excites them greatly, and they ");
printf("really boogie down.\n");
printf("It excites them so much that they have ");
printf("an orgy and .....REPRODUCE!!!!\n");
printf("%d aliens are added to the expeditionary force.\n",akill);
akill = - akill;
break;
}
return(akill);
}
long jets(n)
int n;
{
extern long humans, aliens, hkill, hwound;
static int prob[4] ={25, 50, 75, 100};
long akill;
int i, j;
printf("You send jet fighter planes up to attack the aliens.\n");
i = dice(100) + n * 15 + modd();
for(j = 0; prob[j] < i; j++) ;
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("The jet fighter planes catch the aliens by surprise.\n");
printf("Several of the aliens' ships are shot down by ");
printf("the fighter planes.\n");
printf("The aliens retreat without taking action in retribution.\n");
printf("%d aliens are brought down in one-sided dogfights.\n",akill);
break;
case 1:
printf("The aliens are prepared for your jet fighter attacks.\n");
printf("Your fighter pilots take very heavy losses in the ");
printf("air-to-air combat.\n");
hwound = dice(range(humans / 2));
if(hwound > humans) hwound = humans;
printf("%d humans are wounded while they get shot down.\n",hwound);
akill = 0;
break;
case 2:
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("The aliens suffer some casualties from your ");
printf("jet fighter planes.\n");
printf("They get mad and send attack craft to follow ");
printf("your jets back to base.\n");
printf("Once they find your bases, the aliens ");
printf("bomb them unmercifully.\n");
printf("%d humans are killed by superior air tactics.\n",hkill);
akill = 0;
break;
default:
akill = dice(range(humans));
printf("Your jet fighter attacks frighten the aliens badly.\n");
printf("The alien commander feels obligated to call home ");
printf("for reinforcements.\n");
printf("His request is granted, and %d ",akill);
printf("more alien troops arrive.\n");
akill = - akill;
break;
}
return(akill);
}
long dyna(n)
int n;
{
extern long aliens, humans, hkill;
static int prob[3] ={45, 80, 100};
long akill;
int i, j;
printf("Your men throw dynamite at the aliens.\n");
i = dice(100) + n * 10 + modd();
for(j = 0; prob[j] < i; j++) ;
switch(j) {
case 0:
akill = dice(range(aliens));
if(akill > aliens) akill = aliens;
printf("As is often the case, the men in your army are ");
printf("not very bright.\n");
printf("They forget to light the fuses before ");
printf("throwing the dynamite.\n");
printf("The aliens are even less bright: they eat the dynamite.\n");
printf("%d aliens get sick from indigestion and ", akill);
printf("must be sent home.\n");
break;
case 1:
akill = 0;
hkill = dice(range(humans));
if(hkill > humans) hkill = humans;
printf("As is often the case, the men in your army are ");
printf("not very bright.\n");
printf("They forget to light the fuses ");
printf("before throwing the dynamite.\n");
printf("The aliens correct this oversight by lighting ");
printf("it and throwing it back.\n");
printf("%d humans are killed by stupidity ", hkill);
printf("worthy of an old ethnic joke.\n");
break;
default:
akill = dice(range(humans));
printf("The dynamite blows the aliens into several pieces.\n");
printf("However, the aliens are capable of reproducing asexually.\n");
printf("This means that each of the pieces grows into a new alien.\n");
printf("%d new aliens are added by explosive reproduction.\n",akill);
akill = - akill;
break;
}
return(akill);
}
secret()
{
int i;
extern long hkill, humans;
printf("You decide to use an experimental, highly deadly,");
printf(" secret weapon.\n");
if((i = dice(100)) > 50) {
printf("Professor Scheisskopf brings out his ...");
printf("...... RNA DEPOLARIZER!!!!\n");
printf("\"It vill destroy alle liffing tings caught in ");
printf("its beam!\" He giggles.\n");
printf("Your men set up the highly complex RNA ");
printf("depolarizer on the front lines.\n");
printf("They aim it at a large group of aliens and ");
printf("depress the on/off switch.\n");
printf("The RNA depolarizer emits a peculiar ");
printf("whine and greenish glow.........\n");
printf("........ and absolutely nothing happens to the aliens.\n");
printf("\"Donnerwetter!\" screams Professor Scheisskopf, ");
printf("visibly shaken.\n");
printf("\"Der quark-zartvortler must slightly out of ");
printf("hypercritical alignment be.\"\n");
printf("The professor carts his experimental weapon ");
printf("back to his laboratory.\n");
}
else {
hkill = dice(6);
if(hkill > humans) hkill = humans;
printf("Professor Scheisskopf brings out his ....");
printf("..... RNA DEPOLARIZER!!!!\n");
printf("\"It vill destroy alle liffing tings within ");
printf("its range!\" He giggles.\n");
printf("Your men set up the highly complex RNA depolarizer ");
printf("on the front lines.\n");
printf("They aim it at a large group of aliens and ");
printf("throw the power switch.\n");
printf("The RNA depolarizer emits a peculiar whine ");
printf("and greenish glow.........\n");
printf("........ and all the humans for a hundred yards ");
printf("drop dead instantly.\n");
printf("\"Donnerwetter!\" screams Professor Scheisskopf, ");
printf("visibly shaken.\n");
printf("\"Der directional fronkzapdinger must set on ");
printf("\'Reverse\' be!\"\n");
printf("The professor carts his experimental weapon ");
printf("back to his laboratory.\n");
printf("%d humans are killed by a slightly ", hkill);
printf("unfinished secret weapon.\n");
}
return(0);
}
long god()
{
extern long aliens, humans, hkill;
static char *gods[10] ={"Jehovah","Allah","Zeus","Odin",
"Quetzalcoatl","Siva","Jesus","The Holy Ancestors",
"The Great Spirit","Zarathustra"};
static char *excuse[5] ={"playing golf","shooting pool",
"drinking beer","tuning up His chariot",
"making it rain in Buffalo"};
int i, j, k;
long akill;
j = dice(100);
i = dice(10) - 1;
printf("All the humans pray to %s for victory over the aliens.\n",
gods[i]);
printf("All the aliens pray to Fzurgtaprotz for victory over the ");
printf("humans.\n");
if(j <= 50) {
printf("The humans\' prayers are answered!!\n");
hkill = 0;
if(j <= 25) {
k = dice(5) - 1;
akill = 0;
printf("... but by %s\'s answering service.\n",gods[i]);
printf("It seems %s is out %s",gods[i],excuse[k]);
printf(" and can\'t be reached.\n");
printf("Better luck next time.\n");
}
else {
akill = aliens;
printf("%s comes to Earth and zaps",gods[i]);
printf(" all the aliens.\n");
printf("\n\n ZZZAAAAAAAAPPPPPPPPPP!!!!!!!!!!!\n\n");
}
}
else {
printf("The aliens\' prayers are answered!!\n");
akill = 0;
if(j > 75) {
printf("... but by Fzurgtaprotz\' answering");
printf(" service.\n");
printf("It seems Fzurgtaprotz is out gzarmphing");
printf(" plzotls and can\'t be reached.\n");
printf("Better luck next time.\n");
hkill = 0;
}
else {
hkill = humans;
printf("Fzurgtaprotz comes to Earth and zaps all");
printf(" the humans.\n");
printf("\n\n ZZZAAAAAAAAPPPPPPPPPP!!!!!!!!!!!\n\n");
}
}
return(akill);
}
long trap()
{
extern long humwnd, aliens, hkill;
long akill;
int i, j;
static int count = 0;
if(humwnd != 0) {
if(count == 0) {
printf("You decide to lay a trap for the aliens.\n");
printf("You truck your wounded out to White Sands ");
printf("Missile Range.\n");
printf("You leave them amidst many large \"FREE ");
printf("LUNCH\" signs.\n");
printf("The aliens show up and start chowing down ");
printf("on your delicious wounded.\n");
printf("You then set off the 20-megaton bomb buried");
printf(" just under the sand there.\n");
humwnd = 0;
i = aliens / 3;
akill = dice(i) + dice(8);
akill = dice(i) + akill;
akill = akill + dice(i);
if(akill > aliens) akill = aliens;
printf("All your wounded and %d aliens",akill);
printf(" are killed in the blast.\n");
printf("There is public outcry about your callous");
printf(" use of wounded men,\n");
count++;
printf("but since it worked, you are not lynched.\n");
}
else {
printf("Your subordinates are alarmed that you want");
printf(" to try that horrible trick again.\n");
printf("You are arrested and found guilty of war");
printf(" crimes.\n");
printf("As punishment YOU are sent to White Sands ");
printf("Missile Range.\n");
printf("The aliens aren\'t stupid enough to fall for");
printf(" the same trick twice,\n");
printf("so you are left out there to die ");
printf("of exposure.\n");
printf("Without your leadership your army soon falls");
printf(" apart..................\n");
hkill = humans;
akill = 0;
}
}
else {
printf("You must have wounded in order to try the trap.\n");
akill = hkill = 0;
}
return(akill);
}
int treaty()
{
extern long humans, aliens;
printf("You negotiate a treaty with the aliens.\n");
printf("The war is over, but they get the states of ");
printf("New Jersey and Utah,\n");
printf("the entire Indian Subcontinent, France, Kazakhstan,\n");
if(aliens > humans) {
printf("New Zealand, Algeria, Kenya, Prince Edward Island");
printf(", Hungary,\n");
printf("the Pribilof Islands, Queen Maud Land, the palace");
printf(" at Versailles, \n");
printf("the Detroit Tigers, H. M. S. Victory, your men\'s");
printf(" tireirons,\n");
printf("a fleet of 1955 Ford Thunderbirds, a cubic mile");
printf(" of cheesecorn,\n");
printf("a dozen pogo sticks, a complete set of W. C.");
printf(" Fields\' movies,\n");
}
printf("Upper Volta, the cities of Bratislava, Omsk, Woomera,\n");
printf("Yokohama, all of Latin America, Disneyworld,\n");
printf("and the rights to set up \"Colonel Zurgznart\'s Kentucky\n");
printf("Fried Humans\" franchises worldwide.\n");
printf("There is worldwide outcry about giving up Disneyworld.\n");
printf("As a result, you are the first human in the local Colonel");
printf(" Zurgznart\'s.......\n");
printf("...and the aliens think you go very well with a little");
printf(" mustard.\n");
return;
}
int modd() /* determines case modifier due to odds */
{
extern long aliens, humans;
int answer;
answer = 0;
if(aliens > (2 * humans) && (aliens > 50)) answer = -20;
else if(humans > (3 * aliens) && (aliens > 10)) answer = 20;
return(answer);
}
range(n) /* determines which type of dice to roll */
long n;
{
int i;
if(n < 10)
i = 4;
else if(n < 50)
i = 6;
else if(n < 110)
i = 10;
else
i = n / 10;
return(i);
}
dice(r) /* the big dice */
int r;
{
int roll;
long i;
i = rand(); /* rand gives a range between 1 and 2**31 - 1 */
roll = (i % r) + 1;
return(roll);
}