当前位置: 首页>>代码示例>>C++>>正文


C++ Choice::getBest方法代码示例

本文整理汇总了C++中Choice::getBest方法的典型用法代码示例。如果您正苦于以下问题:C++ Choice::getBest方法的具体用法?C++ Choice::getBest怎么用?C++ Choice::getBest使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Choice的用法示例。


在下文中一共展示了Choice::getBest方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Card


//.........这里部分代码省略.........
                        possibilities.addOption(NULL,algorithmLevel);   //mi salvo l'opzione nella lista
                    }
                }


                max1=hand->getFirst();
                max2=hand->getFirst();

                for(tmp=hand->getNext(); tmp!=NULL; tmp=hand->getNext())
                {
                    if(tmp->getLevel() >= max1->getLevel())   //se il livello è più alto del massimo
                    {
                        max2=max1;   //faccio scalare il secondo massimo
                        max1=tmp;
                    }else{
                        if(tmp->getLevel() >= max2->getLevel())   //se il livello è più alto del secondo massimo
                            max2=tmp;
                    }
                }

                //__________________________Save Last++____________________________
                //se posso giocare solo la carta di livello più alto, passo
                if(hand->getFirstPlayable(state->winning)==max1)   //se dovrei giocare la carta di livello più alto
                {
                    if(hand->countCheapCards()>3)   //se ho ancora tante carte
                    {
                        //...............calcolo del livello dell'opzione.............
                        algorithmLevel = 18 + hand->getTotGroups();   //più carte mi restano, più conviene passare
                        //............................................................
                        possibilities.addOption(NULL,algorithmLevel);   //mi salvo l'opzione nella lista
                    }
                }else{

                    //__________________________Save Pre++____________________________
                    //se posso giocare solo la seconda carta di livello più alto, passo
                    if(hand->getFirstPlayable(state->winning)==max2)   //se dovrei giocare la seconda carta di livello più alto
                    {
                        if(hand->countCheapCards()>4)   //se ho ancora tante carte
                        {
                            //...............calcolo del livello dell'opzione.............
                            algorithmLevel = 15 + hand->getTotGroups();   //più carte mi restano, più conviene passare
                            //............................................................
                            possibilities.addOption(NULL,algorithmLevel);   //mi salvo l'opzione nella lista
                        }
                    }
                }

                //__________________________Save Last3____________________________
                //se giocherei la carta più alta o di livello più alto, passo
                if(possibilities.getBest()==max1  ||  possibilities.getBest()==hand->getLast())   //se dovrei giocare la carta di livello più alto
                {
                    if(hand->countCheapCards()>2)   //se ho ancora carte
                    {
                        //...............calcolo del livello dell'opzione.............
                        algorithmLevel = 20 + hand->getTotGroups();   //livello più basso di final rush
                        //............................................................
                        possibilities.addOption(NULL,algorithmLevel);   //mi salvo l'opzione nella lista
                    }
                }





            }


            /*
            cout <<"\nQuesto è il mazzo:\n";
            hand->print(true);
            cout <<"\nQueste sono le possibilità:\n";
            possibilities.print(true);
            //*/

            chosen=possibilities.getBest();

            /*
            if(chosen)
                cout <<"\nQuesta è la carta scelta: " <<chosen->getShortName() <<endl;
            else
                cout <<"\nPassa\n";
            //*/

            possibilities.reset();
            if(chosen)
            {
                if(state->winning  &&  chosen->getCount()>state->winning->getCount()
                    && ((chosen->getValue()==2) || (chosen->getValue()==1 && state->twos==0)))
                {
                    Card *tmp=new Card(chosen);
                    chosen=tmp->divide(state->winning->getCount());
                    delete tmp;
                }
                return new Card(chosen);
            }
            else
                return NULL;
        }
    }
}
开发者ID:giovannipessiva,项目名称:lo-re-2,代码行数:101,代码来源:Role-chooseCard.cpp


注:本文中的Choice::getBest方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。