コード例 #1
0
ファイル: testHunter.c プロジェクト: haydenvr/furydracula
void testBlank(void) {
    HunterView gameState;

    {
        playerMessage messages[1] = {""};
        printf("Test: blank game.\n");
        printf("creating hunterview.\n");
        gameState = newHunterView("",messages);
        printf("deciding move.\n");
        decideMove( gameState );
        printf("disposing.\n");
        disposeHunterView( gameState );
        printf("Test passed\n");
    }
}
コード例 #2
0
int main(int argc, char * argv[]) {
	playerMessage messages[] = {};
	
	printf("Test basic empty initialisation\n");
	HunterView hv = newHunterView("", messages);
	assert(getCurrentPlayer(hv) == PLAYER_LORD_GODALMING);
	assert(getRound(hv) == 0);
	assert(getHealth(hv, PLAYER_DR_SEWARD) == GAME_START_HUNTER_LIFE_POINTS);
	assert(getHealth(hv, PLAYER_DRACULA) == GAME_START_BLOOD_POINTS);
        assert(getScore(hv) == GAME_START_SCORE);
        assert(getLocation(hv,PLAYER_LORD_GODALMING) == UNKNOWN_LOCATION);
        
	disposeHunterView(hv);
	printf("passed\n");

	return 0;
}
コード例 #3
0
int main()
{
    int i;
    HunterView hv;

    printf("Test basic empty initialisation\n");
    hv = newHunterView("", NULL);
    assert(whoAmI(hv) == PLAYER_LORD_GODALMING);
    assert(giveMeTheRound(hv) == 0);
    assert(howHealthyIs(hv,PLAYER_DR_SEWARD) == GAME_START_HUNTER_LIFE_POINTS);
    assert(howHealthyIs(hv,PLAYER_DRACULA) == GAME_START_BLOOD_POINTS);
    assert(giveMeTheScore(hv) == GAME_START_SCORE);
    assert(whereIs(hv,PLAYER_LORD_GODALMING) == UNKNOWN_LOCATION);
    printf("passed\n");
    disposeHunterView(hv);

    printf("Test for Dracula trail and basic functions\n");
    PlayerMessage messages2[] = {"Hello","Rubbish","Stuff","","Mwahahah"};
    hv = newHunterView("GST.... SAO.... HZU.... MBB.... DC?....", messages2);
    assert(whoAmI(hv) == PLAYER_LORD_GODALMING);
    assert(giveMeTheRound(hv) == 1);
    assert(whereIs(hv,PLAYER_LORD_GODALMING) == STRASBOURG);
    assert(whereIs(hv,PLAYER_DR_SEWARD) == ATLANTIC_OCEAN);
    assert(whereIs(hv,PLAYER_VAN_HELSING) == ZURICH);
    assert(whereIs(hv,PLAYER_MINA_HARKER) == BAY_OF_BISCAY);
    assert(whereIs(hv,PLAYER_DRACULA) == CITY_UNKNOWN);
    assert(howHealthyIs(hv,PLAYER_DRACULA) == GAME_START_BLOOD_POINTS);
    printf("passed\n");
    disposeHunterView(hv);

    printf("Test for encountering Dracula and hunter history\n");
    PlayerMessage messages3[] = {"Hello","Rubbish","Stuff","","Mwahahah","Aha!"};
    hv = newHunterView("GST.... SAO.... HCD.... MAO.... DGE.... GGED...", messages3);
    assert(whereIs(hv,PLAYER_DRACULA) == GENEVA);
    assert(howHealthyIs(hv,PLAYER_LORD_GODALMING) == 5);
    assert(howHealthyIs(hv,PLAYER_DRACULA) == 30);
    assert(whereIs(hv,PLAYER_LORD_GODALMING) == GENEVA);
    LocationID history[TRAIL_SIZE];
    giveMeTheTrail(hv,PLAYER_DRACULA,history);
    assert(history[0] == GENEVA);
    assert(history[1] == UNKNOWN_LOCATION);
    giveMeTheTrail(hv,PLAYER_LORD_GODALMING,history);
    assert(history[0] == GENEVA);
    assert(history[1] == STRASBOURG);
    assert(history[2] == UNKNOWN_LOCATION);
    giveMeTheTrail(hv,PLAYER_DR_SEWARD,history);
    assert(history[0] == ATLANTIC_OCEAN);
    assert(history[1] == UNKNOWN_LOCATION);
    printf("passed\n");
    disposeHunterView(hv);

    printf("Test for Dracula doubling back at sea, and losing blood points (Hunter View)\n");
    PlayerMessage messages4[] = {"Hello","Rubbish","Stuff","","Mwahahah","Aha!","","","","Back I go"};
    hv = newHunterView("GGE.... SGE.... HGE.... MGE.... DS?.... "
                       "GST.... SST.... HST.... MST.... DD1....", messages4);
    assert(whereIs(hv,PLAYER_DRACULA) == DOUBLE_BACK_1);
    giveMeTheTrail(hv,PLAYER_DRACULA,history);
    assert(history[0] == DOUBLE_BACK_1);
    assert(history[1] == SEA_UNKNOWN);
    assert(howHealthyIs(hv,PLAYER_DRACULA) == GAME_START_BLOOD_POINTS - 4);
    assert(whoAmI(hv) == 0);
    printf("passed\n");
    disposeHunterView(hv);

    printf("Test for connections\n");
    int size, seen[NUM_MAP_LOCATIONS], *edges;

    printf("Checking Galatz road connections\n");
    PlayerMessage messages5[] = {"Gone to Galatz"};
    hv = newHunterView("GGA....", messages5);
    edges = whereCanTheyGo(hv,&size,PLAYER_LORD_GODALMING,1,0,0);
    memset(seen, 0, NUM_MAP_LOCATIONS*sizeof(int));
    for (i = 0; i< size ; i++) seen[edges[i]] = 1;
    assert(size == 5); assert(seen[GALATZ]); assert(seen[CONSTANTA]);
    assert(seen[BUCHAREST]); assert(seen[KLAUSENBURG]); assert(seen[CASTLE_DRACULA]);
    free(edges);
    disposeHunterView(hv);

    printf("Checking Ionian Sea sea connections\n");
    PlayerMessage messages6[] = {"Sailing the Ionian"};
    hv = newHunterView("GIO....", messages6);
    edges = whereCanTheyGo(hv,&size,PLAYER_LORD_GODALMING,0,0,1);
    memset(seen, 0, NUM_MAP_LOCATIONS*sizeof(int));
    for (i = 0; i < size; i++) seen[edges[i]] = 1;
    assert(size == 7); assert(seen[IONIAN_SEA]); assert(seen[BLACK_SEA]);
    assert(seen[ADRIATIC_SEA]); assert(seen[TYRRHENIAN_SEA]);
    assert(seen[ATHENS]); assert(seen[VALONA]); assert(seen[SALONICA]);
    free(edges);
    disposeHunterView(hv);

    printf("Checking Athens rail connections (none)\n");
    PlayerMessage messages7[] = {"Leaving Athens by train"};
    hv = newHunterView("GAT....", messages7);
    edges = whereCanTheyGo(hv,&size,PLAYER_LORD_GODALMING,0,1,0);
    assert(size == 1);
    assert(edges[0] == ATHENS);
    free(edges);
    disposeHunterView(hv);

    printf("passed\n");
    return 0;
}
コード例 #4
0
ファイル: testHunter.c プロジェクト: haydenvr/furydracula
void testMovesRound1(void) {
    HunterView gameState;

    {
        playerMessage messages[7] = {""};
        printf("Test1: Round 1 hunter 2 move. Testing his connected locs.\n");
        printf("creating hunterview.\n");
        gameState = newHunterView("GGW.... SGA.... HAT.... MMA.... DBO.V.. GGW.... SKL....",messages);
        printf("deciding move.\n");
        decideMove( gameState );
        printf("disposing.\n");
        disposeHunterView( gameState );
        printf("Test passed\n");

        printf("Test2: Round 1 hunter 2 move. Testing his connected locs.\n");
        printf("creating hunterview.\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DC?.V.. GKL.... SKL.... HST....",messages);
        printf("deciding move.\n");
        decideMove( gameState );
        printf("disposing.\n");
        disposeHunterView( gameState );
        printf("Test passed\n");
    }
    {
        playerMessage messages[7] = {""};
        printf("Testing fail round 2, hunter 2 trying to move illegally to CD\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DKL.V.. GKLVD.. SKLD...",messages);
        decideMove(gameState);
        disposeHunterView(gameState);
        printf("Test passed!\n");
        printf("latest play is %s\n",latestPlay);
    }
    /*
    {
        playerMessage messages2[] = {
        "camping",
        "",
        "",
        "",
        "+++Mr. Jelly! Mr. Jelly!+++",
        "I'm camping MAN!!!",
        "",
        "",
        "pn\u001a\thF\u001a\t\u0003",
        "+++Mr. Jelly! Mr. Jelly!+++",
        "I'm camping MAN!!!",
        "VR",
        "VR",
        "VR",
        "+++Oneoneoneoneoneoneone+++",
        "I'm camping MAN!!!"
      };
        printf("Testing player 2 fail case round 5. Tried moving from Liverpool -> London\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DGA.V.. GCD.... SBE.... HST.... MMA.... DBCT... GCD.... SKL.... HMU.... MMA.... DHIT... GCD.... SGAV... HVI.... MMA.... DD1T... GCD.... SGA.... HBD.... MMA.... DCNT... GCD.... SGA.... HKL.... MMA.... DC?T... GCD.... SGA.... HGA.... MMA.... DBS.... GCD.... SGA.... HGA.... MMA.... DS?..M. GCD.... SGA.... HGA.... MMA.... DSAT.M. GCD.... SGA.... HGA.... MMA.... DD2..M. GCD.... SGA.... HCNT... MMA.... DTS.... GCD.... SGA.... HCN.... MMA.... DCGT.M. GCD.... SGA.... HBS.... MMA.... DHIT... GCD.... SGA.... HBS.... MMA.... DMS.... GCD.... SGA.... HIO.... MMA.... DS?..M. GCD.... SGA.... HIO.... MMA.... DEC.... GCD.... SGA.... HTS.... MMA.... DLOT... GCD.... SGA.... HTS.... MMA.... DD1T.M. GCD.... SGA.... HTS.... MMA.... DHIT.M. GCD.... SGA.... HMS.... MMA.... DSWT... GCD.... SGA.... HMS.... MMA.... DS?.... GCD.... SGA.... HAO.... MMA.... DLVT... GCD.... SGA.... HAO.... MMA.... DC?T.M. GCD.... SGA.... HAO.... MMA.... DD5T.M. GCD.... SGA.... HAO.... MMA.... DPLT.M. GCD.... SGA.... HIS.... MMA.... DS?..M. GCD.... SGA.... HIS.... MMA.... DC?.V.. GCD.... SGA.... HLVT... MMA.... DC?T... GCD.... SGA.... HLV.... MMA.... DC?T.M. GCD.... SGA.... HLV.... MMA.... DD1T.M. GCD.... SGA....",messages2);
        decideMove(gameState);
        printf("latest play is %s\n",latestPlay);
        disposeHunterView(gameState);
        printf("Congrats, test should pass\n");
    } */
    {
        playerMessage messages[13] = {""};
        printf("Testing player 2 fail case round 5. Tried moving from Madrid -> Bordeaux\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DGA.V.. GCD.... SBE.... HST.... MMA.... DC?T... GCD.... SKL.... HMU....", messages);
        decideMove(gameState);
        printf("latest play is %s\n",latestPlay);
        disposeHunterView(gameState);
        printf("Congrats, test should pass\n");
    }
    {
        playerMessage messages[13] = {""};
        printf("Testing player 2 fail case round 5. Player One is making segFaults! player at Vienna\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DGA.V.. GCD.... SBE.... HST.... MMA.... DC?T... GCD.... SKL.... HMU.... MMA.... DC?T... GCD.... SGAV... HVI.... MMA.... DD1T... GCD.... SGA....",messages);
        decideMove(gameState);
        printf("latest play is %s\n",latestPlay);
        disposeHunterView(gameState);
        printf("Congrats, test should pass\n");
    }
    {
        playerMessage messages[31] = {""};
        printf("Testing player 1 fail case from game 303 round 6\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DCG.V.. GCD.... SBE.... HST.... MMA.... DS?.... GCD.... SSA.... HGE.... MAL.... DS?.... GCD.... SIO.... HMR.... MMS.... DC?T... GCD.... STS.... HMS.... MCGV... DC?T... GCD.... SCG.... HCG.... MCG.... DC?T... GCD....",messages);
        decideMove(gameState);
        printf("latest play is %s\n",latestPlay);
        disposeHunterView(gameState);
        printf("Congrats, this segfaulted in the game\n");
    }
    {
        playerMessage messages[32] = {""};
        printf("Testing player 2 fail case from game 303 round 6\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DCG.V.. GCD.... SBE.... HST.... MMA.... DS?.... GCD.... SSA.... HGE.... MAL.... DS?.... GCD.... SIO.... HMR.... MMS.... DC?T... GCD.... STS.... HMS.... MCGV... DC?T... GCD.... SCG.... HCG.... MCG.... DC?T... GCD.... SCG....",messages);
        decideMove(gameState);
        printf("latest play is %s\n",latestPlay);
        disposeHunterView(gameState);
        printf("Congrats, this segfaulted in the game\n");
    }
    {
        playerMessage messages[26] = {""};
        printf("Testing player 1 fail case from game 39 round 9. player making illegal move from Constanta (but was (TD) so health would be -3)\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DBS.... GCD.... SBE.... HST.... MMA.... DCNT... GCD.... SCNTD.. HMU.... MAL.... DC?T... GCD.... SCN.... HZA.... MMS.... DD2T... GCD.... SCNTD.. HSZ.... MTS.... DC?T... GCD....",messages);
        decideMove(gameState);
        printf("HIS LATEST PLAY IS %s\n",latestPlay);
        disposeHunterView(gameState);
    }
    {
        playerMessage messages[152] = {""};
        printf("Testing player 2 fail case from game 199. player returning \"\" for move. Player in Tyrrhehian Sea.\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DAL.V.. GCD.... SBE.... HST.... MMA.... DC?T... GCD.... SSA.... HGE.... MALV... DSNT... GCD.... SIO.... HMR.... MAL.... DS?.... GCD.... STS.... HMS.... MAL.... DNAT... GCD.... SMS.... HAL.... MAL.... DHIT... GCD.... SAL.... HAL.... MAL.... DCFT... GCD.... SAL.... HAL.... MAL.... DTOT.M. GCD.... SMA.... HSNT... MSN.... DD1T... GCD.... SMA.... HSN.... MSN.... DBAT... GCD.... SBO.... HBB.... MBB.... DSRT.M. GCD.... SBO.... HBB.... MBB.... DHIT.M. GCD.... SCFT... HBO.... MBO.... DMAT... GCD.... SCF.... HBO.... MBO.... DC?.VM. GCD.... SCF.... HBO.... MBO.... DCAT.M. GCD.... STO.... HSRTT.. MSR.... DD1T.M. GCD.... SSR.... HSR.... MSR.... DAO.... GCD.... SSR.... HSR.... MSR.... DS?.... GCD.... SMAT... HMA.... MMA.... DCGT... GCD.... SMA.... HMA.... MMA.... DHIT.V. GCD.... SCATT.. HCA.... MCA.... DTS.... GCD.... SCA.... HCA.... MCA.... DROT... GCD.... SAO.... HAO.... MAO.... DD1T... GCD.... SAO.... HAO.... MAO.... DBIT... GCD.... SMS.... HMS.... MMS.... DNPT.M. GCD.... SMS.... HMS.... MMS.... DC?T.M. GCD.... STS.... HTS.... MTS.... DTP.V.. GCDVD.. STS.... HTS.... MTS.... DC?T.M. GCD.... STS.... HTS.... MTS.... DC?T.M. GCD.... STS.... HTS.... MTS.... DD1T.M. GCD.... STS....",messages);
        decideMove(gameState);
        printf("HIS LATEST PLAY IS (%s)\n",latestPlay);
        disposeHunterView(gameState);
    }
    {
        playerMessage messages[149] = {""};
        printf("Testing player 3 fail case from game 199. player seg faulting. Player in Tyrrhehian Sea.\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DAL.V.. GCD.... SBE.... HST.... MMA.... DC?T... GCD.... SSA.... HGE.... MALV... DSNT... GCD.... SIO.... HMR.... MAL.... DS?.... GCD.... STS.... HMS.... MAL.... DNAT... GCD.... SMS.... HAL.... MAL.... DHIT... GCD.... SAL.... HAL.... MAL.... DCFT... GCD.... SAL.... HAL.... MAL.... DTOT.M. GCD.... SMA.... HSNT... MSN.... DD1T... GCD.... SMA.... HSN.... MSN.... DBAT... GCD.... SBO.... HBB.... MBB.... DSRT.M. GCD.... SBO.... HBB.... MBB.... DHIT.M. GCD.... SCFT... HBO.... MBO.... DMAT... GCD.... SCF.... HBO.... MBO.... DC?.VM. GCD.... SCF.... HBO.... MBO.... DCAT.M. GCD.... STO.... HSRTT.. MSR.... DD1T.M. GCD.... SSR.... HSR.... MSR.... DAO.... GCD.... SSR.... HSR.... MSR.... DS?.... GCD.... SMAT... HMA.... MMA.... DCGT... GCD.... SMA.... HMA.... MMA.... DHIT.V. GCD.... SCATT.. HCA.... MCA.... DTS.... GCD.... SCA.... HCA.... MCA.... DROT... GCD.... SAO.... HAO.... MAO.... DD1T... GCD.... SAO.... HAO.... MAO.... DBIT... GCD.... SMS.... HMS.... MMS.... DC?T.M. GCD.... SMS.... HMS.... MMS.... DC?T.M. GCD.... STS.... HTS.... MTS.... DTP.V.. GCDVD.. STS.... HTS.... MTS.... DC?T.M. GCD.... STS.... HTS.... MTS.... DC?T.M. GCD.... STS.... HTS....",messages);
        decideMove(gameState);
        printf("HIS LATEST PLAY IS (%s)\n",latestPlay);
        disposeHunterView(gameState);
    }
    {
        playerMessage messages[140] = {""};
        printf("Testing player 1 fail case from game 199. player seg faulting. Player in Tyrrhehian Sea.\n");
        gameState = newHunterView("GCD.... SBE.... HST.... MMA.... DAL.V.. GCD.... SBE.... HST.... MMA.... DC?T... GCD.... SSA.... HGE.... MALV... DSNT... GCD.... SIO.... HMR.... MAL.... DS?.... GCD.... STS.... HMS.... MAL.... DNAT... GCD.... SMS.... HAL.... MAL.... DHIT... GCD.... SAL.... HAL.... MAL.... DCFT... GCD.... SAL.... HAL.... MAL.... DTOT.M. GCD.... SMA.... HSNT... MSN.... DD1T... GCD.... SMA.... HSN.... MSN.... DBAT... GCD.... SBO.... HBB.... MBB.... DSRT.M. GCD.... SBO.... HBB.... MBB.... DHIT.M. GCD.... SCFT... HBO.... MBO.... DMAT... GCD.... SCF.... HBO.... MBO.... DC?.VM. GCD.... SCF.... HBO.... MBO.... DCAT.M. GCD.... STO.... HSRTT.. MSR.... DD1T.M. GCD.... SSR.... HSR.... MSR.... DAO.... GCD.... SSR.... HSR.... MSR.... DS?.... GCD.... SMAT... HMA.... MMA.... DCGT... GCD.... SMA.... HMA.... MMA.... DHIT.V. GCD.... SCATT.. HCA.... MCA.... DTS.... GCD.... SCA.... HCA.... MCA.... DC?T... GCD.... SAO.... HAO.... MAO.... DD1T... GCD.... SAO.... HAO.... MAO.... DC?T... GCD.... SMS.... HMS.... MMS.... DC?T.M. GCD.... SMS.... HMS.... MMS.... DC?T.M. GCD.... STS.... HTS.... MTS.... DTP.V.. GCDVD..",messages);
        decideMove(gameState);
        printf("HIS LATEST PLAY IS (%s)\n",latestPlay);
        disposeHunterView(gameState);
    }
}