Exemple #1
0
        public void DoWork()
        {
            Host        host = new Host();
            RedPlayer   r1   = new RedPlayer("紅1", host);
            RedPlayer   r2   = new RedPlayer("紅2", host);
            BluePlayer  b1   = new BluePlayer("藍1", host);
            BluePlayer  b2   = new BluePlayer("藍2", host);
            GreenPlayer g1   = new GreenPlayer("綠1", host);
            GreenPlayer g2   = new GreenPlayer("綠2", host);

            host.AddPlayer(r1); host.AddPlayer(r2);
            host.AddPlayer(b1); host.AddPlayer(b2);
            host.AddPlayer(g1); host.AddPlayer(g2);

            r1.Kill(b1.id);
            r2.KillAll();
            b1.Blood(b2.id);
            b2.Blood(b1.id);
            g1.Kill(r2.id);
            g2.BloodAll();
            r2.KillAll();
            r2.KillAll();
            r2.KillAll();
            r2.KillAll();
        }
Exemple #2
0
        public void Run()
        {
            BoardPosition boardPosition = new BoardPosition();
            Logic         logic         = new Logic();

            Console.SetWindowSize(100, 42);

            //Main game Loop.
            while (!boardPosition.CheckWin())
            {
                //Current player rolls dice
                if (Turn == CheckerColor.Red)
                {
                    Dice = RedPlayer.Roll(Turn, RandomNumberGen);
                }
                else if (Turn == CheckerColor.Black)
                {
                    Dice = BlackPlayer.Roll(Turn, RandomNumberGen);
                }

                while ((Dice.CurrentDiceNumbers.Count > 0) && !boardPosition.CheckWin())
                {
                    OnStateChanged(boardPosition, Dice, Turn, logic);

                    if (logic.ListPossibleMoves(boardPosition, Dice, Turn).Count > 0)
                    {
                        if (Turn == CheckerColor.Red)
                        {
                            Move userInput = RedPlayer.ChooseMove(Dice.CurrentDiceNumbers,
                                                                  logic.ListPossibleMoves(boardPosition, Dice, Turn), Turn, this);
                            logic.ApplyMove(boardPosition, userInput, Turn);
                        }
                        else if (Turn == CheckerColor.Black)
                        {
                            Move userInput = BlackPlayer.ChooseMove(Dice.CurrentDiceNumbers,
                                                                    logic.ListPossibleMoves(boardPosition, Dice, Turn), Turn, this);
                            logic.ApplyMove(boardPosition, userInput, Turn);
                        }
                    }
                    //In case there are no legal moves
                    else
                    {
                        Dice.CurrentDiceNumbers.Clear();
                    }
                }
                //Checking if someone is winning
                if (!boardPosition.CheckWin())
                {
                    PassTurn();
                }
            }

            OnGameEnded(boardPosition, Dice, Turn, logic);
        }
 //TODO: All these methods should move to a dedicated service
 public async Task <PostScoreViewModel> Save(League league, Db db)
 {
     if (!BluePlayer.IsNoE() && !RedPlayer.IsNoE())
     {
         await SavePlayerScore(league, db);
     }
     else
     {
         await SaveTeamScore(league, db);
     }
     return(this);
 }
Exemple #4
0
        public void RedPlayerPlantRedBombTest()
        {
            Map map = Map.GetInstance;

            map.CleanArena();
            MapManagerStub mapManager = new MapManagerStub();
            RedPlayer      player     = new RedPlayer(1, 1, 1, 1, new Coordinates(5, 5));

            mapManager.PlaceBomb(player);
            Assert.True(map.getMapContainer()[5, 5][0] is RedBomb, "not a blue bomb");
            map.removeMap();
        }
Exemple #5
0
        // --  Constructor -- //

        public Level()
        {
            width  = 1280;
            height = 720;
            tile   = new Tile();

            redPlayer  = new RedPlayer();
            bluePlayer = new BluePlayer();

            grid   = new Tile[width / tile.GetSize, height / tile.GetSize];
            sorter = new TileSorter(grid.Length);

            AddBorder();
        }
Exemple #6
0
        public void RedBombGetColorTest()
        {
            Map map = Map.GetInstance;

            map.CleanArena();
            MapManagerStub mapManager = new MapManagerStub();
            RedPlayer      player     = new RedPlayer(1, 1, 1, 1, new Coordinates(5, 5));

            mapManager.PlaceBomb(player);
            RedBomb bomb = map.getMapContainer()[5, 5][0] as RedBomb;

            Assert.Equal(Color.FromKnownColor(KnownColor.Red), bomb.GetColor());
            map.removeMap();
        }
