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(); }
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); }
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(); }
// -- 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(); }
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(); }
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); }
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); }
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); }
// -- 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>(); }
public void RedPlayerColorTest() { RedPlayer player = new RedPlayer(1, 1, 1, 1, new Coordinates(5, 5)); Assert.Equal(Color.FromKnownColor(KnownColor.Red), player.GetColor()); }