コード例 #1
0
        /// <summary>
        /// Method converts splitted string to highest field value and field values
        /// </summary>
        /// <param name="highestValue"></param>
        /// <param name="gameBoardModel"></param>
        public void ImportGameBoardModelFromString(string highestValue, string gameBoardModel)
        {
            this.highestValue = (FieldValue)Math.Pow(2, TranslateData.TranslateCharToNumber(highestValue[0]));
            int fieldValue = 0;

            EmptyFieldsPosition emptyFieldsPositions = EmptyFieldsPosition.Instance;

            emptyFieldsPositions.ClearListOfEmptyFields();

            for (int z = 0; z < numberOfLayers; z++)
            {
                for (int x = 0; x < boardSize; x++)
                {
                    for (int y = 0; y < boardSize; y++)
                    {
                        fieldValue = (int)Math.Pow(2, TranslateData.TranslateCharToNumber(
                                                       gameBoardModel[z * boardSize * boardSize + x * boardSize + y]));
                        if (fieldValue > 1)
                        {
                            this.fields[z][x, y] = (FieldValue)fieldValue;
                        }
                        else
                        {
                            this.fields[z][x, y] = FieldValue.empty;
                            emptyFieldsPositions.AddEmptyFieldToList(z, x, y);
                        }
                    }
                }
            }
        }
コード例 #2
0
        public static FieldPosition GetRandomEmptyFieldPosition()
        {
            EmptyFieldsPosition freeFields = EmptyFieldsPosition.Instance;

            int           position = generator.Next(freeFields.NumberOfEmptyFields());
            FieldPosition pos;

            try
            {
                pos = freeFields.GetEmptyFieldFromListAt(position);
            }
            catch (NoFreeFieldException e)
            {
                throw e;
            }

            freeFields.RemoveEmptyFieldFromList(pos.z, pos.x, pos.y);
            return(pos);
        }
コード例 #3
0
        /// <summary>
        /// Method removes specified field from list of empty fields
        /// </summary>
        /// <param name="z"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        private void RemoveFieldPositionFromListOfEmptyFields(int z, int x, int y)
        {
            EmptyFieldsPosition freeFields = EmptyFieldsPosition.Instance;

            freeFields.RemoveEmptyFieldFromList(z, x, y);
        }
コード例 #4
0
        /// <summary>
        /// Method clears list of empty fields
        /// </summary>
        private void ClearListOfPositionsOfEmptyField()
        {
            EmptyFieldsPosition freeFields = EmptyFieldsPosition.Instance;

            freeFields.ClearListOfEmptyFields();
        }
コード例 #5
0
        /// <summary>
        /// Method adds specified field to list of empty fields
        /// </summary>
        /// <param name="z"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        private void AddFieldPositionToListOfEmptyFields(int z, int x, int y)
        {
            EmptyFieldsPosition freeFields = EmptyFieldsPosition.Instance;

            freeFields.AddEmptyFieldToList(z, x, y);
        }