public static void YolSecimi(string[,] map, int i)
        {
            puan = 0;
            Harita harita = new Harita();

            Console.Write(System.Environment.NewLine);
            Console.Write(" \t \t \t \t Başlangıç yolu seçiniz : " + System.Environment.NewLine);
            string gelenDeger = Console.ReadLine();

            if (gelenDeger == "1" || gelenDeger == "2" || gelenDeger == "3")
            {
                secim = Convert.ToInt32(gelenDeger);
                Console.Clear();
                harita.DrawGameMap(map, i, secim, puan);
            }
            else
            {
                Console.Write(" \t \t \t \t Geçersiz bir yol seçtiniz");
            }
        }
        static void Main(string[] args)
        {
            StartGame();
            Console.Title = "Labirent Oyunu";
            Console.ReadLine();

            Harita harita = new Harita();

            string[,] map      = harita.CreateMap();
            string[,] bombalar = new string[10, 10];


            for (int k = 0; k < 10; k++)
            {
                for (int m = 0; m < 10; m++)
                {
                    if (map[k, m] == "2")
                    {
                        bombalar[k, m] = "2";
                        map[k, m]      = "1";
                    }
                }
            }


            int i = 0;

            harita.DrawFirstMap(map, i);
            Console.Write(System.Environment.NewLine);

            bool isFinish = true;

            while (isFinish)
            {
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;

                if (secim == 0)
                {
                    YolSecimi(map, i);
                }
                else
                {
                    Console.Write(System.Environment.NewLine);
                    Console.Write("Hareket Giriniz (w-a-s-d) - bombalar (g)" + System.Environment.NewLine);

                    string hareketDegeri = Console.ReadLine();

                    if (hareketDegeri != "w" && hareketDegeri != "a" && hareketDegeri != "s" && hareketDegeri != "d" && hareketDegeri != "g")
                    {
                        Console.Write(" \t \t \t \t Yanlış değer girdiniz.");
                    }
                    else
                    {
                        Hareket hareket = new Hareket();
                        puan = hareket.MoveK(hareketDegeri, map, bombalar, puan);

                        //-999 oyun kazanıldı
                        //-500 başlangıca dönüş yapıldı
                        //-700 bomba bulundu
                        if (puan == -999)
                        {
                            isFinish = false;
                        }
                        else if (puan == -500)
                        {
                            Console.Clear();

                            Harita newHarita = new Harita();
                            map = newHarita.CreateMap();

                            for (int k = 0; k < 10; k++)
                            {
                                for (int m = 0; m < 10; m++)
                                {
                                    if (map[k, m] == "2")
                                    {
                                        bombalar[k, m] = "2";
                                        map[k, m]      = "1";
                                    }
                                }
                            }

                            Console.BackgroundColor = ConsoleColor.Black;
                            Console.ForegroundColor = ConsoleColor.White;

                            newHarita.DrawFirstMap(map, 0);

                            Console.BackgroundColor = ConsoleColor.Black;
                            Console.ForegroundColor = ConsoleColor.White;



                            secim = 0;
                            puan  = 0;
                        }
                        else if (puan == -700)
                        {
                            Console.WriteLine("BOMBA Oyunu kaybettin.");
                            isFinish = false;
                            Console.ReadLine();
                        }
                    }
                }
            }
        }
