c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;

网吧充值系统
namespace
ConsoleApplication1 { class Program { struct huiyuan { public string name; public string password; public double yue; } static void Main(string[] aaa) { ArrayList Ul = new ArrayList(); while (true) { try { Console.WriteLine("请输入您要执行的操作:(1、会员管理 2、充值管理)"); int x = Convert.ToInt32(Console.ReadLine()); m(x, Ul); } catch (Exception) { } } } static void m(int x, ArrayList al) { switch (x) { case 1: Console.WriteLine("1、添加会员 2、删除会员 3、余额查询"); int xx = Convert.ToInt32(Console.ReadLine()); huiyuanfuwu(xx, al); break; case 2: Console.WriteLine("1、充值服务 2、扣费服务"); int xxx = Convert.ToInt32(Console.ReadLine()); chongzhiguanli(xxx, al); break; default: break; } } static void chongzhiguanli(int x, ArrayList al) { switch (x) { case 1: Console.Write("请输入要充值的用户名:"); string sname = Console.ReadLine(); foreach (huiyuan item in al) { if (item.name == sname) { Console.WriteLine("当前余额为:" + item.yue); Console.Write("请输入充值金额:"); double m = Convert.ToInt32(Console.ReadLine()); chongzhi(m, al, sname); break; } } break; default: break; } } static void chongzhi(double m, ArrayList al, string sname) { double x = 0;//奖励金额 if (m >= 10 && m < 20) { x = 2; } else if (m >= 20 && m < 50) { x = 5; } else if (m >= 50 && m < 100) { x = 20; } else if (m >= 100 && m < 200) { x = 50; } else if (m >= 200 && m < 300) { x = 150; } else if (m >= 300) { x = m; } else { x = 0; } huiyuan temp = new huiyuan(); for (int i = 0; i < al.Count; i++) { temp = ((huiyuan)al[i]); if (temp.name == sname) { temp.yue += Convert.ToDouble(m + x); Console.WriteLine("本次充值成功,充值金额为" + m + "。奖励金额为:" + x + ".充值后余额为:" + temp.yue); al.Insert(i, temp); al.RemoveAt(i + 1); break; } } } static void huiyuanfuwu(int x, ArrayList al) { switch (x) { case 1: huiyuan h = new huiyuan(); Console.Write("请输入用户名:"); h.name = Console.ReadLine(); Console.Write("请输入密码:"); h.password = Console.ReadLine(); h.yue = 0; al.Add(h); break; case 2: Console.Write("请输入要删除的用户名:"); string dname = Console.ReadLine(); foreach (huiyuan item in al) { if (item.name == dname) { al.Remove(item); Console.WriteLine("删除成功!"); break; } } break; case 3: Console.Write("请输入要查询的用户名:"); string sname = Console.ReadLine(); foreach (huiyuan item in al) { if (item.name == sname) { Console.WriteLine("当前余额为:" + item.yue); } } break; default: break; } } } }

简易的闹钟

namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime a = DateTime.Now;//定义一个新datetime类型变量并赋值为系统现在的时间
            DateTime nz=Convert.ToDateTime("2015-4-13 17:30");定义并赋值一个datetime
            while (true)
            {
                 a = a.AddMinutes(1);//a每次增加1分钟
                if (nz.ToShortTimeString().Equals(a.ToShortTimeString()))//系统时间每次增加1分钟后如果等于设定的时间
                {  
                    Console.WriteLine(a + "起床啦!");
                    Console.Write("是否关闭闹钟?Y/N");
                    string s = Console.ReadLine();
                    if (s=="y.ToUpper()")
                    {
                        break;
                    }
                    else
                    {
                        nz = nz.AddMinutes(5);如果不关闭,则闹钟累加5分钟后,系统时间再累加直到与nz相同,循环。。。。。。
                    }
                } 
            }  
                
        } 
    }
}

出租车计费