Exemple #7
0
        public void LeftTest()
        {
            Console.WriteLine("Upward Movement");
            Level2 TestLevel2 = new Level2();

            Movement   instance = new Movement();
            RedPlayer  actualR  = new RedPlayer();
            BluePlayer actualB  = new BluePlayer();

            instance.Left(actualR, actualB, TestLevel2);
            int expectedR = actualR.GetX - 40;
            int expectedB = actualB.GetX - 40;


            instance.Left(actualR, actualB, TestLevel2);
            Assert.AreEqual(expectedR, actualR.GetX);
        }
Exemple #8
0
        public void testDown()
        {
            Console.WriteLine("Downward Movement");
            Level2 TestLevel2 = new Level2();

            TestLevel2.AddRedPlayer(12, 8);

            Movement   instance = new Movement();
            RedPlayer  actualR  = new RedPlayer();
            BluePlayer actualB  = new BluePlayer();

            instance.Down(TestLevel2.GetRedPlayer, actualB, TestLevel2);
            int expectedR = actualR.GetY - 40;
            int expectedB = actualB.GetY - 40;


            instance.Down(actualR, actualB, TestLevel2);
            Assert.AreEqual(expectedR, actualR.GetY);
        }
        private async Task SavePlayerScore(League league, Db db)
        {
            if (BluePlayerScore <= 0 && RedPlayerScore <= 0)
            {
                throw new Exception("Invalid scores, both must be greater zero.");
            }
            if (BluePlayer.IsNoE() || RedPlayer.IsNoE())
            {
                throw new Exception("One or more player names empty.");
            }

            var bluePlayer = await GetOrCreatePlayer(BluePlayer, league, db);

            var redPlayer = await GetOrCreatePlayer(RedPlayer, league, db);

            var game = await CreateGame(RedPlayerScore, BluePlayerScore, league, db);

            await CreatePosition(game, redPlayer, PlayerPositionTypes.Red, db);
            await CreatePosition(game, bluePlayer, PlayerPositionTypes.Blue, db);
        }
Exemple #10
0
        private TestPlayer NewPlayerFromBasePlayer(TestPlayer c)
        {
            TestPlayer r    = c;
            bool       init = false;

            switch (c.Character)
            {
            case Character.Blue:
                break;

            case Character.Green:
                break;

            case Character.Grey:
                break;

            case Character.Red:
                r    = new RedPlayer($"#player{c.AssociatedPlayer}", new Position(200, 200), @"C\Chars\Red\w_0_1");
                init = true;
                break;

            case Character.White:
                break;

            case Character.Yellow:
                r    = new YellowPlayer($"#player{c.AssociatedPlayer}", new Position(200, 200), @"C\Chars\Yellow\w_0_0");
                init = true;
                break;
            }
            if (init != false)
            {
                r.FollowCamera     = true;
                r.AssociatedPlayer = c.AssociatedPlayer;
                r.Initialize();
            }
            return(r);
        }
Exemple #11
0
        // -- Standard Operations -- //

        public Tile CreateTile(String tileName)
        {
            switch (tileName.ToLower())
            {
            case "bluebutton":
                BlueButton blueButton = new BlueButton();
                return(blueButton);

            case "blueflame":
                BlueFlame blueFlame = new BlueFlame();
                return(blueFlame);

            case "blueplayer":
                BluePlayer bluePlayer = new BluePlayer();
                return(bluePlayer);

            case "redbutton":
                RedButton redButton = new RedButton();
                return(redButton);

            case "redflame":
                RedFlame redFlame = new RedFlame();
                return(redFlame);

            case "redplayer":
                RedPlayer redPlayer = new RedPlayer();
                return(redPlayer);

            case "wall":
                Wall wall = new Wall();
                return(wall);

            default:
                return(null);
            }
        }
 void Awake()
 {
     BlueCharacterData = BlueCharacter.GetComponent <BluePlayer>();
     RedCharacterData  = RedCharacter.GetComponent <RedPlayer>();
 }
Exemple #13
0
        public void RedPlayerColorTest()
        {
            RedPlayer player = new RedPlayer(1, 1, 1, 1, new Coordinates(5, 5));

            Assert.Equal(Color.FromKnownColor(KnownColor.Red), player.GetColor());
        }