Hi everyone around here, im new and im hopint to give and get help
The task is to create a linked list consisting of bunny's, the bunny is a class.
Im having problems in managing the list itself. I have doubts about the Delete() function in the list, is it correct?
When the bunnies reach 10 years, they should die, that means, that the first 5 bunnies should die all tohether, but they dont, 3 of them do, the other 2 die each the following 2 years. The 2 survivors dont age when the 3 die, but they should. [Bolded]
Objects are added in the back of the list, so that Head points to the very first element. The OutOfFood() function is doing nothing but harm, although it should work. Kills half of them, and then just keeps killing... If they are a lot of them, then it even prints, that nameless or completely all-less bunnies are killed.
Ive noticed, that sometimes, so bunnies are created without something (Color, Name etc.).
Sorry for the long post, the code seems a mess and i dont know where even to start cheking.
Thanks in advance!

Code:
#include <iostream>
#include <time.h>
#include <string>

using namespace std;

char *Names[15]={"Phill","Colin","Bucket","Fluffy","Mister","Lilly","Rose","Shamandale","Yoshie","Jane","PeanutButter","Plank","Sucubus","Broken","Horse ****"};

class Bunny
{
public:
	string Sex;
	string Color;
	int Age;
	string Name;
	bool Mutant;

	Bunny *Next;

	int Random(int x)
	{
		return x=rand()%(x+1);
	}
	
	bool MutantBunny()
	{
		int X=Random(100);
		if(X<2)
		{
			return true;
		}
		return false;
	}

	string SexIsNotAChoise()
	{
		int R=Random(10);
		if(R<5)
		{
			Sex="Male";
		}
		else
		{
			Sex="Female";
		}
		return Sex;
	}

	string HopeImNotBlack()
	{
		int R=Random(100);
		if(R<24)
		{
			Color="White";
		}
		else if(R>24 && R<=49)
		{
			Color="Brown";
		}
		else if(R>50 && R<=75)
		{
			Color="Black";
		}
		else if(R>76)
		{
			Color="Spotted";
		}
		return Color;
	}

	int ImNotOld()
	{
		Age=0;
		return Age;
	}

	string HelloMyNameIs()
	{
		if(Mutant==true)
		{
			Name=Names[rand()%(14-10)+10];
		}
		else if(Sex=="Male")
		{
			Name=Names[rand()%5];
		}
		else if(Sex=="Female")
		{
			Name=Names[rand()%(9-5)+5];
		}
		return Name;
	}

	Bunny()
	{
		Mutant=MutantBunny();
		if(Mutant==true)
		{
			Sex=SexIsNotAChoise();
			Color="Green";
			Age=ImNotOld();
			Name=HelloMyNameIs();
		}
		else if(Mutant==false)
		{
			Sex=SexIsNotAChoise();
			Color=HopeImNotBlack();
			Age=ImNotOld();
			Name=HelloMyNameIs();
		}
		
	}

	void print()
	{
		cout<<"Bunny "<<Name<<" was born!";
		if(Mutant==true)
		{
			cout<<" He's a mutant..!"<<endl;
		}
		else
		{
			cout<<endl;
		}
	}

	~Bunny()
	{
		cout<<"A bunny with the name "<<Name<<" has died!"<<endl;
	}

};

class BunnyList
{
private:
	int size;
public:
	Bunny *Head;

	BunnyList()
	{
		size=0;
		Head=NULL;
	}

	int Count()
	{
		return size;
	}

	int AddBunny(Bunny* NewBunny)
	{
		if(Head==NULL)
		{
			Bunny *Temp=new Bunny;
			Temp=NewBunny;
			Temp->Next=Head;
			Head=Temp;
			return ++size;
		}
		else
		{
			Bunny *Current=new Bunny;
			Current=Head;
			while(Current->Next!=NULL) 
			{
				Current=Current->Next;
			}
			Current->Next=NewBunny; 
			NewBunny->Next=NULL;
			return ++size;
		}
	}

