示例#1
0
        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);
        }