public static int Main()
        {
            ConsoleMessages.SendGreeitngs();

            RandomPlayer        random = new();
            Hit17Player         hit17  = new();
            BasicStrategyPlayer basic  = new();

            StandartDealer dealer = new();

            int initialStack  = 40000;
            int roundsPerGame = 40;
            int gameCycles    = 1000;

            StatCollector.RunBlackjackGame(dealer, random, "RandomPlayerTest",
                                           initialStack, roundsPerGame, gameCycles).PrintMainData(Console.OpenStandardOutput());

            Console.WriteLine();

            StatCollector.RunBlackjackGame(dealer, hit17, "Hit17PlayerTest",
                                           initialStack, roundsPerGame, gameCycles).PrintMainData(Console.OpenStandardOutput());

            Console.WriteLine();

            StatCollector.RunBlackjackGame(dealer, basic, "BasicStrategyTest",
                                           initialStack, roundsPerGame, gameCycles).PrintMainData(Console.OpenStandardOutput());

            return(0);
        }
Exemplo n.º 2
0
        public static int Main(string[] argv)
        {
            ConsoleMessages.SendGreetings();

            if (argv.Length != 1)
            {
                return(ConsoleMessages.SendError(1, "unexcpected amount of arguments; please pass only one path"));
            }

            var players = PlayerLoader.LoadFromDLL(argv[0]);

            if (players == null)
            {
                return(ConsoleMessages.SendError(-1, $"could not load .dll from the given path: {argv[0]}"));
            }

            StandartDealer dealer = new();

            int initialStack  = 40000;
            int roundsPerGame = 40;
            int gameCycles    = 1000;

            foreach (var player in players)
            {
                StatCollector.RunBlackjackGame(dealer, player, player.GetType().ToString(),
                                               initialStack, roundsPerGame, gameCycles).PrintMainData(Console.OpenStandardOutput());

                Console.WriteLine();
            }

            return(0);
        }
Exemplo n.º 3
0
        public override void Render(StatCollector StatCollector, Graphics Graphics)
        {
            var font = DefaultFont7.Instance;

            Renderer.RenderTitle(Graphics, "SYSTEM STATUS", font);

            // write date and time
            DateTime now = DateTime.Now;

            Renderer.RenderString(Graphics, now.ToString("yyyy-MM-dd HH:mm:ss"), font, Color.White, 0, 11);

            // write unix time
            double unixTime = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;

            Renderer.RenderString(Graphics, "Unix Time: " + (uint)unixTime, font, Color.White, 0, 19);

            // write uptime
            string uptime = (now - StatCollector.BootTime).ToString(@"d\d\ hh\:mm\:ss");

            Renderer.RenderString(Graphics, "Uptime: " + uptime, font, Color.White, 0, 27);

            // Y = 35

            // write systemd status
            string systemdStatus = Enum.GetName(typeof(StatCollector.SysStatus), StatCollector.SystemdStatus);

            Renderer.RenderString(Graphics, "Systemd Status: " + systemdStatus, font, Color.White, 0, 49);

            // write first failed unit
            if (StatCollector.SystemdFailedUnits.Count > 0)
            {
                StatCollector.SystemdFailedUnits.Sort();
                Renderer.RenderString(Graphics, StatCollector.SystemdFailedUnits[0], font, Color.White, 0, 57);
            }
        }
Exemplo n.º 4
0
    private bool DoLoadGame()
    {
        bool loaded = false;
        int  fReq   = 3;

        if (PlayerPrefs.HasKey("SaveData"))
        {
            SaveData data = JsonUtility.FromJson <SaveData>(PlayerPrefs.GetString("SaveData"));
            state    = data.state;
            stats    = data.stats;
            presents = data.presents;
            friends  = data.friends;
            fReq     = data.friendRequests;
            if (!string.IsNullOrEmpty(data.playerName))
            {
                string[] nameBits = data.playerName.Split(new [] { ' ' }, 2);
                NameManager.SetMyName(nameBits[0], nameBits[1]);
            }
            if (!string.IsNullOrEmpty(data.ldName))
            {
                LudumDareAPI.SetUser(data.ldName, () => {});
            }
            loaded = true;
        }
        pendingRequests.Clear();
        for (int i = 0; i < fReq; ++i)
        {
            pendingRequests.Add(GenerateFriend());
        }
        PrepareFriends();
        SetUpgrades();
        ApplyUpgrades();
        return(loaded);
    }
