in csrc/SmartBot.cc [182:201]
void CardKnowledge::setIsPlayable(bool knownPlayable)
{
for (Color k = RED; k <= BLUE; ++k) {
int playableValue = bot_->server_->pileOf(k).size() + 1;
for (int v = 1; v <= 5; ++v) {
if (this->cantBe_[k][v]) continue;
if ((v == playableValue) != knownPlayable) {
this->cantBe_[k][v] = true;
}
}
}
possibilities_ = -1;
if (color_ == -1) color_ = -2;
if (value_ == -1) value_ = -2;
playable_ = (knownPlayable ? YES : NO);
probabilityPlayable_ = (knownPlayable ? 1.0 : 0.0);
if (valuable_ == MAYBE) probabilityValuable_ = -1.0;
if (worthless_ == MAYBE) probabilityWorthless_ = -1.0;
if (knownPlayable) { worthless_ = NO; probabilityWorthless_ = 0.0; }
}