namespace ConsoleApplication23
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
               double i,l, m1 = 8,m2=1.2,m3=1.5,m4=2.4;
            Console.Write("请输入坐车距离:");
            i = Convert.ToDouble(Console.ReadLine());
            if (i>0&&i<=3)
            {
                Console.WriteLine("您的行车费用为:"+m1);
            }
            else if (i>3&&i<=5)
            {
                l = m1 + (i - 3) * m2;
                Console.WriteLine("您的行车费用为:" + l);
            }
            else if (i>5)
            {
                l = m1 + m4 + (i - 5) * m3;
                Console.WriteLine("您的行车费用为:" + l);
            }
            else
            {
                Console.WriteLine("您的输入有误!");
            } 
            }
            
        }
    }
}

简单计算器:

namespace 第一次
{
    class Program
    {
        static void Main(string[] args)
        {double a, b;
            //做一个简单的计算器
            while (true)
            {
                    
            Console.WriteLine("加法:");
            Console.Write("请输入第一个数:");
            a = Convert.ToDouble(Console.ReadLine());
            Console.Write("请输入第二个数:");
            b = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("结果为:"+(a+b));
            Console.WriteLine("减法:");
            Console.Write("请输入第一个数:");
            a = Convert.ToDouble(Console.ReadLine());
            Console.Write("请输入第二个数:");
            b = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("结果为:" + (a - b));
            Console.WriteLine("乘法:");
            Console.Write("请输入第一个数:");
            a = Convert.ToDouble(Console.ReadLine());
            Console.Write("请输入第二个数:");
            b = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("结果为:" + (a * b));
            Console.WriteLine("除法:");
            Console.Write("请输入第二个数:");
            a = Convert.ToDouble(Console.ReadLine());
            Console.Write("请输入第二个数:");
            b = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("结果为:" + (a / b));
            }
               
        }
    }
}

对战游戏;

namespace ConsoleApplication5
{





    class Program
    {
        struct player
        {
            public string name;
            public int hp;
            public int attack;
            public int defend;
            public int quick;
            public WuGong WG;
        }
        struct WuGong
        {
            public string name;
            public int atk;
        }