	Bunny *GetBunny(int Pos)
	{
		Bunny *Current=Head;
		for(int i=1;i<Pos && Current!=NULL;i++)
		{
			Current=Current->Next;
		}
		return Current;
	}

	bool Delete(int Pos)
	{
		if(GetBunny(Pos)==NULL)
		{
			return false;
		}
		else
		{
			if(Pos==1)
			{
				Bunny *Temp=Head->Next;
				Head=Temp;
				size--;
				return true;
			}
			else
			{
				GetBunny(Pos-1)->Next=GetBunny(Pos+1);
				size--;
			}
			return true;
		}
	}

	int MutantCheck()
	{
		int MutantCount=0;
		for(int i=1;i<Count() && GetBunny(i)!=NULL;i++)
		{
			if(GetBunny(i)->Mutant==true)
			{
				MutantCount++;
			}
		}
		return MutantCount;
	}

	int Male()
	{
		int M=0;
		for(int i=1;i<Count()+1 && GetBunny(i)!=NULL;i++)
		{
			if(GetBunny(i)->Sex=="Male" && GetBunny(i)->Age>2)
			{
				M++;
			}
		}
		return M;
	}

	int Female()
	{
		int F=0;
		for(int i=1;i<Count()+1 && GetBunny(i)!=NULL;i++)
		{
			if(GetBunny(i)->Sex=="Female" && GetBunny(i)->Age>2)
			{
				F++;
			}
		}
		return F;
	}

	bool WeWillMate()
	{
		int M=Male(),F=Female();
		if(M>=1 && F>=1)
		{
			return true;
		}
		else
		{
			return false;
		}
	}

	void OutOfFood()
	{
		if(Count()>100)
		{
			int k=Count()/2;
			for(int i=0;i<k;i++)
			{
				int z=rand()%k;
				if(GetBunny(z)!=NULL)
				{
					GetBunny(z)->~Bunny();
					Delete(z);
				}
				else
				{
					do{
						z=rand()%k;
					}
					while(GetBunny(z)!=NULL);
					GetBunny(z)->~Bunny();
					Delete(z);
				}
				 
			}
		}
	}

};

void PrintTheHorde(BunnyList* List)
{
		cout<<"The Horde consists of "<<List->Count()<<" bunnies, here they are: "<<endl;
		cout<<endl;
		for(int i=1;i<List->Count()+1 && List->GetBunny(i)!=NULL;i++)
		{
				Bunny *Temp=List->GetBunny(i);
				cout<<"Name: "<<Temp->Name<<" Sex: "<<Temp->Sex<<" Age: "<<Temp->Age<<" Color: "<<Temp->Color;
				if((Temp->Mutant)==true)
				{
					cout<<" Im a Mutant.."<<endl;
				}
				else if((Temp->Mutant)==false)
				{
					cout<<endl;
				}

		}
}

int main()
{
	srand(time(NULL));
	BunnyList *List=new BunnyList;

	for(int i=0;i<5;i++)
	{
		Bunny *NewBunny=new Bunny();
		List->AddBunny(NewBunny);
		NewBunny->print();
	}

	while(List->Count()>0)
	{
		for(int i=1;i<List->Count()+1 && List->GetBunny(i)!=NULL;i++)
			{
				Bunny *Temp=new Bunny;
				Temp=List->GetBunny(i);
				Temp->Age++;
				if(Temp->Age>10)
				{
					Temp->~Bunny();
					List->Delete(i);
				}
			}

		bool C=List->WeWillMate();
		if(C==true)
		{
			int k=List->Female();
			for(int i=0;i<k;i++)
			{
				Bunny *NewBunny=new Bunny();
				List->AddBunny(NewBunny);
				NewBunny->print();
			}
		}
		List->OutOfFood();
		PrintTheHorde(List);
		int m=List->Male(),f=List->Female();
		cout<<"Adult males: "<<m<<endl;
		cout<<"Adult females: "<<f<<endl;
		cout<<"The Horde consists of "<<List->Count()<<" bunnies! "<<endl;
		system("pause");
		system("cls");
	}
	return getchar();
}