public ContinueAttackResponse WhenToContinueAttack(ContinueAttackRequest continueAttackRequest) { ContinueAttackResponse attackResponse = new ContinueAttackResponse(); attackResponse.ContinueAttacking = (continueAttackRequest.AttackingTerritorry.Armies > continueAttackRequest.DefendingTerritorry.Armies); return(attackResponse); }
internal ContinueAttackResponse DecideToMakeNewAttack(ContinueAttackRequest continueAttackRequest) { ContinueAttackResponse response = new ContinueAttackResponse(); response.ContinueAttacking = false; return(response); }
internal ContinueAttackResponse DecideToMakeNewAttack(ContinueAttackRequest continueAttackRequest) { ContinueAttackResponse response = new ContinueAttackResponse(); var myTerritories = GetMyTerritories(continueAttackRequest.Board); var rand = new Random(); foreach (var territory in myTerritories) { var territoryNeighbors = GetNeighbors(territory, continueAttackRequest.Board); foreach (var neighbor in territoryNeighbors) { if (neighbor.Armies == 0 && territory.Armies > 3) { response.ContinueAttacking = true; return(response); } if (territory.Armies > neighbor.Armies * 2) { if (rand.Next(10) != 1) { break; } response.ContinueAttacking = true; return(response); } } } response.ContinueAttacking = false; return(response); }
public ContinueAttackResponse ContinueAttack([FromBody] ContinueAttackRequest continueAttackRequest) { ContinueAttackResponse response = new ContinueAttackResponse(); response.ContinueAttacking = true; return(response); }
private async Task <ContinueAttackResponse> AskMakeAnotherAttackAsync(ApiPlayer player, Territory attackingTerritory, Territory defendingTerritory) { var newAttackRequest = new ContinueAttackRequest { Board = game.Board.SerializableTerritories, AttackingTerritorry = attackingTerritory, DefendingTerritorry = defendingTerritory }; return(await(await player.HttpClient.PostAsJsonAsync("/makeNewAttack", newAttackRequest)) .EnsureSuccessStatusCode() .Content.ReadFromJsonAsync <ContinueAttackResponse>()); }
public ContinueAttackResponse WhenToContinueAttack(ContinueAttackRequest continueAttackRequest) { ContinueAttackResponse continueAttackResponse = new ContinueAttackResponse(); if (continueAttackRequest.AttackingTerritorry.Armies > continueAttackRequest.DefendingTerritorry.Armies + 1) { continueAttackResponse.ContinueAttacking = true; return(continueAttackResponse); } continueAttackResponse.ContinueAttacking = false; return(continueAttackResponse); }
private async Task <ContinueAttackResponse> askContinueAttackingAsync(ApiPlayer currentPlayer, Territory attackingTerritory, Territory defendingTerritory) { var continueAttackingRequest = new ContinueAttackRequest { Board = game.Board.SerializableTerritories, AttackingTerritorry = attackingTerritory, DefendingTerritorry = defendingTerritory }; var continueAttackingResponse = await(await currentPlayer.HttpClient.PostAsJsonAsync("/continueAttacking", continueAttackingRequest)) .EnsureSuccessStatusCode() .Content.ReadFromJsonAsync <ContinueAttackResponse>(); return(continueAttackingResponse); }
private ContinueAttackResponse createContinueAttackResponse(ContinueAttackRequest continueAttackRequest) { Random rnd = new Random(); ContinueAttackResponse response = new ContinueAttackResponse(); if (rnd.Next(1, 3) == 1) { response.ContinueAttacking = false; } else { response.ContinueAttacking = true; } return(response); }
public void DoesNotAttackIfAttackSourceHasLessThanTwoArmies() { var attackSource = new Location(0, 0); var attackTarget = new Location(0, 1); Board.Add(new BoardTerritory { Armies = 1, Location = attackSource, OwnerName = gamePlayer.Player.Name }); Board.Add(new BoardTerritory { Armies = 1, Location = attackTarget, OwnerName = "Enemy" }); var continueAttackRequest = new ContinueAttackRequest { Board = Board }; var continueAttackResponse = gamePlayer.DecideContinueAttackResponse(continueAttackRequest); continueAttackResponse.ContinueAttacking.Should().Be(false); }
internal ContinueAttackResponse DecideToMakeNewAttack(ContinueAttackRequest continueAttackRequest) { ContinueAttackResponse response = new ContinueAttackResponse(); IEnumerable <BoardTerritory> myTerritories = GetMyTerritories(continueAttackRequest.Board); BoardTerritory topDog = new BoardTerritory(); topDog.Armies = 0; foreach (BoardTerritory territory in myTerritories) { if (territory.Armies > topDog.Armies) { if (GetNumBadTerritories(territory, continueAttackRequest.Board) > 0) { topDog = territory; } } } IEnumerable <BoardTerritory> tDogNeighbors = GetNeighbors(topDog, continueAttackRequest.Board); BoardTerritory smallPup = new BoardTerritory(); smallPup.Armies = 99999; foreach (BoardTerritory t in tDogNeighbors) { if (!myTerritories.Contains(t) && t.Armies < smallPup.Armies) { smallPup = t; } } if (topDog.Armies > (2 * smallPup.Armies)) { response.ContinueAttacking = true; } else { response.ContinueAttacking = false; } return(response); }
public ContinueAttackResponse ContinueAttack([FromBody] ContinueAttackRequest continueAttackRequest) { return(gamePlayer.DecideContinueAttackResponse(continueAttackRequest)); }
public ContinueAttackResponse ContinueAttack([FromBody] ContinueAttackRequest continueAttackRequest) { return(gameStrategy.DecideToContinueAttack(continueAttackRequest)); }
public ContinueAttackResponse makeNewAttack([FromBody] ContinueAttackRequest continueAttackRequest) { return(strat.DecideToMakeNewAttack(continueAttackRequest)); }
public ContinueAttackResponse ContinueAttack([FromBody] ContinueAttackRequest continueAttackRequest) { return(createContinueAttackResponse(continueAttackRequest)); }
public ContinueAttackResponse DecideContinueAttackResponse(ContinueAttackRequest continueAttackRequest) { return(new ContinueAttackResponse { ContinueAttacking = true }); }