namespace BeiBao { /// /// 定义物品类 /// 每个物品有名称、ID、最大堆叠数量和当前数量。 /// public class Item { private string _itemName; private int _itemID; private int _maxStack; private int _quantity; /// /// 名字 /// public string ItemName => _itemName; /// /// ID /// public int ItemID => _itemID; /// /// 最大堆叠数量 /// public int MaxStack => _maxStack; /// /// 当前数量 /// public int Quantity => _quantity; public Item(string itemName, int itemID, int maxStack) { _itemName = itemName; _itemID = itemID; _maxStack = maxStack; _quantity = 0; } // 尝试增加数量,返回剩余未能堆叠的数量 public int AddQuantity(int quantity) { int remaining = quantity; if (Quantity + remaining > MaxStack) { remaining = (Quantity + quantity) - MaxStack; _quantity = MaxStack; } else { _quantity += remaining; remaining = 0; } return remaining; } /// /// 仅作为检查,并不发生实际的数据改变 /// /// /// public int CheckAddQuantity(int quantity) { int remaining = quantity; return Quantity + remaining > MaxStack ? remaining = (Quantity + quantity) - MaxStack : 0; } // 尝试移除数量,返回是否成功 public bool RemoveQuantity(int quantity) { if (Quantity >= quantity) { _quantity -= quantity; return true; } return false; } /// /// 仅作为检查,并不发生实际的数据改变 /// /// /// public int CheckRemoveQuantity(int quantity) { int tmp = quantity - _quantity; return tmp <= 0 ? 0 : tmp; } } }