c#推箱子

  string[,] map = new string[10, 10]
            {
        {"■","■","■","■","■","■","■","■","■","■", },
        {"■"," "," "," "," "," "," "," ","☆","■", },
        {"■"," "," "," "," "," "," "," "," ","■", },
        {"■"," "," "," "," "," "," "," "," ","■", },
        {"■"," "," "," "," "," "," "," "," ","■", },
        {"■"," "," "," "," "," "," "," "," ","■", },
        {"■"," "," ","□"," "," "," "," "," ","■", },
        {"■"," "," "," "," "," "," "," "," ","■", },
        {"■","♀"," "," "," "," "," "," "," ","■", },
        {"■","■","■","■","■","■","■","■","■","■", }
 };
            int x = 1;
            int y = 8;
            int endx1 = 1, endy1 = 8;
            while (true)
            {
                Console.Clear();
                #region 打印地图
                for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    Console.Write(map[i, j]);
                }Console.WriteLine();   
            }
            #endregion
           
                if(map[endx1,endy1]== "★")
                {
                    Console.WriteLine("恭喜你,过关!");
                    break;
                }
          
                ConsoleKeyInfo key = Console.ReadKey();
         
            if (key.Key.ToString() == "UpArrow")
            {
                    if(map[y-1,x]== "■")
                    {

                    }
                    else {
                        if(map[y-1,x]== "□"&&map[y-2,x]!= "■")
                        {
                            if(map[y-2,x]== "☆") {

                                map[y - 2, x] = "★";
                                map[y - 1, x] = " ";
                                string temp = map[y, x];
                                map[y, x] = map[y - 1, x];
                                map[y - 1, x] = temp;
                                y--;




                            }
                            else if(map[y-2,x]==" ")
                            {
                                string temp = map[y - 1, x];
                                map[y - 1, x] = map[y - 2, x];
                                map[y - 2, x] = temp;
                                temp = map[y, x];
                                map[y, x] = map[y - 1, x];
                                map[y - 1, x] = temp;
                                y--;
                            }
                           

                        }
                       
                        else if(map[y-1,x]==" ")
                        {
                            string temp = map[y, x];
                            map[y, x] = map[y - 1, x];
                            map[y - 1, x] = temp;
                            y--;
                        }

                    }
                   
            }
            else if (key.Key.ToString() == "DownArrow")
            {

                    if (map[y + 1, x] == "■")
                    {

                    }
                    else
                    {
                        if (map[y + 1, x] == "□" && map[y + 2, x] != "■")
                        {
                            if (map[y + 2, x] == "☆")
                            {

                                map[y + 2, x] = "★";
                                map[y + 1, x] = " ";
                                string temp = map[y, x];
                                map[y, x] = map[y + 1, x];
                                map[y + 1, x] = temp;
                                y++;




                            }
                            else if (map[y + 2, x] == " ")
                            {
                                string temp = map[y + 1, x];
                                map[y + 1, x] = map[y + 2, x];
                                map[y + 2, x] = temp;
                                temp = map[y, x];
                                map[y, x] = map[y + 1, x];
                                map[y + 1, x] = temp;
                                y++;
                            }


                        }

                        else if (map[y + 1, x] == " ")
                        {
                            string temp = map[y, x];
                            map[y, x] = map[y + 1, x];
                            map[y + 1, x] = temp;
                            y++;
                        }

                    }






                   
                }
            else if (key.Key.ToString() == "LeftArrow")
            {
                    if (map[y, x-1] == "■")
                    {

                    }
                    else
                    {
                        if (map[y, x-1] == "□" && map[y, x-2] != "■")
                        {
                            if (map[y, x-2] == "☆")
                            {

                                map[y , x-2] = "★";
                                map[y, x-1] = " ";
                                string temp = map[y, x];
                                map[y, x] = map[y, x-1];
                                map[y , x-1] = temp;
                                x--;




                            }
                            else if (map[y , x-2] == " ")
                            {
                                string temp = map[y, x-1];
                                map[y, x-1] = map[y, x-2];
                                map[y , x-2] = temp;
                                temp = map[y, x];
                                map[y, x] = map[y, x-1];
                                map[y , x-1] = temp;
                               x--;
                            }


                        }

                        else if (map[y, x-1] == " ")
                        {
                            string temp = map[y, x];
                            map[y, x] = map[y , x-1];
                            map[y , x-1] = temp;
                           x--;
                        }

                    }



                   
                }
            else if (key.Key.ToString() == "RightArrow")
            {
                    if (map[y, x+1] == "■")
                    {

                    }
                    else
                    {
                        if (map[y, x+1] == "□" && map[y , x+2] != "■")
                        {
                            if (map[y, x +2] == "☆")
                            {

                                map[y, x + 2] = "★";
                                map[y , x+1] = " ";
                                string temp = map[y, x];
                                map[y, x] = map[y, x + 1];
                                map[y, x + 1] = temp;
                                x++;




                            }
                            else if (map[y, x + 2] == " ")
                            {
                                string temp = map[y, x + 1];
                                map[y, x + 1] = map[y, x + 2];
                                map[y, x + 2] = temp;
                                temp = map[y, x];
                                map[y, x] = map[y, x + 1];
                                map[y, x + 1] = temp;
                                x++s;
                            }

                        }
                        else if (map[y , x+1] == " ")
                        {
                            string temp = map[y, x];
                            map[y, x] = map[y, x+1];
                            map[y , x+1] = temp;
                            x++;
                        }

                    }
                }
            else {
                Console.WriteLine("输入错误");
            }
            }
            Console.ReadKey();

posted @ 2017-11-08 20:13  sistrong  阅读(905)  评论(0编辑  收藏  举报