Exemplo n.º 5
0
        public override void Render(StatCollector StatCollector, Graphics Graphics)
        {
            var font = DefaultFont7.Instance;

            Renderer.RenderTitle(Graphics, "CPU USAGE", font);

            var cpuUsage = StatCollector.CPU_Usage;
            int yGraph   = 19;

            if (cpuUsage.Count > 2) // multi-core (shows up to 5 cores)
            {
                yGraph = 11 + cpuUsage.Count * 8;
                for (byte i = 0; i < cpuUsage.Count && i < 6; i++)
                {
                    byte   ypos           = (byte)(11 + i * 8);
                    string coreIdentifier = i < 1 ? "T" : i.ToString();
                    Renderer.RenderString(Graphics, coreIdentifier, font, Color.White, 0, ypos);
                    Renderer.RenderProgressBar(Graphics, cpuUsage[i][0], 8, ypos, 120, 7);
                }
            }
            else
            {
                Renderer.RenderProgressBar(Graphics, cpuUsage[0][0], 0, 11, 128, 7);
            }

            if (yGraph < 52) // if enough space is available (shows only with max. 4 cores)
            {
                Renderer.RenderGraph(Graphics, cpuUsage[0], 0, (byte)yGraph, 128, (byte)(63 - yGraph), 1f);
            }
        }
Exemplo n.º 6
0
        public void SimpleAverageWinsOnTieTest()
        {
            DummyDealer     dealer = new();
            PlayerAlwaysHit player = new();
            StatContainer   stat   = StatCollector.RunBlackjackGame(dealer, player, "test", 1000, 2, 2);

            Assert.AreEqual(0, stat.AverageWins);
        }
Exemplo n.º 7
0
        public void SimpleAverageWinsTest()
        {
            DealerStackDoubler dealer = new();
            PlayerAlwaysHit    player = new();
            StatContainer      stat   = StatCollector.RunBlackjackGame(dealer, player, "test", 1000, 1, 2);

            Assert.AreEqual(1000, stat.AverageReturn);
        }
Exemplo n.º 8
0
        protected override void DrawSlot(int par1, int par2, int par3, int par4, Tessellator par5Tessellator)
        {
            StatBase statbase = (StatBase)StatList.GeneralStats[par1];

            Field_27276_a.DrawString(GuiStats.GetFontRenderer(Field_27276_a), StatCollector.TranslateToLocal(statbase.GetName()), par2 + 2, par3 + 1, par1 % 2 != 0 ? 0x909090 : 0xffffff);
            string s = statbase.Func_27084_a(GuiStats.GetStatsFileWriter(Field_27276_a).WriteStat(statbase));

            Field_27276_a.DrawString(GuiStats.GetFontRenderer(Field_27276_a), s, (par2 + 2 + 213) - (int)GuiStats.GetFontRenderer(Field_27276_a).GetStringWidth(s), par3 + 1, par1 % 2 != 0 ? 0x909090 : 0xffffff);
        }
Exemplo n.º 9
0
    public void AddMoney(float amount)
    {
        playerMoney += amount;
        SetMoney();

        if (statCollector == null)
        {
            statCollector = (StatCollector)FindObjectOfType(typeof(StatCollector));
        }
        statCollector.FinanceEarn(amount);
    }
Exemplo n.º 10
0
        public override void Render(StatCollector StatCollector, Graphics Graphics)
        {
            var font = DefaultFont7.Instance;

            Renderer.RenderTitle(Graphics, "FONT TEST SCREEN", font);
            Renderer.RenderString(Graphics, "ABCDEFGHIJKLM", font, Color.White, 0, 11);
            Renderer.RenderString(Graphics, "NOPQRSTUVWXYZ", font, Color.White, 0, 19);
            Renderer.RenderString(Graphics, "abcdefghijklm", font, Color.White, 0, 27);
            Renderer.RenderString(Graphics, "nopqrstuvwxyz", font, Color.White, 0, 35);
            Renderer.RenderString(Graphics, "0 123456789 % / . :", font, Color.White, 0, 43);
        }
Exemplo n.º 11
0
        public void NoErrorPrintTest()
        {
            DummyDealer     dealer = new();
            PlayerAlwaysHit player = new();
            StatContainer   stat   = StatCollector.RunBlackjackGame(dealer, player, "test", 1000, 1, 1);

            byte[] data = new byte[1000];
            using (MemoryStream ms = new MemoryStream(data))
            {
                Assert.AreEqual(0, stat.PrintMainData(ms));
            }
        }
Exemplo n.º 12
0
    public void ClickPunish()
    {
        if (trainable == false)
        {
            return;
        }

        if (statCollector == null)
        {
            statCollector = (StatCollector)FindObjectOfType(typeof(StatCollector));
        }
        statCollector.TrainPunish();

        ActionManager.instance.punish();
    }
