//Moves each ghost sprite out of the four sprites according to my move method
 public void GhostsMove()
 {
     //The purpose of the MoveGhosts method is to loop through all the ghosts and call their move method.
     foreach (Ghost ghost in allghosts)
     {
         ghost.Move();
     }
 }
        static void Main()
        {
            //İmleci Görünmez yapmak için
            Console.CursorVisible = false;

            //
            //Sound Effects
            //

            SoundPlayer Walk = new SoundPlayer();

            Walk.SoundLocation = Environment.CurrentDirectory + "\\SFX/Walk.wav";
            SoundPlayer Gover = new SoundPlayer();

            Gover.SoundLocation = Environment.CurrentDirectory + "\\SFX/GameOver.wav";
            SoundPlayer Victory = new SoundPlayer();

            Victory.SoundLocation = Environment.CurrentDirectory + "\\SFX/Victory.wav";

            //
            //LOADING
            //

            Loading();
            //
            //Mega Yem
            //
            Yem[] Yemlik = new Yem[6];
            int[,] Konum = new int[6, 2] {
                { 9, 5 }, { 9, 16 }, { 32, 5 }, { 32, 16 }, { 19, 2 }, { 22, 19 }
            };
            for (int i = 0; i < 6; i++)
            {
                Yem k1 = new Yem();
                k1.X      = Konum[i, 0];
                k1.Y      = Konum[i, 1];
                Yemlik[i] = k1;
            }
            //
            //Mini Yem
            //
            MiniYem[] Puan = new MiniYem[22];
            int[,] Local = new int[22, 2] {
                { 11, 4 }, { 11, 6 }, { 30, 4 }, { 30, 6 }, { 19, 8 }, { 22, 8 }, { 11, 15 }, { 11, 17 }, { 30, 15 }, { 30, 17 }, { 19, 13 }, { 22, 13 }, { 3, 8 }, { 38, 8 }, { 3, 13 }, { 38, 13 }, { 18, 3 }, { 23, 18 }, { 4, 5 }, { 4, 16 }, { 37, 5 }, { 37, 16 }
            };
            //{18,3},{23,18},{4,5},{4,16},{37,5},{37,16}

            Pacman CLU = new Pacman();

            for (int i = 0; i < 22; i++)
            {
                MiniYem k2 = new MiniYem();
                k2.X    = Local[i, 0];
                k2.Y    = Local[i, 1];
                Puan[i] = k2;
            }

            //
            //Green Ghost Object
            //
            Ghost Enemy = new Ghost();

            Enemy.X      = 15;
            Enemy.Y      = 18;
            Enemy.BColor = ConsoleColor.Green;
            Enemy.FColor = ConsoleColor.DarkMagenta;
            int  AdımX = 15;
            int  AdımY = 18;
            byte flag  = 0;

            //
            //Red Ghost Object
            //
            Ghost Jelly = new Ghost();

            Jelly.X      = 15;
            Jelly.Y      = 18;
            Jelly.BColor = ConsoleColor.Red;
            Jelly.FColor = ConsoleColor.Gray;
            int  StepX  = 26;
            int  StepY  = 3;
            byte Bayrak = 0;

            bool           Game = true;
            ConsoleKeyInfo Key  = Console.ReadKey();

            bool isKeyPressed = false;

            Console.Clear();
            //Menu.Stop();
            DrawFrame();
            PacMap.Map();
            //bool Game = false;
            Walk.PlayLooping();
            while (Game)
            {
                //PacMap.Map();
                //Key = Console.ReadKey();

                CLU.PacMove(Key);
                if (Console.KeyAvailable)
                {
                    Key          = Console.ReadKey();
                    isKeyPressed = true;
                }
                else
                {
                    isKeyPressed = false;
                }
                CLU.PacMove(Key, isKeyPressed);
                CLU.PacManCiz();

                //
                //Green Ghost
                //
                Enemy.tX = Enemy.X;
                Enemy.tY = Enemy.Y;
                Enemy.X  = AdımX;
                Enemy.Y  = AdımY;

                if (((Enemy.X == CLU.X) && (Enemy.Y == CLU.Y)) || ((Enemy.tX == CLU.X) && (Enemy.tY == CLU.X)) || ((Enemy.X == CLU.tX) && (Enemy.X == CLU.tY)) || ((Enemy.tX == CLU.tX) && (Enemy.tY == CLU.tY)))
                {
                    Gover.Play();
                    Game = false;
                }
                Enemy.Ciz();
                Enemy.Move(Enemy.tX, Enemy.tY);

                if (flag == 0)
                {
                    AdımY--;
                    AdımX = 15;
                    if (AdımY <= 3)
                    {
                        flag = 1;
                    }
                }
                else if (flag == 1)
                {
                    AdımY = 3;
                    AdımX--;
                    if (AdımX <= 7)
                    {
                        flag = 2;
                    }
                }
                else if (flag == 2)
                {
                    AdımY = 3;
                    AdımX++;
                    if (AdımX >= 15)
                    {
                        flag = 3;
                    }
                }
                else if (flag == 3)
                {
                    AdımY++;
                    AdımX = 15;
                    if (AdımY >= 18)
                    {
                        flag = 0;
                    }
                }
                //


                //
                //Red Ghost
                //
                Jelly.tX = Jelly.X;
                Jelly.tY = Jelly.Y;
                Jelly.X  = StepX;
                Jelly.Y  = StepY;

                if ((Jelly.X == CLU.X) && (Jelly.Y == CLU.Y))
                {
                    Gover.Play();
                    Game = false;
                }
                Jelly.Ciz();
                Jelly.Move(Jelly.tX, Jelly.tY);

                if (Bayrak == 0)
                {
                    StepY++;
                    StepX = 26;
                    if (StepY >= 18)
                    {
                        Bayrak = 1;
                    }
                }
                else if (Bayrak == 1)
                {
                    StepY = 18;
                    StepX++;
                    if (StepX >= 34)
                    {
                        Bayrak = 2;
                    }
                }
                else if (Bayrak == 2)
                {
                    StepY = 18;
                    StepX--;
                    if (StepX <= 26)
                    {
                        Bayrak = 3;
                    }
                }
                else if (Bayrak == 3)
                {
                    StepY--;
                    StepX = 26;
                    if (StepY <= 3)
                    {
                        Bayrak = 0;
                    }
                }
                //

                //PacMap
                PacMap.Map();
                for (int i = 0; i < 6; i++)
                {
                    Yemlik[i].YemCiz();
                    if (((Yemlik[i].X == CLU.X) && (Yemlik[i].Y == CLU.Y)) && (Yemlik[i].Exist == true))
                    {
                        Yemlik[i].Exist = false;
                        CLU.PacManCiz();
                        CLU.Score += 20;
                        //Walk.Play();
                    }
                }
                //
                for (int i = 0; i < 22; i++)
                {
                    Puan[i].YemCiz();
                    if (((Puan[i].X == CLU.X) && (Puan[i].Y == CLU.Y)) && (Puan[i].Exist == true))
                    {
                        Puan[i].Exist = false;
                        CLU.PacManCiz();
                        CLU.Score += 5;
                        //Walk.Play();
                    }
                }
                //
                //DrawFrame
                DrawFrame();
                //Thread.Sleep(20);
                CLU.PrintScore();
                //
                //Score Limit
                //
                if (CLU.Score >= 230)
                {
                    Walk.Stop();
                    Victory.Play();
                    Game = false;
                }
                Thread.Sleep(100);
            }

            if (CLU.Score < 230)
            {
                GameOver(CLU.Score);
            }
            else
            {
                GameWon(CLU.Score);
            }
            bool ReGame = Replay();

            if (ReGame == true)
            {
                Main();
            }
            else
            {
                Environment.Exit(0);
            }
        }