Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
Jake Beetham Pokedex COM5001M
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jake.beetham
Jake Beetham Pokedex COM5001M
Commits
e493e7d7
Commit
e493e7d7
authored
Jan 17, 2022
by
jake.beetham
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Delete Pokedex Assessment C
parent
e58e6f67
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
237 deletions
+0
-237
Pokedex Assessment C
Pokedex Assessment C
+0
-237
No files found.
Pokedex Assessment C
deleted
100644 → 0
View file @
e58e6f67
#include <stdio.h>
#include<stdlib.h> // We required stdlib.h for malloc
#include<string.h>
//_________________________________________________________section 1 - structs
//setting up a pokemon node
typedef struct PokemonNode {
//setting the data for the creation of a pokemon
char pokemonName[50];
char pokemonType[50];
char pokemonAbility[50];
//this will allow me to move to the next node in the list
struct PokemonNode *next;
} PokemonNode;
//setting up a player node
typedef struct PlayerNode {
//setting the data for the creation of a player
char playerName[50];
int pokemonCounter;
PokemonNode* PokemonArray[20];
//this will allow me to move to the next node in the list
struct PlayerNode *next;
} PlayerNode;
//setting up pokedex struct
typedef struct Pokedex {
PokemonNode* PokemonHead; //pointer to pokemon list
PlayerNode* PlayerHead; //pointer to pokemon list
} Pokedex;
//______________________________________________section 2 - setting up functions
//pokemon functions
PokemonNode* NewPokemonNode(char pokemonName[50], char pokemonType[50], char pokemonAbility[50]);
void AddPokemonToList(PokemonNode *start, char pokemonName[50], char pokemonType[50], char pokemonAbility[50]);
PokemonNode* FindPokemon(Pokedex* pokedex, char pokemonName[50]);
//player functions
PlayerNode* NewPlayerNode(char playerName[50]) ;
void AddPlayerToList(PlayerNode *start, char playerName[50]);
PlayerNode* FindPlayer(Pokedex* pokedex, char playerName[50]);
void AddPokemonToPlayer(Pokedex* pokedex, char playerName[], char pokemonName[]);
//pokedex functions
void DisplayPokemonDetails(Pokedex* pokedex, char playerName[50]);
void DisplayPlayerDetails(Pokedex* pokedex, char playerName[50]);
void ListPokemon(Pokedex* pokedex);
void ListPlayers(Pokedex* pokedex);
//______________________________________________section 3 - main
int main(void) {
//creating a head for the pokemon list
PokemonNode *PokemonHead = NewPokemonNode("Ludicolo", "Water", "Bubble Beam");
//creating a head for the player list
PokemonNode *PlayerHead = NewPlayerNode("Brock");
//using the AddPokemonToList function to add more pokemon into the list
AddPokemonToList(PokemonHead, "Minun", "Electric", "Thunder Wave");
AddPokemonToList(PokemonHead, "Monferno", "Fire", "Overheat");
AddPokemonToList(PokemonHead, "Froslass", "Ice", "Ice Fang");
AddPokemonToList(PokemonHead, "Reshiram", "Dragon", "Outrage");
//using the AddPlayerToList function to add more players into the list
AddPlayerToList(PlayerHead, "Ash");
AddPlayerToList(PlayerHead, "Dawn");
AddPlayerToList(PlayerHead, "Morty");
AddPlayerToList(PlayerHead, "May");
printf("Welcome to the Pokedex!\n");
printf("Please select one of the options below: \n");
//creating a menu selection variable
int selectOption;
printf("1 • Display all pokemon stored inside of the pokedex: \n");
printf("2 • Display details about a specific pokemon: \n");
printf("3 • Display the players inside our system: \n");
//taking the input of the user selection
scanf("%d", &selectOption);
//if the user selects this option they will be provided all details about every pokemon stored inside of the pokedex
if (selectOption == 1){
printf("You have chosen to display all pokemon stored inside of the pokedex... \n");
PokemonNode *temp = PokemonHead;
//iterating through the list and print each pokemon stored inside
while (temp->next != NULL){
printf("Pokemon Name: %s \n", temp->pokemonName);
printf("Pokemon Type: %s \n", temp->pokemonType);
printf("Pokemon Ability: %s \n\n", temp->pokemonAbility);
temp = temp->next;
}
main();
}
if (selectOption == 2){
printf("You have chosen to display the details of only one pokemon... \n");
printf("Which pokemon would you like to view: \n");
char whichPokemon;
//taking the input of the user selection
scanf("%s", &whichPokemon);
PokemonNode *temp = PokemonHead;
while (temp->next != NULL){
if(strcmp(temp->pokemonName, &whichPokemon) == 0){
printf("Pokemon Name: %s \n", temp->pokemonName);
printf("Pokemon Type: %s \n", temp->pokemonType);
printf("Pokemon Ability: %s \n\n", temp->pokemonAbility);
main();
}
return NULL;
main();
}
}
if (selectOption == 3){
printf("You have chosen to display all of the players in our system... \n");
PlayerNode *temp = PlayerHead;
//iterating through the list and print each pokemon stored inside
while (temp->next != NULL){
printf("Player Name: %s \n\n", temp->playerName);
temp = temp->next;
}
main();
}
return 0;
}
//______________________________________________section 4 - creating functions
//creating a new pokemon node
PokemonNode* NewPokemonNode(char pokemonName[50], char pokemonType[50], char pokemonAbility[50]){
// creating a pointer to a node structure, set it to NULL for safety
PokemonNode *new_node = NULL;
// setting aside space in memory for a node structure. If this fails new_node will be set to NULL
new_node = malloc(sizeof(PokemonNode));
// ensuring the node exists before accessing it.
if (new_node != NULL)
{
// setting data values as required
strcpy(new_node->pokemonName, pokemonName);
strcpy(new_node->pokemonType, pokemonType);
strcpy(new_node->pokemonAbility, pokemonAbility);
// Set next to NULL
new_node->next = NULL;
}
return new_node;
}
//adding pokemon to the list
void AddPokemonToList(PokemonNode *start, char pokemonName[50], char pokemonType[50], char pokemonAbility[50]){
PokemonNode *temp = start;
// If next is NULL we are on the last entry in the list
while (temp->next != NULL){
//moving us onto the next node in the list
temp = temp->next;
}
temp->next = NewPokemonNode(pokemonName, pokemonType, pokemonAbility);
}
//finding a pokemon inside the pokedex
PokemonNode* FindPokemon(Pokedex* pokedex, char pokemonName[50]){
PokemonNode *temp = pokedex->PokemonHead;
while (temp->next != NULL){
if(strcmp(temp->pokemonName, pokemonName)== 0){
return temp;
}
return NULL;
}
}
//creating a new player node
PlayerNode* NewPlayerNode(char playerName[50]){
// creating a pointer to a node structure, set it to NULL for safety
PlayerNode *new_node = NULL;
// setting aside space in memory for a node structure. If this fails new_node will be set to NULL
new_node = malloc(sizeof(PokemonNode));
// ensuring the node exists before accessing it.
if (new_node != NULL)
{
// setting data values as required
strcpy(new_node->playerName, playerName);
new_node->pokemonCounter = 0;
// Set next to NULL
new_node->next = NULL;
}
return new_node;
}
//adding players to the list
void AddPlayerToList(PlayerNode *start, char playerName[50]){
PlayerNode *temp = start;
// If next is NULL we are on the last entry in the list
while (temp->next != NULL){
//moving us onto the next node in the list
temp = temp->next;
}
temp->next = NewPlayerNode(playerName);
}
//findingn a player inside of the list
PlayerNode* FindPlayer(Pokedex* pokedex, char playerName[50]){
PlayerNode *temp = pokedex->PlayerHead;
while (temp->next != NULL){
if(strcmp(temp->playerName, playerName)== 0){
return temp;
}
return NULL;
}
}
void AddPokemonToPlayer(Pokedex* pokedex, char playerName[], char pokemonName[]){
PlayerNode * playerNodePtr = FindPlayer(pokedex, playerName);
//checking if the players team is currently full
if (playerNodePtr->pokemonCounter >=6){
printf("This player's team is currently full, please try again...");
}
//if the players team has less than 6 pokemon we can add a pokemon to the players team
if (playerNodePtr->pokemonCounter <6){
//increases players pokemon team number by 1
playerNodePtr->pokemonCounter = playerNodePtr->pokemonCounter + 1;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment