zoukankan      html  css  js  c++  java
  • 道具叠加情况在背包当中的实现

    只是列举一下伪算法的的函数步骤,留待以后思考。

    需要的函数说明:

    Item* FindItemBySourceID(); //获取同类型的物品并且数量最小

    具体函数操作:

    bool BagManager::Obtain(Item* pItem)
    {
        Item* pTempItem = FindItemBySourceID(pItem->getSourceID()); //获得背包同类物品
         if (pItem)
        { //存在该物品
            
         }
        else
        { //不存在该物品 直接add
    
        }
        return false;
    }

    很直观的容易这么处理,存在该物品只需要修改物品参数就可以了,不存在物品再添加到新的格子里面。但是可能存在的一个格子,叠加之后还有剩余,我们其实可以把else的处理放开,如下图:

    bool BagManager::Obtain(Item* pItem)
    {
        Item* pTempItem = FindItemBySourceID(pItem->getSourceID()); //获得背包同类物品
        if (pItem)
        { //存在该物品
            
        }
        if(pItem->getNums() > 0)
        { //直接add
    
        }    
        return false;
    }

    但是同样还是存在问题,加入pItem一次叠加后剩余的数量,或者本身pItem的数量就远远超过一个格子的最大叠加数,则需要对剩余处理做更多的判断

    bool BagManager::Obtain(Item* pItem)
    {
        Item* pTempItem = FindItemBySourceID(pItem->getSourceID()); //获得背包同类物品
        if (pItem)
        { //存在该物品
            
        }
        if(pItem->getNums()!=0 && pItem->getNums() > pItem->getLimitStackNums())
       { //剩余物品数量仍然大于一个格子的最大叠加数
    
       }
        if(pItem->getNums() > 0)
        { //剩余数量追加
    
        }    
        return false;
    }
  • 相关阅读:
    C# 串口调试助手源码
    C# 中 textBox 侧面滑条 属性
    C# 中 comboBox 禁止输入
    VS2015 下载 破解
    中国移动OnetNet云平台 GET指令使用
    JSON JsonArray和JsonObject学习资料
    sublime 添加 ConvertToUTF-8
    sublime 添加 颜色插件 colorcoder
    线程池
    爬虫中基本的多线程
  • 原文地址:https://www.cnblogs.com/flashbird/p/4427961.html
Copyright © 2011-2022 走看看