        static void Main(string[] args)
        {

            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;
            Console.Clear();
            player p1 = new player();
            player p2 = new player();
            Random r = new Random();

            //生成两个玩家
            Console.Write("请输入第一个战士的名字:");
            p1.name = Console.ReadLine();
            Console.Write("请输入第二个战士的名字:");
            p2.name = Console.ReadLine();
            //生成血量
            p1.hp = r.Next(1, 1000) + 1000;//初始血量
            p2.hp = r.Next(1, 1000) + 1000;
            //生成攻防
            p1.attack = r.Next(1, 50) + 80;
            p2.attack = r.Next(1, 50) + 80;
            p1.defend = r.Next(1, 50) + 50;
            p2.defend = r.Next(1, 50) + 50;
            //生成身法-敏捷度
            p1.quick = r.Next(100);
            p2.quick = r.Next(100);

            Console.WriteLine("玩家:" + p1.name + " 血量:" + p1.hp + "	攻击力:" + p1.attack
             + "	物防:" + p1.defend + " 敏捷度:" + p1.quick);
            Console.WriteLine("VS");
            Console.WriteLine("玩家:" + p2.name + " 血量:" + p2.hp + "	攻击力:" + p2.attack
            + "	物防:" + p2.defend + " 敏捷度:" + p2.quick);
            Console.WriteLine("点击任意键开始游戏.....");
            Console.ReadKey();

            while (true)
            {
                // 得出最后结果,跳出循环
                if (p1.hp <= 0 && p2.hp <= 0)
                {
                    Console.WriteLine(p1.name + "" + p2.name + "同归于尽!");
                    Console.ReadLine();
                    break;
                }
                if (p1.hp <= 0)
                {
                    Console.WriteLine(p2.name + "" + p1.name + "KO..");
                    Console.ReadLine();
                    break;
                }
                if (p2.hp <= 0)
                {
                    Console.WriteLine(p1.name + "" + p2.name + "KO..");
                    Console.ReadLine();
                    break;
                }

                //对战

                WuGong[] wg = new WuGong[3];
                //gongfu(wg);
                wg[0].name = "降龙十八掌";
                wg[0].atk = 500;

                wg[1].name = "打狗棒法";
                wg[1].atk = 600;

                wg[2].name = "独孤九剑";
                wg[2].atk = 600;
                //大招
                int dz1 = r.Next(10);//大招随机
                if (dz1 >= 5) //从1到9的随机数里 取8和9 有20%的几率用大招。
                {
                    Random x = new Random();
                    int a = x.Next(0, 3);
                    int dx1 = r.Next(100);//声明 掉血 变量
                    int gj1 = r.Next(100) - 50;//为了浮动 P2的 攻击力;
                    int fy1 = r.Next(100) - 50;//为了浮动 P1的防御力;
                    dx1 = ((dx1 + wg[a].atk) - (p1.defend + fy1)) < 0 ? 0 : ((dx1 + wg[a].atk) - (p1.defend + fy1));
                    //为了防止掉血 出现负值
                    p1.hp -= dx1;
                    if (p1.hp < 0)
                    {
                        p1.hp = 0;
                    }
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(p2.name + "使用大招 " + wg[a].name + " 攻击,对" + p1.name + "造成" + dx1 + "的伤害。");

                }
                else //平常招式
                {
                    //躲闪
                    int sf1 = r.Next(80);//身法的随机数

                    if (p1.quick - sf1 >= 0)
                    {
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.WriteLine(p1.name + "躲闪" + p2.name + "的攻击");
                    }
                    else
                    {
                        int dx1 = r.Next(100);//声明 掉血 变量
                        int gj1 = r.Next(100) - 50;//为了浮动 P2的 攻击力;
                        int fy1 = r.Next(100) - 50;//为了浮动 P1的防御力;
                        dx1 = (dx1 + (p2.attack + gj1) - (p1.defend + fy1)) < 0 ? 0 : (dx1 + (p2.attack + gj1) - (p1.defend + fy1));
                        //为了防止掉血 出现负值
                        p1.hp -= dx1;
                        if (p1.hp < 0)
                        {
                            p1.hp = 0;
                        }
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine(p1.name + "使用普通攻击,对" + p2.name + "造成" + dx1 + "的伤害。");
                    }
                }
                //稍等一下
                System.Threading.Thread.Sleep(1000);

                int dz2 = r.Next(10);
                if (dz2 >= 5)
                {
                    Random y = new Random();
                    int b = y.Next(0, 3);
                    int dx2 = r.Next(100);
                    int gj2 = r.Next(100) - 50;//为了浮动 P1的 攻击力;
                    int fy2 = r.Next(100) - 50;//为了浮动 P2的防御力;
                    dx2 = ((dx2 + wg[b].atk) - (p2.defend + fy2)) < 0 ? 0 : ((dx2 + wg[b].atk) - (p2.defend + fy2));
                    //为了防止掉血 出现负值
                    p2.hp -= dx2;
                    if (p2.hp < 0)
                    {
                        p2.hp = 0;
                    }
                    Console.ForegroundColor = ConsoleColor.DarkMagenta;
                    Console.WriteLine(p1.name + "使用大招 " + wg[b].name + " 攻击,对" + p2.name + "造成" + dx2 + "的伤害。");
                }
                else
                {
                    //躲闪
                    int sf2 = r.Next(80);
                    if (p2.quick - sf2 > sf2)
                    {
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.WriteLine(p2.name + "躲闪" + p1.name + "的攻击");
                    }
                    else
                    {
                        int dx2 = r.Next(100);
                        int gj2 = r.Next(100) - 50;//为了浮动 P1的 攻击力;
                        int fy2 = r.Next(100) - 50;//为了浮动 P2的防御力;
                        dx2 = (dx2 + (p1.attack + gj2) - (p2.defend + fy2)) < 0 ? 0 : (dx2 + (p1.attack + gj2) - (p2.defend + fy2));
                        //为了防止掉血 出现负值
                        p2.hp -= dx2;
                        if (p2.hp < 0)
                        {
                            p2.hp = 0;
                        }
                        Console.ForegroundColor = ConsoleColor.DarkMagenta;
                        Console.WriteLine(p2.name + "使用普通攻击,对" + p1.name + "造成" + dx2 + "的伤害。");
                    }
                }
                //稍等一下
                System.Threading.Thread.Sleep(1000);
                Console.ForegroundColor = ConsoleColor.DarkBlue;
                Console.WriteLine("玩家:" + p1.name + "	血量:" + p1.hp + "	");
                Console.WriteLine("玩家:" + p2.name + "	血量:" + p2.hp);


            }
        }

    }

}

