int Map::checkNb(ResType res, int x, int y) { Spot *spot; int nb; spot = getSpot(x, y); nb = spot->howMany(res); return (nb); }
GameObject *Map::getPlayer(int x, int y, int nb) const { Spot *spot; GameObject *player; spot = getSpot(x, y); player = spot->getPlayer(nb); return (player); }
double Put::payoff() { double po = getStrike() - getSpot(); if(po>0) { return po; }; return 0; //return max(spot-getStrike(),0); };
QString* Player::getHTML() { std::ostringstream os; std::string color = (leads ? "#A51C30" : "#003399"); os << "<span style=\"color:" << color << ";\"><strong>" << getName()->toStdString() << "</strong> (" << getSpot()->toStdString() << ")</span>"; return new QString(os.str().c_str()); }
QString* Player::getFullName() { std::ostringstream os; os << getName()->toStdString() << " (" << getSpot()->toStdString() << ")"; return new QString(os.str().c_str()); }
float fxTable::getSpot(FXPair fxp) { if (fxp.fgn == fxp.dom) return 1; bool inv = false; if (fxp.fgn < fxp.dom) { swap(fxp.fgn, fxp.dom); inv = true; } int pos = (fxp.fgn - 1)*fxp.fgn / 2 + fxp.dom; fxQuote& fxq = fx[pos]; if (fxq.status == FORMULA) { if (fxq.dirty) { throw "Recompute dirty pair"; // XXX TODO compute level based on formula and list of depedencies } } else if (fxq.status == INVALIDQUOTE) { // FX level requires combining several quotes, used Dijkstra's shortest path // lookup[dom] contains the value of the pair fgndom if known, otherwise -1 int i; for (i = 0; i <= n; ++i) { lookup[i] = -1; // any invalid value visited[i] = false; } std::list<Currency> tovisit; lookup[fxp.fgn] = 1; prev[fxp.fgn] = fxp.fgn; Currency dom2, fgn2; tovisit.push_back(fxp.fgn); do { fgn2 = tovisit.front(); tovisit.pop_front(); visited[fgn2] = true; for (std::set<Currency>::const_iterator it = fxpairs[fgn2].begin(); it != fxpairs[fgn2].end(); ++it) { dom2 = *it; if (lookup[dom2] != -1) continue; lookup[dom2] = lookup[fgn2]*getSpot(FXPair(fgn2, dom2)); // we have a direct quote for fgndom or its inverse setFormula(FXPair(fxp.fgn, dom2), lookup[dom2]); if (dom2 == fxp.dom) goto _exit; if (!visited[dom2]) { tovisit.push_back(dom2); } } } while (!tovisit.empty()); _exit: if (dom2 == fxp.dom) { fxq.level = lookup[dom2]; fxq.dirty = false; fxq.status = FORMULA; // XXX TODO record formula. } else { throw "Fx pair is missing"; } } return inv ? 1 / fxq.level : fxq.level; } // float fxTable::value(Currency fgn, Currency dom)