From 68d09777d9f188b2ac69c98ccfdcc315037224fd Mon Sep 17 00:00:00 2001 From: Nathan Vance Date: Sat, 28 Feb 2015 00:18:29 -0500 Subject: added science to vp count; color to trades --- science.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 science.c (limited to 'science.c') diff --git a/science.c b/science.c new file mode 100644 index 0000000..89af807 --- /dev/null +++ b/science.c @@ -0,0 +1,42 @@ +#include "7w.h" + +int* data_getbuilt(int p); +int* cards_getproduction(int era, int card); +int cards_gettype(int era, int card); +int data_hasbuilt(int p, int era, int card); + +int calc_science(int player, int guildval) +{ + int science[3]; + int i, j; + for(i = 0; i < 3; i++) science[i] = 0; + if(guildval != -1) science[guildval]++; + int *built = data_getbuilt(player); + int *prod; + for(i = 0; built[i] != -1; i += 2) { + if(cards_gettype(built[i], built[i+1]) == SCIENTIFIC) { + prod = cards_getproduction(built[i], built[i+1]); + for(j = COMPASS; j <= TABLET; j++) { + science[j-COMPASS] += prod[j]; + } + } + } + int min = science[0]; + for(i = 0; i < 3; i++) + if(science[i] < min) min = science[i]; + int ret = 7*min; + for(i = 0; i < 3; i++) ret += science[i] * science[i]; + return ret; +} + +int science(int player) +{ + if(! data_hasbuilt(player, 2, 25)) return calc_science(player, -1); + int max = 0; + int i, m; + for(i = 0; i < 3; i++) { + m = calc_science(player, i); + if(m > max) max = m; + } + return max; +} -- cgit