等额本金法

  等额本金法最大的特点是每月的还款额不同,呈现逐月递减的状态;它是将贷款本金按还款的总月数均分,再加上上期剩余本金的利息,这样就形成月还款额,所以等额本金法第一个月的还款额最多 ,然后逐月减少,越还越少,计算公式为:

  每月还本付息金额=(本金/还款月数)+(本金-累计已还本金)×月利率

  每月本金=总本金/还款月数

  每月利息=(本金-累计已还本金)×月利率

    还款总利息=(还款月数+1)*贷款额*月利率/2

  还款总额=(还款月数+1)*贷款额*月利率/2+贷款额

namespace ConsoleApplication28
{
    class Program
    {
        static void Main(string[] args)
        {
            double m, n, d = 0.0655, e = 0.0405, x, y, z,p,q,h;
            Console.Write("请选择房贷类型?A商业贷款;B公积金贷款:");
            string a = Console.ReadLine();
            if (a=="A")
            {
                Console.Write("请选择房贷期限?A10年;B20;年C30年 :");
                string b = Console.ReadLine();
                if (b=="A")
                {
                    Console.Write("请输入贷款金额:");
                    m = Convert.ToInt32(Console.ReadLine());
                    Console.Write("请输入第几个还款月:");
                    n = Convert.ToInt32(Console.ReadLine());
                    x = m / 120;
                    y = x + (m-x)* (d/12);
                    z = x + (m - (n - 1)*x) * (d / 12);
                    p = (120 + 1) * m * (d / 12) / 2;
                    q = p + m;
                    Console.WriteLine("您当前月份的还款金额为:" + z);
                    Console.WriteLine("您每期偿还的本金为:" + x);
                    Console.WriteLine("您的最大月供为:" + y);                  
                    Console.WriteLine("您应当还款的总利息为:" + p);
                    Console.WriteLine("您应当还款的总金额为:" + q);
                    for (int i = 0; i < 120; i++)
                    {
                        h = x + (m - i*x) * (d / 12);
                        Console.WriteLine(""+(i+1)+"还款:"+h+"当月偿还的利息为:"+(h-x)+"剩余本金为:"+(m-x*(i+1)));

                    }
                    
                }
                else if (b=="B")
                {
                    Console.Write("请输入贷款金额:");
                    m = Convert.ToInt32(Console.ReadLine());
                    Console.Write("请输入第几个还款月:");
                    n = Convert.ToInt32(Console.ReadLine());
                    x = m / 180;
                    y = x + (m - x) * (d / 12);
                    z = x + (m - (n - 1) * x) * (d / 12);
                    p = (180 + 1) * m * (d / 12) / 2;
                    q = p +m;
                    Console.WriteLine("您当前月份的还款金额为:" + z);
                    Console.WriteLine("您每期偿还的本金为:" + x);
                    Console.WriteLine("您的最大月供为:" + y);
                    Console.WriteLine("您应当还款的总利息为:" + p);
                    Console.WriteLine("您应当还款的总金额为:" + q);
                    for (int i = 0; i < 180; i++)
                    {
                        h = x + (m - i * x) * (d / 12);
                        Console.WriteLine("" + (i + 1) + "还款:" + h + "当月偿还的利息为:" + (h - x) + "剩余本金为:" + (m - x * (i + 1)));

                    }

                }
                else if (b=="C")
                {
                    Console.Write("请输入贷款金额:");
                    m = Convert.ToInt32(Console.ReadLine());
                    Console.Write("请输入第几个还款月:");
                    n = Convert.ToInt32(Console.ReadLine());
                    x = m / 240;
                    y = x + (m - x) * (d / 12);
                    z = x + (m - (n - 1) * x) * (d / 12);
                    p = (240 + 1) * m * (d / 12) / 2;
                    q = p + m;
                    Console.WriteLine("您当前月份的还款金额为:" + z);
                    Console.WriteLine("您每期偿还的本金为:" + x);
                    Console.WriteLine("您的最大月供为:" + y);
                    Console.WriteLine("您应当还款的总利息为:" + p);
                    Console.WriteLine("您应当还款的总金额为:" + q);
                    for (int i = 0; i < 240; i++)//依次列出每个月应该还多少,利息多少,剩余多少,for循环
                    {
                        h = x + (m - i * x) * (d / 12);
                        Console.WriteLine("" + (i + 1) + "还款:" + h + "当月偿还的利息为:" + (h - x) + "剩余本金为:" + (m - x * (i + 1)));

                    }
                }
                else
                {
                    Console.WriteLine("请您选择正确的代号!");
                }

                
            }
            else if (a=="B")
            {
                Console.Write("请选择房贷期限?A10年;B20;年C30年 :");
                string b = Console.ReadLine();
                if (b == "A")
                {
                    Console.Write("请输入贷款金额:");
                    m = Convert.ToInt32(Console.ReadLine());
                    Console.Write("请输入第几个还款月:");
                    n = Convert.ToInt32(Console.ReadLine());
                    x = m / 120;
                    y = x + (m - x) * (e / 12);
                    z = x + (m - (n - 1) * x) * (e / 12);
                    p = (120 + 1) * m * (e / 12) / 2;
                    q = p + m;
                    Console.WriteLine("您当前月份的还款金额为:" + z);
                    Console.WriteLine("您每期偿还的本金为:" + x);
                    Console.WriteLine("您的最大月供为:" + y);
                    Console.WriteLine("您应当还款的总利息为:" + p);
                    Console.WriteLine("您应当还款的总金额为:" + q);
                    for (int i = 0; i < 120; i++)
                    {
                        h = x + (m - i * x) * (e / 12);
                        Console.WriteLine("" + (i + 1) + "还款:" + h + "当月偿还的利息为:" + (h - x) + "剩余本金为:" + (m - x * (i + 1)));

                    }

                }
                else if (b == "B")
                {
                    Console.Write("请输入贷款金额:");
                    m = Convert.ToInt32(Console.ReadLine());
                    Console.Write("请输入第几个还款月:");
                    n = Convert.ToInt32(Console.ReadLine());
                    x = m / 180;
                    y = x + (m - x) * (e / 12);
                    z = x + (m - (n - 1) * x) * (e / 12);
                    p = (180 + 1) * m * (e / 12) / 2;
                    q = p + m;
                    Console.WriteLine("您当前月份的还款金额为:" + z);
                    Console.WriteLine("您每期偿还的本金为:" + x);
                    Console.WriteLine("您的最大月供为:" + y);
                    Console.WriteLine("您应当还款的总利息为:" + p);
                    Console.WriteLine("您应当还款的总金额为:" + q);
                    for (int i = 0; i < 180; i++)
                    {
                        h = x + (m - i * x) * (e / 12);
                        Console.WriteLine("" + (i + 1) + "还款:" + h + "当月偿还的利息为:" + (h - x) + "剩余本金为:" + (m - x * (i + 1)));

                    }
                }
                else if (b == "C")
                {
                    Console.Write("请输入贷款金额:");
                    m = Convert.ToInt32(Console.ReadLine());
                    Console.Write("请输入第几个还款月:");
                    n = Convert.ToInt32(Console.ReadLine());
                    x = m / 240;
                    y = x + (m - x) * (e / 12);
                    z = x + (m - (n - 1) * x) * (e / 12);
                    p = (240 + 1) * m * (e / 12) / 2;
                    q = p + m;
                    Console.WriteLine("您当前月份的还款金额为:" + z);
                    Console.WriteLine("您每期偿还的本金为:" + x);
                    Console.WriteLine("您的最大月供为:" + y);
                    Console.WriteLine("您应当还款的总利息为:" + p);
                    Console.WriteLine("您应当还款的总金额为:" + q);
                    for (int i = 0; i < 240; i++)
                    {
                        h = x + (m - i * x) * (e / 12);
                        Console.WriteLine("" + (i + 1) + "还款:" + h + "当月偿还的利息为:" + (h - x) + "剩余本金为:" + (m - x * (i + 1)));

                    }
                }
                else
                {
                    Console.WriteLine("请您选择正确的代号!");
                }
            }
            else
            {
                Console.WriteLine("请您选择正确的代号!");
            }
            Console.Read();
        }
    }
}

