Programming c assignment 7 help

// Fill in your own header comment

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

// Constants to be used.

// Passing score
#define SCORE 70

// Symbolic constants for true and false.
#define FALSE 0
#define TRUE 1

// Function prototypes – do not change these
void set_stats(int * d_strength, int * d_intel, int * d_agil);
void print_stats(int strength, int intelligence, int agility, char name[]);
int menu();
int weather();
int train_strength(int weather, char name[]);
int train_intelligence(int weather, char name[]);
int train_agility(int weather, char name[]);
int obstacle_course(int weather, int strength, int intel, int agility);
void end_message(int completed, char name[]);

// Main function
int main() {
    int num_day, ans, weather_value, score = 0, completed = FALSE;
    int dragon_strength, dragon_intelligence, dragon_agility;

    char name[20], answer[4];

    srand(time(0));

    printf(“Welcome to Dragon Training!n”);
    printf(“You’ve been assigned a new dragon! Would you like to give it a name? (yes/no)n”);
    scanf(“%s”, answer);

    if(strcmp(answer, “yes”) == 0) {
        printf(“Great! What would like to call your dragon?n”);
        scanf(“%s”, name);
    }
    else
        strcpy(name, “your dragon”);

    printf(“nTo complete training, %s must finish the final nobstacle course with a score of 70 or better.n”, name);
    printf(“nYou may attempt the obstacle course at any time, nbut you must finish within 10 days.n”);
    printf(“nBetter get started!n”);

    set_stats(&dragon_strength, &dragon_intelligence, &dragon_agility);

    for (num_day = 1; num_day <= 10; num_day++) {
        printf(“nIt is Day #%d.n”, num_day);
        print_stats(dragon_strength, dragon_intelligence, dragon_agility, name);
        weather_value = weather();
        ans = menu();

        switch(ans) {
            case 1:
                dragon_strength += train_strength(weather_value, name);
                break;
            case 2:
                dragon_intelligence += train_intelligence(weather_value, name);
                break;
            case 3:
                dragon_agility += train_agility(weather_value, name);
                break;
            case 4:
                score = obstacle_course(weather_value, dragon_strength, dragon_intelligence, dragon_agility);
                printf(“%s scored a %d on their obstacle course run!n”, name, score);
                break;
        }

        if(score >= SCORE) {
            completed = TRUE;
            break;
        }
    }

    end_message(completed, name);

  return 0;
}

// Pre-conditions: d_strength, d_intel, and d_agil are pointers to variables that store
//                 the dragon’s strength, intelligence, and agility statistics.
// Post-condition: Each of the dragon’s statistics are set to a pseudorandom
//                 initial value.
//
// What to do in this function: Set each of the dragon’s values to a
// pseudorandom initial value.
// Strength should be a random value from 0-99.  Then add 5 to make sure the
// dragon has at least 5 strength.
// Intellect should be a random value from 1-10.
// Agility should be a random value from 0-19.  Then add 2 to make sure the
// dragon has at least 2 agility.

void set_stats(int * d_strength, int * d_intel, int * d_agil) {

}

// Pre-conditions: There are no parameters for this function.
// Post-condition: The user is presented with a menu and given
//                 the opportunity to respond. If they respond with
//                 a valid menu option, return the user’s choice.
//
// What to do in this function: Prompt the user with the menu and
// read in their response.  If their answer is less than 0 or greater
// than 5, continue to prompt them until they provide a valid answer.
// Then, return their answer.
int menu() {

}

// Author: Arup Guha
// Pre-condition: None
// Post-condition: The weather report for the day is printed and the
//                 corresponding weather status in between 1 and 5,
//                 inclusive, is returned.
int weather() {
  // Get the weather status value.
  int retval = rand()%5 + 1;

  printf(“nHere is today’s weather forecast:n”);

  // Print out the appropriate forecast for that status.n”);
  if (retval == 1)
    printf(“It is cloudy with a high chance of rain.n”);
  else if (retval == 2)
    printf(“It is partly cloudy and windy.n”);
  else if (retval == 3)
    printf(“It is partly sunny with low humidity.n”);
  else if (retval == 4)
    printf(“It is warm and sunny with medium winds.n”);
  else
    printf(“It’s a perfect beach day. Sunny and hot!n”);

    printf(“n”);

  return retval; // Return this status value.
}

// Pre-condition: strength, intelligence, agility, and name are variables
//                that represent the name of the dragon and it’s stats
// Post-condition: A listing of the dragon’s stats are printed
//
// What to do with this function: This is fairly self-explanatory from the
// pre and post conditions. Look to the sample given in the assignment for
// the format.
void print_stats(int strength, int intelligence, int agility, char name[]) {

}

// Pre-condition: weather is an integer from 1-5 that represents the
//                current day’s forecast.  name is the dragon’s name.
// Post-condition: A day’s strength taining is carried out.  The current
//                 gain in strength is printed and returned.
//
// What to do with this function: First, determine the maximum possible
// gain in strength by mutliplying the weather by 3 and adding 5.
// If the maximum possible gain is less than 10, set it to 10.
// Then, determine the actual gain by generation a psuedorandom
// number between 1 and the maximum gain.
// Print the amount of strength gained according to the sample run,
// and return that value
int train_strength(int weather, char name[]) {

}

// Pre-condition: weather is an integer from 1-5 that represents the
//                current day’s forecast.  name is the dragon’s name.
// Post-condition: A day’s knowkedge taining is carried out.  The current
//                 gain in knwoledge is printed and returned.
//
// What to do with this function: First, determine the maximum possible
// gain in knowledge by dividing 15 by the weather and adding 5.
// If the maximum possible gain is less than 10, set it to 10.
// Then, determine the actual gain by generation a psuedorandom
// number between 1 and the maximum gain.
// Print the amount of intellect gained according to the sample run,
// and return that value
int train_intelligence(int weather, char name[]) {

}

// Pre-condition: weather is an integer from 1-5 that represents the
//                current day’s forecast.  name is the dragon’s name.
// Post-condition: A day’s agility taining is carried out.  The current
//                 gain in agility is printed and returned.
//
// What to do with this function: First, determine the maximum possible
// gain in agility using the following function: 13 + weather%5 + (weather+4)%5
// Then, determine the actual gain by generation a psuedorandom
// number between 1 and the maximum gain.
// Print the amount of agility gained according to the sample run,
// and return that value
int train_agility(int weather, char name[]) {

}

// Pre-condition: weather is an integer from 1-5 that represents the
//                current day’s forecast.  strength, intel, and agility
//                are variables representing the dragon’s stats
// Post-condition: A day’s obstacle course is run and a score for the
//                 run is returned.
int obstacle_course(int weather, int strength, int intel, int agility){
    return 10 + 2*weather + strength/4 + intel + agility/2;
}

// Pre-condition: completed is an integer that represents either TRUE or FALSE
//                name is the dragon’s name.
// Post-condition: The user’s overall result is printed out.
//
// What to do with this function: See if the dragon completed the obstacle
// course.  Print the appropriate response according to the sample run.
void end_message(int completed, char name[]) {

}

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply