#include "dominion.h" #include #include "rngs.h" #include int main (int argc, char** argv) { struct gameState G; int k[10] = {adventurer, gardens, embargo, village, minion, mine, cutpurse, sea_hag, tribute, smithy}; printf ("Starting game.\n"); initializeGame(2, k, atoi(argv[1]), &G); int money = 0; int smithyPos = -1; int adventurerPos = -1; int i=0; int numSmithies = 0; int numAdventurers = 0; while (!isGameOver(&G)) { money = 0; smithyPos = -1; adventurerPos = -1; for (i = 0; i < numHandCards(&G); i++) { if (handCard(i, &G) == copper) money++; else if (handCard(i, &G) == silver) money += 2; else if (handCard(i, &G) == gold) money += 3; else if (handCard(i, &G) == smithy) smithyPos = i; else if (handCard(i, &G) == adventurer) adventurerPos = i; } if (whoseTurn(&G) == 0) { if (smithyPos != -1) { printf("0: smithy played from position %d\n", smithyPos); playCard(smithyPos, -1, -1, -1, &G); printf("smithy played.\n"); money = 0; i=0; while(i= 8) { printf("0: bought province\n"); buyCard(province, &G); } else if (money >= 6) { printf("0: bought gold\n"); buyCard(gold, &G); } else if ((money >= 4) && (numSmithies < 2)) { printf("0: bought smithy\n"); buyCard(smithy, &G); numSmithies++; } else if (money >= 3) { printf("0: bought silver\n"); buyCard(silver, &G); } printf("0: end turn\n"); endTurn(&G); } else { if (adventurerPos != -1) { printf("1: adventurer played from position %d\n", adventurerPos); playCard(adventurerPos, -1, -1, -1, &G); money = 0; i=0; while(i= 8) { printf("1: bought province\n"); buyCard(province, &G); } else if ((money >= 6) && (numAdventurers < 2)) { printf("1: bought adventurer\n"); buyCard(adventurer, &G); numAdventurers++; }else if (money >= 6){ printf("1: bought gold\n"); buyCard(gold, &G); } else if (money >= 3){ printf("1: bought silver\n"); buyCard(silver, &G); } printf("1: endTurn\n"); endTurn(&G); } } // end of While printf ("Finished game.\n"); printf ("Player 0: %d\nPlayer 1: %d\n", scoreFor(0, &G), scoreFor(1, &G)); return 0; }