private void OnNumberUnmarked(object sender, CardNumberUnmarkedEventArgs e)
        {
            var rowIndex    = e.NumberVerticalIndex;
            var columnIndex = BingoLetterCaster.BingoLetterToInt(e.NumberColumnLetter);

            _markedNumbersMap[rowIndex, columnIndex] = UnmarkedNumber;
        }
 public void ApplyBingoBallModel(BingoBall ball)
 {
     if (ball == null)
     {
         throw new ArgumentNullException("ball");
     }
     _letterText.text = BingoLetterCaster.BingoLetterToString(ball.Letter);
     _numberText.text = ball.Number.ToString(CultureInfo.InvariantCulture);
 }
        private void InitializeCardNumbersMap()
        {
            for (var rowIndex = 0; rowIndex < RowsCount; rowIndex++)
            {
                for (var columnIndex = 0; columnIndex < ColumnsCount; columnIndex++)
                {
                    var cardNumberView = _cardNumberViewsMap[rowIndex, columnIndex];

                    var letter = BingoLetterCaster.IntToBingoLetter(columnIndex);
                    var number = _numbersOnCard[rowIndex, columnIndex];

                    cardNumberView.Initialize(letter, rowIndex, number);

                    cardNumberView.Marked   += OnNumberMarked;
                    cardNumberView.Unmarked += OnNumberUnmarked;
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Generates unique number according specified letter
        /// </summary>
        /// <param name="letter"></param>
        /// <returns></returns>
        public int GenerateUniqueNumberForLetter(BingoLetter letter)
        {
            if (!CanGenerateNumberForLetter(letter))
            {
                throw new Exception("All numbers for letter " + letter + " were already generated");
            }
            var letterIndex = BingoLetterCaster.BingoLetterToInt(letter);
            var numbersList = _bingoNumberListsArray[letterIndex];

            var randomIndexForPickNumber = Random.Range(0, numbersList.Count);

            // Pick number by random index in numbersList
            var randomNumber = numbersList[randomIndexForPickNumber];

            // Remove picked number from list (we don't want generate this number again in further calls
            // to GenerateUniqueNumberForLetter() method)
            numbersList.RemoveAt(randomIndexForPickNumber);

            return(randomNumber);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Checks if it's possible to generate number for specified letter
        /// </summary>
        /// <param name="letter"></param>
        /// <returns></returns>
        public bool CanGenerateNumberForLetter(BingoLetter letter)
        {
            var letterIndex = BingoLetterCaster.BingoLetterToInt(letter);

            return(_bingoNumberListsArray[letterIndex].Count > 0);
        }
        private BingoLetter GenerateRandomBingoLetter()
        {
            var randomLetterIndex = UnityEngine.Random.Range(0, 5);

            return(BingoLetterCaster.IntToBingoLetter(randomLetterIndex));
        }