From c4h10 Tue Dec 22 15:18:39 1992
Received: by zelax.zgrad.su; Tue, 22 Dec 92 15:18:37 +0300 (MSK)
Subject: гвЁ"м
To: domini@zelax.zgrad.su (Galaxy PBM Game)
Date: Tue, 22 Dec 92 15:18:37 MSK
From: Dmitry Butenko <c4h10@zelax.zgrad.su>
X-Mailer: ELM [version 2.3 PL8]
Status: RO
#include <stdlib.h>
#define MAXPOP 1000.0
#define MATPERCOL .5
#define POPPERCOL 8
#define POPINC .1
#define INDPERCOL 5
#define INDPERSHIP 10
#define INDPERCAP 6
#define INDPERRESEARCH (MAXPOP*5)
calc (p0, p1, p2, p3, p4, p5, p6)
float p0, p1, p2, p3, p4, p5, p6;
{
float ind,popinc,extrapop,colinc,matdemand,inddemand;
float psize, ppop, pind, pmat, pcol, presources;
float pinprogress, pcap;
float shipcost,nships,indinc;
int inships;
psize = p0;
ppop = p1;
pind = p2;
presources=p3;
pcap = p4;
pcol = p5;
pmat = p6;
ind = pind*.9 + ppop*.1;
popinc = ppop * POPINC;
extrapop = psize - ppop;
if (extrapop > popinc)
extrapop = popinc;
ppop += extrapop;
popinc -= extrapop;
colinc = popinc / POPPERCOL;
matdemand = colinc * MATPERCOL;
if (matdemand > pmat)
matdemand = pmat;
if (matdemand > ind * MATPERCOL / INDPERCOL)
matdemand = ind * MATPERCOL / INDPERCOL;
colinc -= matdemand / MATPERCOL;
pcol += matdemand / MATPERCOL;
pmat -= matdemand;
ind -= matdemand / MATPERCOL * INDPERCOL;
matdemand = colinc * MATPERCOL;
inddemand = matdemand * (INDPERCOL/MATPERCOL + 1/presources);
if (inddemand > ind)
{
matdemand *= ind/inddemand;
inddemand = ind;
}
ind -= inddemand;
pcol += matdemand / MATPERCOL;
pinprogress = 0;
nships=1.;
shipcost = ind / INDPERSHIP;
matdemand = nships * shipcost;
if (matdemand > pmat)
{
nships = nships * pmat / matdemand;
matdemand = pmat;
}
inships = (int)nships;
nships = inships;
ind -= nships * shipcost * INDPERSHIP;
pmat -= nships * shipcost;
shipcost = ind / (1/presources + INDPERSHIP);
ind -= inships * shipcost * (1/presources + INDPERSHIP);
pinprogress = ind;
indinc = ppop - pind;
if (indinc > pcap)
indinc = pcap;
pcap -= indinc;
pind += indinc;
} |