示例#3
0
        public int MoveK(string key, string[,] map, string[,] bombalar, int puan)
        {
            Console.Clear();
            Harita harita = new Harita();
            int    konumX = 0;
            int    konumY = 0;

            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    if (map[i, j] == "K")
                    {
                        konumX = i;
                        konumY = j;
                    }
                }
            }

            //ConsoleKeyInfo KeyInput = Console.ReadKey(true);
            if (key == "w")
            {
                konumX--;
                if (map[konumX, konumY] == "0")
                {
                    konumX++;
                    puan--;
                    Program.UyariVer();
                    harita.DrawMoveGameMap(map, puan);
                    return(puan);
                }
                else if (bombalar[konumX, konumY] == "2")
                {
                    //Console.WriteLine("BOMBA Oyunu kaybettin.");
                    puan = -700;
                    return(puan);
                }
                else
                {
                    map[konumX + 1, konumY] = "1";
                    map[konumX, konumY]     = "K";
                    if (konumX == 0)
                    {
                        Console.Clear();
                        Console.WriteLine("Oyun Bitti. Puanınız : " + puan);
                        Console.ReadLine();
                        puan = -999;
                    }
                    else
                    {
                        puan++;
                        harita.DrawMoveGameMap(map, puan);
                    }


                    return(puan);
                }
            }
            else if (key == "s")
            {
                if ((konumX == 9 && konumY == 1) || (konumX == 9 && konumY == 4) || (konumX == 1 && konumY == 8))
                {
                    puan = -500;
                    return(puan);
                }
                else
                {
                    konumX++;
                    if (map[konumX, konumY] == "0")
                    {
                        konumX--;
                        harita.DrawMoveGameMap(map, puan);
                        Program.UyariVer();
                        puan--;
                        return(puan);
                    }
                    else if (bombalar[konumX, konumY] == "2")
                    {
                        //Console.WriteLine("BOMBA Oyunu kaybettin.");
                        puan = -700;
                        return(puan);
                    }
                    else
                    {
                        map[konumX - 1, konumY] = "1";
                        map[konumX, konumY]     = "K";
                        puan++;
                        harita.DrawMoveGameMap(map, puan);
                        return(puan);
                        //    if ((konumX == 9 && konumY == 1) || (konumX == 9 && konumY == 4) || (konumX == 1 && konumY == 8))
                        //    {
                        //        puan = -500;
                        //        return puan;
                        //    }
                        //    else
                        //    {

                        //    }
                        //}
                    }
                }
            }
            else if (key == "a")
            {
                if (konumY == 0)
                {
                    puan--;
                    Program.UyariVer();
                    harita.DrawMoveGameMap(map, puan);
                    return(puan);
                }
                else
                {
                    konumY--;
                    if (map[konumX, konumY] == "0")
                    {
                        konumY++;
                        puan--;
                        Program.UyariVer();
                        harita.DrawMoveGameMap(map, puan);
                        return(puan);
                    }
                    else if (bombalar[konumX, konumY] == "2")
                    {
                        //Console.WriteLine("BOMBA Oyunu kaybettin.");
                        puan = -700;
                        return(puan);
                    }
                    else
                    {
                        map[konumX, konumY + 1] = "1";
                        map[konumX, konumY]     = "K";
                        puan++;
                        harita.DrawMoveGameMap(map, puan);
                        return(puan);
                    }
                }
            }
            else if (key == "d")
            {
                if (konumY == 9)
                {
                    puan--;
                    Program.UyariVer();
                    harita.DrawMoveGameMap(map, puan);
                    return(puan);
                }
                else
                {
                    konumY++;
                    if (map[konumX, konumY] == "0")
                    {
                        konumY--;
                        puan--;
                        Program.UyariVer();
                        harita.DrawMoveGameMap(map, puan);
                        return(puan);
                    }
                    else if (bombalar[konumX, konumY] == "2")
                    {
                        //Console.WriteLine("BOMBA Oyunu kaybettin.");
                        puan = -700;
                        return(puan);
                    }
                    else
                    {
                        map[konumX, konumY - 1] = "1";
                        map[konumX, konumY]     = "K";
                        puan++;
                        harita.DrawMoveGameMap(map, puan);
                        return(puan);
                    }
                }
            }
            else if (key == "q")
            {
                Environment.Exit(0);
            }
            else if (key == "g")
            {
                bool bombaAcik = true;
                foreach (var item in map)
                {
                    if (item == "2")
                    {
                        bombaAcik = false;
                    }
                }

                if (!bombaAcik)
                {
                    for (int i = 0; i < 10; i++)
                    {
                        for (int j = 0; j < 10; j++)
                        {
                            if (bombalar[i, j] == "2")
                            {
                                map[i, j] = "1";
                            }
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < 10; i++)
                    {
                        for (int j = 0; j < 10; j++)
                        {
                            if (bombalar[i, j] == "2")
                            {
                                map[i, j] = "2";
                            }
                        }
                    }
                }



                harita.DrawMoveGameMap(map, puan);
            }
            else
            {
                Console.WriteLine("hatalı giriş");
            }

            if ((konumX == 0 && konumY == 2) || (konumX == 0 && konumY == 8))
            {
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;
                Console.Clear();

                Console.WriteLine(System.Environment.NewLine);
                Console.WriteLine(System.Environment.NewLine);
                Console.WriteLine(System.Environment.NewLine);
                Console.WriteLine(System.Environment.NewLine);
                Console.WriteLine("\t \t \t \t Oyun bitti tebrikler.");
                Console.ReadLine();
            }
            return(puan);
        }