zoukankan      html  css  js  c++  java
  • 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("
    ");
                }
    
    
            }
        }
    }
  • 相关阅读:
    JQuery Ajax使用及注意事项
    边框叠加
    AngularJS的相关应用
    JS基础,你需要掌握的要点!
    JS基础部分小结
    JS的Dom树小结
    JQuery事件与动画
    HTML
    项目
    BZOJ4851: [Jsoi2016]位运算
  • 原文地址:https://www.cnblogs.com/xingyue1988/p/5964414.html
Copyright © 2011-2022 走看看