Exemplo n.º 13
0
    public bool ConsumeMoney(float amount)
    {
        if (playerMoney - amount < 0)
        {
            return(false);
        }
        playerMoney -= amount;
        SetMoney();

        if (statCollector == null)
        {
            statCollector = (StatCollector)FindObjectOfType(typeof(StatCollector));
        }
        statCollector.FinanceSpend(amount);
        return(true);
    }
Exemplo n.º 14
0
        public override void Render(StatCollector StatCollector, Graphics Graphics)
        {
            var font = DefaultFont7.Instance;

            Renderer.RenderTitle(Graphics, "HARD DRIVE STATUS", font);

            for (byte i = 0; i < 10 && i < HardDrives.Length; i++)
            {
                var status = StatCollector.HardDriveStatus[HardDrives[i]];
                int xpos   = i > 4 ? 66 : 2;
                int ypos   = 12 + i * 10;
                if (i > 4)
                {
                    ypos -= 50;
                }
                Renderer.RenderString(Graphics, GetCharFromStatus(status) + " " + HardDrives[i], font, Color.White, xpos, ypos);
            }
        }
Exemplo n.º 15
0
        void rng_bench <T>(IDataStream <T> stream, [CallerMemberName] string caller = null)
            where T : unmanaged
        {
            var segment = Pow2.T08;
            var total   = Pow2.T17;
            var stats   = StatCollector.Create(0.0);
            var sw      = stopwatch(false);

            for (var i = 0; i < total; i += segment)
            {
                sw.Start();
                var sample = stream.TakeArray(segment);
                sw.Stop();
                for (var j = 0; j < segment; j++)
                {
                    stats.Collect(Numeric.force <T, double>(sample[j]));
                }
            }

            var opname = $"{caller}<{typeof(T).DisplayName()}>";

            Deposit(BenchmarkRecord.Define(total, sw.Elapsed, opname));
        }
Exemplo n.º 16
0
        public override void Render(StatCollector StatCollector, Graphics Graphics)
        {
            var font = DefaultFont7.Instance;

            Renderer.RenderTitle(Graphics, "NETWORK STATS - " + this.InterfaceName, font);

            var stats = StatCollector.NetworkStats[this.InterfaceName];

            // draw graphs
            Renderer.RenderGraph(Graphics, stats.ReceiveSpeed, 0, 11, 62, 27);
            Renderer.RenderGraph(Graphics, stats.TransmitSpeed, 65, 11, 62, 27);

            // write RX stats
            string speed = Helper.BytesToHumanReadableString((ulong)(stats.ReceiveSpeed[0] + 0.5f)) + "/s";

            Renderer.RenderString(Graphics, "S", font, Color.White, 0, 41);
            Renderer.RenderString(Graphics, speed, font, Color.White, 8, 41);
            string total = Helper.BytesToHumanReadableString(stats.ReceivedBytes);

            Renderer.RenderString(Graphics, "T", font, Color.White, 0, 49);
            Renderer.RenderString(Graphics, total, font, Color.White, 8, 49);
            string dropped = "0% dropped";

            if (stats.ReceivedPackets > 0)
            {
                dropped = string.Format("{0:0.#}% dropped", (float)stats.DroppedPackets / stats.ReceivedPackets);
            }
            Renderer.RenderString(Graphics, dropped, font, Color.White, 0, 57);

            // write TX stats
            speed = Helper.BytesToHumanReadableString((ulong)(stats.TransmitSpeed[0] + 0.5f)) + "/s";
            Renderer.RenderString(Graphics, "S", font, Color.White, 65, 41);
            Renderer.RenderString(Graphics, speed, font, Color.White, 73, 41);
            total = Helper.BytesToHumanReadableString(stats.TransmittedBytes);
            Renderer.RenderString(Graphics, "T", font, Color.White, 65, 49);
            Renderer.RenderString(Graphics, total, font, Color.White, 73, 49);
        }
