Exemplo n.º 1
0
        /********REPORT**********/
        public MarketReport get_marketReport(int rounds)
        {
            var mr = new MarketReport();

            mr.strListGood       = "Commodities\n\n";
            mr.strListGoodPrices = "Price\n\n";
            mr.strListGoodTrades = "Trades\n\n";
            mr.strListGoodAsks   = "Supply\n\n";
            mr.strListGoodBids   = "Demand\n\n";

            mr.strListAgent       = "Classes\n\n";
            mr.strListAgentCount  = "Count\n\n";
            mr.strListAgentProfit = "Profit\n\n";
            mr.strListAgentMoney  = "Money\n\n";

            mr.arrStrListInventory = new List <String>();

            foreach (var commodity in _goodTypes)
            {
                mr.strListGood += commodity + "\n";

                var price = history.prices.average(commodity, rounds);
                mr.strListGoodPrices += Quick.numStr(price, 2) + "\n";

                var asks = history.asks.average(commodity, rounds);
                mr.strListGoodAsks += (int)(asks) + "\n";

                var bids = history.bids.average(commodity, rounds);
                mr.strListGoodBids += (int)(bids) + "\n";

                var trades = history.trades.average(commodity, rounds);
                mr.strListGoodTrades += (int)(trades) + "\n";

                mr.arrStrListInventory.Add(commodity + "\n\n");
            }
            foreach (var key in _mapAgents.Keys)
            {
                var inventory = new List <double>();
                foreach (var str in _goodTypes)
                {
                    inventory.Add(0);
                }
                mr.strListAgent += key + "\n";
                var profit = history.profit.average(key, rounds);
                mr.strListAgentProfit += Quick.numStr(profit, 2) + "\n";

                double test_profit = 0;
                var    list        = _agents;   //var list = _agents.filter(function(a:BasicAgent):Bool { return a.className == key; } );  dfs stub wtf
                int    count       = 0;
                double money       = 0;

                foreach (var a in list)
                {
                    if (a.className == key)
                    {
                        count++;
                        money += a.money;
                        for (int lic = 0; lic < _goodTypes.Count; lic++)
                        {
                            inventory[lic] += a.queryInventory(_goodTypes[lic]);
                        }
                    }
                }

                money /= count;
                for (int lic = 0; lic < _goodTypes.Count; lic++)
                {
                    inventory[lic] /= count;
                    mr.arrStrListInventory[lic] += Quick.numStr(inventory[lic], 1) + "\n";
                }

                mr.strListAgentCount += Quick.numStr(count, 0) + "\n";
                mr.strListAgentMoney += Quick.numStr(money, 0) + "\n";
            }
            return(mr);
        }