Beispiel #1
0
        /// <summary>
        /// Generates the game board
        /// </summary>
        /// <param name="row"></param>
        /// <param name="colum"></param>
        private void Createboard(int row, int column)
        {
            //Creates a new tileset size row x column
            _gameBoard = new BoardTile[row, column];

            for (int r = row - 1; r >= 0; r--)
            {
                for (int c = column - 1; c >= 0; c--)
                {
                    BoardTile tile = new BoardTile(r, c);
                    tile.Terrain = SquareTerrain.Grass;

                    if (r == row - 1)
                    {
                        tile.State   = SquareStatus.Enemy;
                        tile.Terrain = SquareTerrain.Woods;
                        _enemyUnits++;
                    }
                    else if (r == row - row)
                    {
                        tile.State   = SquareStatus.Player;
                        tile.Terrain = SquareTerrain.Woods;
                        _playerUnits++;
                    }
                    else
                    {
                        tile.State   = SquareStatus.None;
                        tile.Terrain = SquareTerrain.Grass;
                    }
                    _gameBoard[r, c] = tile;
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Finds and returns the BoardSquare that corresponds to the given row and column.
        /// If the found square has the same color as the current Turn, the square should be stored in SelectedPiece.
        /// Be sure to set the Selected variable of the BoardSquare if this is the case.
        /// </summary>
        /// <param name="row">given row passed to identify the dictionary key</param>
        /// <param name="col">given column to identify the linked list</param>
        /// <returns></returns>
        private BoardTile SelectSquare(int row, int col)
        {
            BoardTile tile = _gameBoard[row, col];

            if (tile.State != SquareStatus.None && tile.State == Turn)
            {
                if (SelectedTile != null)
                {
                    SelectedTile.Selected = false;
                }
                SelectedTile          = tile;
                SelectedTile.Selected = true;
            }

            return(tile);
        }
Beispiel #3
0
        /// <summary>
        /// This function should iterate over each row of the board and
        /// update each Label that represents a board square.
        /// </summary>
        private void RedrawBoard()
        {
            BoardTile currentSquare = null;
            for (int row = _boardHeight; row >= 0; row--)
            {
                for (int column = _boardWidth; column >= 0; column--)
                {
                    currentSquare = _game.GetTile(row, column);
                    Label square = (Label)uxGameBoard.Controls[currentSquare.Row + "," + currentSquare.Column];

                    if (currentSquare.Selected)
                    {
                        square.BackColor = Color.Aqua;
                    }
                    else
                        square.Image = FindImage(_game.GetTile(row, column).Unit);
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// This function attempts to make a legal move in the target row/column and returns true if a move is made.
        /// </summary>
        /// <param name="targetRow">row of the selected tile</param>
        /// <param name="targetCol">column of the selected tile</param>
        /// <returns></returns>
        public bool MakeMove(int targetRow, int targetCol)
        {
            BoardTile target = SelectSquare(targetRow, targetCol);

            if (SelectedTile == null)
            {
                return(false);
            }
            if (SelectedTile == target)
            {
                return(true);
            }
            else if (SelectedTile != null && target.State == SquareStatus.None)
            {
                if (SelectedTile.State == SquareStatus.Enemy)
                {
                    target.State = SelectedTile.State;
                }
                SelectedTile.State    = SquareStatus.None;
                SelectedTile.Selected = false;
                SelectedTile          = null;

                Turn = Turn == SquareStatus.Enemy ? SquareStatus.Enemy : SquareStatus.Player;

                return(true);
            }
            else if (SelectedTile != null && target.State != SquareStatus.None)
            {
                BoardTile end;
                //if(CheckAttack())
                return(false);
            }
            else
            {
                return(false);
            }
        }