Exemplo n.º 17
0
    public void Initialise_Agent(Agent_Type type, int cont_num = 0)
    {
        /*if (type == Agent_Type.Player && cont_num == 0)
         * {
         *  throw new System.ArgumentException("Players cannot have a cont_num of 0: Initialise_Agent");
         * }*/
        // Initialise the AgentManager with all its default values based on type
        m_ControllerNumber = cont_num;
        m_StatCollector    = new StatCollector(this);
        m_Type             = type;
        //m_Powerup_State = null;
        switch (type)
        {
        case Agent_Type.Player:
            // Setup a player character
            m_Input            = new Controller_Input(m_ControllerNumber);
            m_Strength         = GLOBAL_VALUES.BASE_PLAYER_STRENGTH;
            m_MoveSpeed        = GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED;
            m_RotateSpeed      = GLOBAL_VALUES.BASE_PLAYER_ROTATION_SPEED;
            m_Player_Nameplate = m_Instance.transform.Find("Player_Nameplate").gameObject;
            m_Player_Name_Text = m_Player_Nameplate.GetComponent <Text>();
            m_Instance.GetComponent <AgentAnimations>().m_manager = this;       // Set the Animation Manager
            m_Instance.GetComponent <AgentAnimations>().Setup();
            m_Instance.GetComponent <AgentAnimations>().AnimEvent_TrailStop();
            Hide_Name();
            //m_Powerup_State = new AgentPowerups(this);
            m_Instance.transform.Find("Pickup_Box").gameObject.GetComponent <PickupBox>().Add_Agent(this);
            m_BadgeAllocation = "WINDOW_SHOPPER_" + m_Player_Number;
            break;

        case Agent_Type.Base_AI:
            // Base AI are calm, rotate slowly and move at random speeds
            m_Input = new BaseAI_Control(null, this);
            int random_speed = (int)(UnityEngine.Random.Range(GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED * 0.7f, GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED * 1.2f));
            m_Strength    = GLOBAL_VALUES.BASE_PLAYER_STRENGTH;
            m_MoveSpeed   = random_speed;
            m_RotateSpeed = 10.0f;
            break;

        case Agent_Type.Large_AI:
            // Large AI move VERY slowly and rotate even slower
            m_Input       = new LargeAI_Control(null, this);
            m_Strength    = GLOBAL_VALUES.BASE_PLAYER_STRENGTH;
            m_MoveSpeed   = GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED * 0.3f;
            m_RotateSpeed = 2.0f;
            break;

        case Agent_Type.Security_AI:
            // Stronger than normal, rest is average
            m_Input = new SecurityAI_Control(null, this);
            m_Instance.GetComponentInChildren <SecurityItemVision>().m_Manager = this;
            m_Instance.GetComponent <SecurityAnimations>().m_manager           = this; // Set the Animation Manager
            m_Instance.GetComponent <SecurityAnimations>().Setup();
            m_Strength    = GLOBAL_VALUES.BASE_PLAYER_STRENGTH * 1.1f;
            m_MoveSpeed   = GLOBAL_VALUES.BASE_PLAYER_MOVEMENT_SPEED * 0.9f;
            m_RotateSpeed = GLOBAL_VALUES.BASE_PLAYER_ROTATION_SPEED;
            break;

        default:
            // setup a none character
            m_Input = new Input_Methods(cont_num);
            break;
        }
        m_Round_Score        = 0;
        m_Round_Wins         = 0;
        m_Sound_Source       = m_Instance.GetComponent <AudioSource>();
        m_Body               = m_Instance.GetComponent <Rigidbody>();
        m_Collision_Detector = m_Instance.GetComponent <CollisionDetection>();
        m_Animator           = m_Instance.GetComponent <Animator>();
        m_State              = Agent_State.Active;
        m_Enabled_State      = Agent_Movement_State.Disabled;
        m_Animator.SetBool(GLOBAL_VALUES.ANIM_STUN_LOOP, false);
        m_Collision_Detector.Add_Manager(this);
        m_Actions  = new AgentActions(this, m_Input);
        m_Movement = new AgentMovement(this, m_Input);
        if (isPlayer())
        {
            // Players have extra things (UI and crown)
            GameObject StunCanvas   = m_Instance.transform.Find("StunCanvas").gameObject;
            GameObject StunDuration = StunCanvas.transform.Find("StunDuration").gameObject;
            m_UI_Stun = StunCanvas.GetComponent <StunIndicatorUI>();
            m_Crown   = m_Instance.transform.Find("Crown").gameObject;
            m_Crown.SetActive(false);
            m_Round_Score_Position = 0;
        }
        else
        {
            m_UI_Stun = null;
        }
        if (isPlayer() || isSecurityAI())
        {
            GetStunStars();
            SetStunStars(false);
        }
        m_punchImpact = m_Instance.transform.Find("Impact_Punch").gameObject;
        m_throwImpact = m_Instance.transform.Find("Impact_Throw").gameObject;
        m_dashImpact  = m_Instance.transform.Find("Impact_Dash").gameObject;
        m_Sound_Stun  = Resources.Load <AudioClip>(GLOBAL_VALUES.SOUND_PLAYER_HIT);

        /* FIX
         * //m_Effect_Impact = m_Instance.transform.Find("Impact").gameObject;
         * //m_Effect_Stun_Lights = m_Instance.transform.Find("Player_Stun").gameObject;
         */
    }
Exemplo n.º 18
0
 public abstract void Render(StatCollector StatCollector, Graphics Graphics);