public int getMoveValue(int givenID) { PlayerSteps newStep = new PlayerSteps(gameMesh); int moveValue = 0; foreach (PlayerSteps.Directions selectedDir in (PlayerSteps.Directions[])Enum.GetValues(typeof(PlayerSteps.Directions))) { int selectedID = givenID; bool endOfTable = true; int counter = 0; while (endOfTable) { if (((selectedID + 1) % 8 == 0 && (selectedDir == PlayerSteps.Directions.DOWN || selectedDir == PlayerSteps.Directions.DOWNLEFT || selectedDir == PlayerSteps.Directions.DOWNRIGHT)) || (selectedID % 8 == 0 && (selectedDir == PlayerSteps.Directions.UP || selectedDir == PlayerSteps.Directions.UPLEFT || selectedDir == PlayerSteps.Directions.UPRIGHT)) || (selectedID > 55 && (selectedDir == PlayerSteps.Directions.RIGHT || selectedDir == PlayerSteps.Directions.DOWNRIGHT || selectedDir == PlayerSteps.Directions.UPRIGHT)) || (selectedID < 8 && (selectedDir == PlayerSteps.Directions.LEFT || selectedDir == PlayerSteps.Directions.DOWNLEFT || selectedDir == PlayerSteps.Directions.UPLEFT))) { endOfTable = false; counter = 0; } //enemy piece else if (gameMesh[selectedID + newStep.directionInT(selectedDir)].field_owner == 1) { counter++; } //self piece else if (gameMesh[selectedID + newStep.directionInT(selectedDir)].field_owner == 2) { endOfTable = false; } //no piece else { endOfTable = false; counter = 0; } selectedID += newStep.directionInT(selectedDir); } moveValue += counter; } return(moveValue); }
public void gameStep(int new_id, int player) { setLastState(); gameMesh[new_id].field_owner = player; PlayerSteps newStep = new PlayerSteps(gameMesh); foreach (PlayerSteps.Directions dir in (PlayerSteps.Directions[])Enum.GetValues(typeof(PlayerSteps.Directions))) { newStep.nextStep(new_id, dir); } gameMesh.Clear(); foreach (var tiles in newStep.getBoard()) { BoardTile initTile = new BoardTile(tiles); gameMesh.Add(initTile); } calcualteNextStep(); }
public void calcualteNextStep() { int tileid = 0; foreach (BoardTile tiles in gameMesh) { if (tiles.field_owner == 3 || tiles.field_owner == 4 || tiles.field_owner == 5) { tiles.field_owner = 0; } tileid++; } PlayerSteps newStep = new PlayerSteps(gameMesh); tileid = 0; foreach (BoardTile tiles in gameMesh) { if (tiles.field_owner == 1 || tiles.field_owner == 2) { foreach (PlayerSteps.Directions dir in (PlayerSteps.Directions[])Enum.GetValues(typeof(PlayerSteps.Directions))) { newStep.suggestedStep(tileid, dir); } } tileid++; } gameMesh.Clear(); foreach (var tiles in newStep.getBoard()) { BoardTile initTile = new BoardTile(tiles); gameMesh.Add(initTile); } }