Hi guys :)
I'm working on a project ( a game )
this is the code
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//####### Begin Class Node ###########
class Node
{
public:
string data;
Node* link;
Node(string x)
{
data = x;
link = NULL;
}
};
//####### Begin Class LinkList ###########
class LinkList
{
private:
Node* head,*end,*temp,*trav;
int count;
void PrintBack(Node* x)
{
if (!x)
{
PrintBack(x->link);
cout<<x->data<<" ";
}
}
public:
LinkList()
{
head = end = NULL;
temp = NULL;
count = 0;
}
bool Insert(string x)
{
if (!(temp = new Node(x)))
return false;
count++;
if (!head)
{
head = end = temp;
return true;
}
end->link = temp;
end = temp;
temp = NULL;
return true;
}
bool FindX(string x)
{
bool found;
found = false;
trav = head;
while(trav != NULL && !found)
if(trav->data == x)
found = true;
else
trav = trav->link;
return found;
}
bool Remove(string &x)
{
if (!head)
return false;
if (count == 1)
{
x = head->data;
delete head;
head = end = NULL;
count--;
return true;
}
x = head->data;
temp = head;
head = head->link;
delete temp; temp = NULL;
return true;
}
bool delX(string x)
{
string u;
if (!head)
return false;
if ( head->data == x)
{
Remove(u);
return true;
}
for ( temp = head, trav = head->link; trav ; temp = trav,trav = trav->link)
{
if (trav->data == x)
{
temp->link=trav->link;
if(trav==end)
end = temp;
delete trav;
trav = NULL;
return true;
}
}
return false;
}
void PrintLinkList()
{
if(!head)
cout<<"\nLinkList is Empty ... "<<endl;
else
for ( trav = head ; trav ; trav = trav->link)
{
cout<<trav->data<<" ";
}
}
void PrintBackword()
{
temp = head;
PrintBack(head);
}
~LinkList()
{
while(head != NULL)
{
temp = head;
head = head->link;
delete temp;
}
end = head = temp = NULL;
count = 0;
}
void printNode(string &x)
{
trav = head;
x = trav->data;
trav=trav->link;
}
int counter()
{
return count;
}
};
//####### Begin Function Main ###########
int main()
{
string A[5000];
string x;
string p;
int choose;
LinkList lib; // Creating Object from the class LinkList
cout << "Choose Which file you want to try the game on?\n";
cout << "1 - madlib1.txt\n";
cout << "2 - madlip2.txt\n";
cin >> choose;
// Switch loop to choose more than one file to play *FOR THE BONUS* xD
switch( choose )
{
case 1:
// Constructor that opens the file
ifstream fin("madlip1.txt");
// If statement to check if the file can be opened or not.
if( !fin )
{
cerr << "\nError, Can't open the File.!\n";
exit(1);
} // end if statement
break; // to exit switch
case 2:
// Constructor that opens the file
ifstream fin("madlip2.txt");
// If statement to check if the file can be opened or not.
if( !fin )
{
cerr << "\nError, Can't open the File.!\n";
exit(1);
} // end if statement
break; // to exit switch loop
} // end switch
int i =0; // Initiate this variable for the use of the array.
// While Loop to read the File, and save the content in the array
while( fin>>x )
{
A[i] = x;
i++;
}
// For Loop to insert the Keywords to the LinkList.
for( int j = 0; j < i; j++ )
{
if (A[j] == "adjective")
lib.Insert("Adjective");
if (A[j] == "verb")
lib.Insert("Verb");
if (A[j] == "name")
lib.Insert("Noun");
if (A[j] == "adverb")
lib.Insert("Adverb");
}
int y = lib.counter();
while (y != 0)
{
cout<<"Enter an ";
lib.printNode(x);
cout<<x;
cout<<" ";
lib.Remove(x);
cin>>p;
lib.Insert(p);
cout<<endl;
y--; // Decrement y until we finish from all the Keywords, to reach 0.
}
// For loop to replace each Keyword with the suitable word from the user.
for(int r = 0; r < i; r++)
{
if (A[r] == "adjective")
{
lib.printNode(x);
A[r] = x;
lib.Remove(x);
}
if (A[r] == "verb")
{
lib.printNode(x);
A[r] = x;
lib.Remove(x);
}
if (A[r] == "name")
{
lib.printNode(x);
A[r] = x;
lib.Remove(x);
}
if (A[r] == "adverb")
{
lib.printNode(x);
A[r] = x;
lib.Remove(x);
}
}
// For loop to output the new updated paragraph
for(int k = 0; k < i ; k++)
{
if(A[k] =="!")
cout<<"\n\n\n";
cout<<A[k]<<" ";
}
return 0; // To indicate successfully termination
}
//####### End Function Main ###########
See the MAIN
I did tried Switch Loop but it doesn't work
Any good Plans? :/ it'll be appreciated :)