// Player Scores

// Track 4 players' scores in a game
// We want to be able to:
// * store integer scores
// * print out everyone's current score
// * say who's winning
// * print out the total of all the scores? (Maybe TODO)

// Marc Chee (cs1511@cse.unsw.edu.au), October 2020

#include <stdio.h>

#define NUM_PLAYERS 4

void printScores(int playerScores[NUM_PLAYERS]);
int findWinner(int currentScores[NUM_PLAYERS]);

int main(void) {
    // declare an array of 4 integers
    int scores[NUM_PLAYERS] = {50, 12, 67, 89};
    
    // The second team was just put in here as an example to show
    // how a function can be given different inputs
    int scoresTeam2[NUM_PLAYERS] = {0};
    
    printScores(scores);
    printScores(scoresTeam2);
    
    // set up initial values
    // This next section isn't necessary, but it's
    // here to show how to access individual elements
    scores[0] = 55;
    scores[1] = 17;
    scores[2] = 72;
    scores[3] = 94;
    
    printScores(scores);
    
    int winnerIndex = findWinner(scores);
    printf(
        "The current leader is Player %d with %d points.\n", 
        winnerIndex, 
        scores[winnerIndex]
    );
}

// A function that prints out all the current scores given
// in playerScores.
void printScores(int playerScores[NUM_PLAYERS]) {
    int i = 0;
    while (i < NUM_PLAYERS) { // we have seen i elements of the array
        printf("Player %d has %d points.\n", i, playerScores[i]);
        i++;
    }
}

// findWinner will loop through currentScores
// and return the index of the current highest score
int findWinner(int currentScores[NUM_PLAYERS]) {
    // store the current highest index
    int highestIndex = 0;
    
    // loop through and if we see anything higher
    // replace the current highest
    int i = 1;
    while (i < NUM_PLAYERS) {
        if (currentScores[i] > currentScores[highestIndex]) {
            // score is higher than previous highest
            // replace previous highest
            highestIndex = i;
        }
        i++;
    } 
    // highestIndex is now the index that contained the highest value
    return highestIndex;
}





Resource created Friday 02 October 2020, 01:40:45 PM.

file: playerScores.c


Back to top

COMP1511 20T3 (Programming Fundamentals) is powered by WebCMS3
CRICOS Provider No. 00098G