背包案例

类:

using System;
using System.Collections.Generic;
using System.Text;

namespace 允许空槽的背包系统
{
    class Bag
    {
        string[] items;


        private Bag()
            {
        }

        private static Bag instance = null;

        public static Bag Instance()
        {
            if (instance == null)
            {
                instance = new Bag();
            }

            return instance;
        }

        public void SetSize(int n)
        {
            items = new string[n];
        }

        public void SetItem(int index, string itemName)
        {
            items[index] = itemName;
        }

        public void SwapItem(int a, int b)
        {
            string tmp = items[a];
            items[a] = items[b];
            items[b] = tmp;
        }

        public void DropItem(int index)
        {
            items[index] = null;
        }

        public void Print()
        {
            Console.WriteLine("---------------");
            for (int i = 0; i < items.Length; i++)
            {
                Console.WriteLine("[{0}]:{1}", i
                    ,string.IsNullOrEmpty( items[i])?"(null)":items[i]);
            }
        }

    }
}

执行:

using System;

namespace 允许空槽的背包系统
{
    class Program
    {
        static void Main(string[] args)
        {
            //Bag.bag =new Bag();

            Bag.Instance().SetSize(10);

            for (; ; )
            {
                Console.Clear();
                Console.WriteLine("在此输入命令:");
                string cmd = Console.ReadLine();

                switch (cmd)
                {
                    case "set":
                        {
                            Console.WriteLine("请输入物品位置:");
                            int index = int.Parse(Console.ReadLine());
                            Console.WriteLine("请输入物品名称:");
                            string name = Console.ReadLine();

                            Bag.Instance().SetItem(index, name);
                        }
                        break;

                    case "swap":
                        {
                            Console.WriteLine("请输入要交换物品的位置1:");
                            int a = int.Parse(Console.ReadLine());
                            Console.WriteLine("请输入要交换物品的位置1:");
                            int b = int.Parse(Console.ReadLine());
                            Bag.Instance().SwapItem(a, b); 
                        }
                        break;

                    case "drop":
                        {
                            Console.WriteLine("请输入要丢掉物品的位置:");
                            int index = int.Parse(Console.ReadLine());
                            Bag.Instance().DropItem(index);
                        }
                        break;

                    case "print":
                        {

                            Bag.Instance().Print();
                        }
                        break;

                }
                Console.WriteLine("按回车键继续");
                Console.ReadLine();
            }

            //Bag.Instance().SetItem(2,"一瓶小药");
            //Bag.Instance().SetItem(5, "一把小刀");
            //Bag.Instance().SetItem(8, "一件破衣服");

            //Bag.Instance().Print();

            
            //Bag.Instance().SwapItem(2,3);
            //Bag.Instance().Print();

            //Bag.Instance().DropItem(8);
            //Bag.Instance().Print();

            //Console.ReadLine();
        }
    }
}

————————————————————————————
完善版本-物品独立一个类
类:

using System;
using System.Collections.Generic;
using System.Text;

namespace 允许空槽的背包系统
{
    class BagItem
    {
       public int id;
        public string name;
        public int lv1;
        public int num;
        public int prive;

        public override string ToString()
        {
            return string.Format("id={0},name={1},lv1={2},num={3},price={4}",
                id
                ,name
                ,lv1
                ,num
                ,prive);
        }
    }

    class Bag
    {
        BagItem[] items;


        private Bag()
            {
        }

        private static Bag instance = null;

        public static Bag Instance()
        {
            if (instance == null)
            {
                instance = new Bag();
            }

            return instance;
        }

        public void SetSize(int n)
        {
            items = new BagItem[n];
        }

        public void SetItem(int index, BagItem item)
        { 
            items[index] = item;
        }

        public void SwapItem(int a, int b)
        {
            BagItem tmp = items[a];
            items[a] = items[b];
            items[b] = tmp;
        }

        public void DropItem(int index)
        {
            items[index] = null;
        }

        public void Print()
        {
            Console.WriteLine("---------------");
            for (int i = 0; i < items.Length; i++)
            {
                Console.WriteLine("[{0}]:{1}", i
                    , items[i]==null ? "(null)": items[i].ToString());
            }
        }

    }
}

执行:

using System;

namespace 允许空槽的背包系统
{
    class Program
    {
        static void Main(string[] args)
        {
            //Bag.bag =new Bag();

            int itemId = 1000;
            Bag.Instance().SetSize(10);

            for (; ; )
            {
                Console.Clear();
                Console.WriteLine("在此输入命令:");
                string cmd = Console.ReadLine();

                switch (cmd)
                {
                    case "set":
                        {
                            Console.WriteLine("请输入物品位置:");
                            int index = int.Parse(Console.ReadLine());

                            BagItem item = new BagItem();

                            item.id = itemId;
                            itemId++;

                            //Random rnd = new Random();
                            //item.id = rnd.Next();


                            Console.WriteLine("请输入物品名称:");
                            item.name = Console.ReadLine();

                            Console.WriteLine("请输入物品等级:");
                            item.lv1 = int.Parse(Console.ReadLine());

                            Console.WriteLine("请输入物品数量:");
                            item.num = int.Parse(Console.ReadLine());

                            Console.WriteLine("请输入物品价格:");
                            item.prive = int.Parse(Console.ReadLine());

                            Bag.Instance().SetItem(index, item);
                        }
                        break;

                    case "swap":
                        {
                            Console.WriteLine("请输入要交换物品的位置1:");
                            int a = int.Parse(Console.ReadLine());
                            Console.WriteLine("请输入要交换物品的位置1:");
                            int b = int.Parse(Console.ReadLine());
                            Bag.Instance().SwapItem(a, b); 
                        }
                        break;

                    case "drop":
                        {
                            Console.WriteLine("请输入要丢掉物品的位置:");
                            int index = int.Parse(Console.ReadLine());
                            Bag.Instance().DropItem(index);
                        }
                        break;

                    case "print":
                        {

                            Bag.Instance().Print();
                        }
                        break;

                }
                Console.WriteLine("按回车键继续");
                Console.ReadLine();
            }

            //Bag.Instance().SetItem(2,"一瓶小药");
            //Bag.Instance().SetItem(5, "一把小刀");
            //Bag.Instance().SetItem(8, "一件破衣服");

            //Bag.Instance().Print();

            
            //Bag.Instance().SwapItem(2,3);
            //Bag.Instance().Print();

            //Bag.Instance().DropItem(8);
            //Bag.Instance().Print();

            //Console.ReadLine();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值