随机生成10个不重复的50以内的整数

1。。。。

.

2.。。。

 推箱子

namespace ConsoleApplication15//推箱子本质就是变量的相互替换,3个变量的循环赋值
{
    class Program
    {
       
           
        static void Main(string[] args)
        {
            int x = 1, y = 1, i = 0;
            int[, ,] dt = new int[2, 30, 30]  //定义一个二维数组用于接收地图
                {
                   { 
                    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                    {1,4,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
                   },
                   { 
                    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                    {1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
                   }

                   

                
                };
            try
            {



                while (true)
                {
                    int temp = 0;

                    ConsoleKeyInfo s = Console.ReadKey();  //s用于接收用户输入的键
                    if (s.Key.ToString() == "DownArrow")
                    {
                        if (dt[i, x + 1, y] == 0)//如果小人的下一步是0(空格),则两个元素交换  (下同)
                        {

                            temp = dt[i, x, y];
                            dt[i, x, y] = dt[i, x + 1, y];
                            dt[i, x + 1, y] = temp;
                            x++;
                        }
                        else if (dt[i, x + 1, y] == 2 && dt[i, x + 2, y] == 0)//如果小人的下一步是箱子,箱子的下一步是空格,则三个元素进行交换 (下同)
                        {

                            temp = dt[i, x + 2, y];
                            dt[i, x + 2, y] = dt[i, x + 1, y];
                            dt[i, x + 1, y] = temp;
                            temp = dt[i, x + 1, y];
                            dt[i, x + 1, y] = dt[i, x, y];
                            dt[i, x, y] = temp;
                            x++;
                            
                        }
                        else if (dt[i, x + 2, y] == 3 && dt[i, x + 1, y]==2) //如果小人的下面第二个元素是“★”
                            {

                                dt[i, x+2, y ] = 2; //让五角星变成箱子
                                dt[i, x+1, y ] = 4;// 让箱子变成小人
                                dt[i, x, y] = 0;    //让小人变成空格
                                temp = 6; //给临时变量赋一个值作为跳出循环的条件
                            }
                    }
                    else if (s.Key.ToString() == "UpArrow")
                    {
                        if (dt[i, x - 1, y] == 0)
                        {

                            temp = dt[i, x - 1, y];
                            dt[i, x - 1, y] = dt[i, x, y];
                            dt[i, x, y] = temp;
                            x--;
                        }
                        else if (dt[i, x - 1, y] == 2 && dt[i, x - 2, y] == 0)
                        {

                            temp = dt[i, x - 2, y];
                            dt[i, x - 2, y] = dt[i, x - 1, y];
                            dt[i, x - 1, y] = temp;
                            temp = dt[i, x, y];
                            dt[i, x, y] = dt[i, x - 1, y];
                            dt[i, x - 1, y] = temp;
                            x--;
                            
                        }
                        else if (dt[i, x - 2, y] == 3 && dt[i, x - 1, y]==2) //如果小人的下面第二个元素是“★”
                        {

                            dt[i, x - 2, y] = 2; //让五角星变成箱子
                            dt[i, x - 1, y] = 4;// 让箱子变成小人
                            dt[i, x, y] = 0;    //让小人变成空格
                            temp = 6; //给临时变量赋一个值作为跳出循环的条件
                        }
                    }
                    else if (s.Key.ToString() == "LeftArrow")
                    {
                        if (dt[i, x, y - 1] == 0)
                        {

                            temp = dt[i, x, y - 1];
                            dt[i, x, y - 1] = dt[i, x, y];
                            dt[i, x, y] = temp;
                            y--;
                        }
                        else if (dt[i, x, y - 1] == 2 && dt[i, x, y - 2] == 0)
                        {

                            temp = dt[i, x, y - 2];
                            dt[i, x, y - 2] = dt[i, x, y - 1];
                            dt[i, x, y - 1] = temp;
                            temp = dt[i, x, y];
                            dt[i, x, y] = dt[i, x, y - 1];
                            dt[i, x, y - 1] = temp;
                            y--;
                            

                        }
                        else if (dt[i, x, y - 2] == 3&&dt[i, x, y - 1] == 2) //如果小人的下面第二个元素是“★”
                        {

                            dt[i, x, y - 2] = 2; //让五角星变成箱子
                            dt[i, x, y - 1] = 4;// 让箱子变成小人
                            dt[i, x, y] = 0;    //让小人变成空格
                            temp = 6; //给临时变量赋一个值作为跳出循环的条件
                        }
                    }
                    else if (s.Key.ToString() == "RightArrow")
                    {
                        if (dt[i, x, y + 1] == 0)
                        {

                            temp = dt[i, x, y + 1];
                            dt[i, x, y + 1] = dt[i, x, y];
                            dt[i, x, y] = temp;
                            y++;
                        }
                        else if (dt[i, x, y + 1] == 2 && dt[i, x, y + 2] == 0)
                        {

                            temp = dt[i, x, y + 2];
                            dt[i, x, y + 2] = dt[i, x, y + 1];
                            dt[i, x, y + 1] = temp;
                            temp = dt[i, x, y + 1];
                            dt[i, x, y + 1] = dt[i, x, y];
                            dt[i, x, y] = temp;
                            y++;
                           
                        }
                        else if (dt[i, x, y + 2] == 3&&dt[i, x, y + 1] == 2) //如果小人的下面第二个元素是“★”而且小人下面第一个元素是
                        {

                            dt[i, x, y + 2] = 2; //让五角星变成箱子
                            dt[i, x, y + 1] = 4;// 让箱子变成小人
                            dt[i, x, y] = 0;    //让小人变成空格
                            temp = 6; //给临时变量赋一个值作为跳出循环的条件
                        }
                    }


                    Console.Clear();  //清屏

                   ditu(dt, i);// 调用ditu函数打印地图;一开始就从这里开始,前面没有打印地图。
                    if (temp == 6)// 跳出循环
                    {
                        Console.WriteLine("恭喜您过关了!");
                        Console.WriteLine("按任意键进入下一关!");
                        Console.ReadKey();
                        x = 1; y = 1;//初始化小人的位置
                        i++;

                    } 

                }
            }
            catch (Exception)
            {

                Console.WriteLine("暂时只有两张图!");
                Console.ReadKey();
            }



        }

        private static void ditu(int[, ,] dt, int i)
        {


            for (int j = 0; j < 30; j++)
            {
                for (int k = 0; k < 30; k++)
                {


                    if (dt[i, j, k] == 0)
                    {
                        Console.Write("  ");
                    }
                    else if (dt[i, j, k] == 1)
                    {
                        Console.Write("");
                    }
                    else if (dt[i, j, k] == 2)
                    {
                        Console.Write("");
                    }
                    else if (dt[i, j, k] == 3)
                    {
                        Console.Write("");
                    }
                    else if (dt[i, j, k] == 4)
                    {
                        Console.Write("");
                    }


                }
                Console.Write("
");
            }


        }
    }
}
原文地址:https://www.cnblogs.com/xingyue1988/p/5964414.html