Hello forum!
Disclaimer: THIS IS HOMEWORK
However, I do not want the answers to everything.
I'm just very stuck on a single part.
Referring to ->
//function call to IsAWinner - returns to winOrLose variable (0 or 1)
IsAWinner();
//function call to CompareTheLetters - gives the user a message
CompareTheLetters();
For some reason, I'm getting "Error too few arguments in function call". Why am I getting this error?
Thanks!
Code:
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>
#define MAXGUESSES 4
//function prototypes with a comment for each one describing what the function does.
//Copy and paste from assignment
//function prototypes with a comment for each one describing what the function does.
//Copy and paste from assignment
//this function provides instructions to the user on how to play the game
void GuessItRules();
//this function runs one game.
//input: character from the file
//The function returns a 0 if the user wins the game and a 1 if the user loses a game
int PlayOneGame(char);
//ALL FUNCTIONS BELOW are called from inside the PlayOneGame function described above
//this function prompts the player to make a guess and returns that guess
char GetTheLetter();
//input: character from file and character guess from user
//Returns 0 if the guess matches the solution and returns a 1 if they do not match
int IsAWinner(char, char);
//input: character from file and character guess from user
//Prints a message if the guess comes alphabetically before, after, or equal to the letter
void CompareTheLetters(char guess, char letter);
int main()
{
//declare additional variables
//declare FILE pointer
FILE *inp;
int numGames, i = 0;
//letter from file
char letter;
//variable for the return of the PlayOneGame function
//int didYouWin;
//display instructions
GuessItRules();
//connect to the file HINT: use fopen
inp = fopen("letterinput.txt", "r");
//get number of games to play
printf("How many games? (1 to 5): ");
scanf("%d", &numGames);
//this for loop will allow the player to play more than one game
//without recompiling
for (i = 0; i < numGames; i++)
{
//get a letter from file - use fscanf
fscanf(inp, "%c", &letter);
//print the letter back onto the screen, just to test
//printf("\nThe letter is %c\n", letter);
//Play one game (Call PlayOneGame function)
//remember the function has an int return type
printf("Let's play game %d\n", i + 1);
//tell the player if they have won or lost (test the variable didYouWin)
}
//close file
return 0;
}
//Function definitions
//keep the comments from the assignment
//this function prompts the player to make a guess and returns that guess
char GetTheLetter()
{
char guess;
printf("Make a guess: \n");
scanf("%c", &guess);
return guess;
}
void CompareTheLetters(char guess, char letter)
{
if (guess == letter)
{
printf("You win!");
}
else
if (guess < letter)
{
printf("The letter comes before your guess (%c)", guess);
}
else
if (guess > letter)
{
printf("The letter comes after your guess (%c)", guess);
}
}
int IsAWinner(char guess, char letter)
{
if (guess == letter)
{
return 1;
}
else
if (guess < letter)
{
return 0;
}
else
if (guess > letter)
{
return 0;
}
}
int PlayOneGame(char solution)
{
int numGuesses = 0;
//SHOULD BE INITIALZED TO 1
int winOrLose = 1;
// user guess
char guess;
//As long as the user has not used up the maximum number
//of guesses and has not guessed correctly
//the game will continue using this while loop
while (numGuesses < MAXGUESSES && winOrLose == 1)
{
//function call to GetTheletter - returns to guess variable
GetTheLetter();
//function call to IsAWinner - returns to winOrLose variable (0 or 1)
IsAWinner();
//function call to CompareTheLetters - gives the user a message
CompareTheLetters();
//update counter for number of guesses used
numGuesses = numGuesses + 1;
}
return winOrLose; //(0 or 1)
}
//add the other function definitions
void GuessItRules()
{
printf("Welcome to the Letter Guessing Game\n");
printf("\nFirst, you will enter the number of games you want to play (1 - 5 games)\n");
printf("For each game you will have 4 chances to guess each letter\n");
printf("Let's begin:\n");
}