BH #13

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;

}

В начало страницы В начало страницы
Назад, к списку номеров Назад, к списку номеров
Карта-схема музея Карта-схема музея
Титульная страница музея Титульная страница музея