Example #1
0
        public Roshambo GameStart()
        {
            try
            {
                WinLog.Clear();
                count      = 0;
                PlayerWins = new bool[GameLength];
                enemyQ     = new int[3] {
                    Enemy.Rock.Quantity, Enemy.Paper.Quantity, Enemy.Scissors.Quantity
                };
                playerQ = new int[3] {
                    Player.Rock.Quantity, Player.Paper.Quantity, Player.Scissors.Quantity
                };
                int[] modifiers = new int[6] {
                    Mods.RkVsPp, Mods.RkVsSs, Mods.PpVsRk, Mods.PpVsSs, Mods.SsVsRk, Mods.SsVsPp
                };
                for (int i = 0; i < GameLength; i++)
                {
                    int player = NewParticipant();
                    int enemy  = NewParticipant(false);
                    // 1, 2, 3 -> 2
                    if (player == 1)
                    {
                        if (enemy == 1)
                        {
                            WinLog.Add("Player Rock vs Enemy Paper - "
                                       + Combat(Player.Rock.ModPaper + modifiers[0], Enemy.Paper.ModRock + modifiers[2]).ToString());
                        }

                        else if (enemy == 2)
                        {
                            WinLog.Add("Player Rock vs Enemy Scissors - "
                                       + Combat(Player.Rock.ModScissor + modifiers[1], Enemy.Scissors.ModRock + modifiers[4]).ToString());
                        }
                        else
                        {
                            WinLog.Add("Player Rock vs Enemy Rock - " + Combat(0, 0).ToString());
                        }
                        playerQ[0] -= 1;
                    }
                    else if (player == 2)
                    {
                        if (enemy == 0)
                        {
                            WinLog.Add("Player Paper vs Enemy Rock - "
                                       + Combat(Player.Paper.ModRock + modifiers[2], Enemy.Rock.ModPaper + modifiers[0]).ToString());
                        }
                        else if (enemy == 2)
                        {
                            WinLog.Add("Player Paper vs Enemy Scissor - "
                                       + Combat(Player.Paper.ModScissor + modifiers[3], Enemy.Scissors.ModPaper + modifiers[5]).ToString());
                        }
                        else
                        {
                            WinLog.Add("Player Paper vs Enemy Paper - " + Combat(0, 0).ToString());
                        }
                        playerQ[1] -= 1;
                    }
                    else
                    {
                        if (enemy == 0)
                        {
                            WinLog.Add("Player Scissor vs Enemy Rock - "
                                       + Combat(Player.Scissors.ModRock + modifiers[4], Enemy.Rock.ModScissor + modifiers[1]).ToString());
                        }
                        else if (enemy == 1)
                        {
                            WinLog.Add("Player Scissor vs Enemy Paper - "
                                       + Combat(Player.Scissors.ModPaper + modifiers[5], Enemy.Paper.ModScissor + modifiers[3]).ToString());
                        }
                        else
                        {
                            WinLog.Add("Player Scissor vs Enemy Scissor - " + Combat(0, 0).ToString());
                        }
                        playerQ[2] -= 1;
                    }
                }
            }
            catch (InvalidStringLengthException e)
            {
                DataStore.Add(new Log("GameBoard log string length exception. Message: " + e.Message));
            }
            int wincount = 0;

            for (int i = 0; i < PlayerWins.Length; i++)
            {
                if (PlayerWins[i])
                {
                    wincount++;
                }
            }
            if (wincount >= (GameLength / 2))
            {
                return(Player);
            }
            else
            {
                return(Enemy);
            }
        }