类:
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();
}
}
}