示例#1
0
文件: Map.cpp 项目: Hisaeri/Zappy
int		Map::checkNb(ResType res, int x, int y)
{
  Spot		*spot;
  int		nb;

  spot = getSpot(x, y);
  nb = spot->howMany(res);
  return (nb);
}
示例#2
0
文件: Map.cpp 项目: Hisaeri/Zappy
GameObject	*Map::getPlayer(int x, int y, int nb) const
{
  Spot		*spot;
  GameObject	*player;

  spot = getSpot(x, y);
  player = spot->getPlayer(nb);
  return (player);
}
示例#3
0
double Put::payoff()
	{
		double po = getStrike() - getSpot();
		if(po>0)
			{
			return po;
			};
			return 0;
		//return max(spot-getStrike(),0);
	};
示例#4
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());
}
示例#5
0
QString* Player::getFullName()
{
    std::ostringstream os;
    os << getName()->toStdString() << " (" << getSpot()->toStdString() << ")";
    return new QString(os.str().c_str());
}
示例#6
0
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)