示例#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);
        }
示例#2
0
        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();
        }
示例#3
0
        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);
            }
        }