本文整理汇总了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;
}
}
}