Пример #1
0
    /// <summary>
    /// Generates Rounds!
    /// </summary>
    Round GenerateRound(TableDimension tableSize, int numWaves)
    {
        List <PhonemeScreenObj> screenPhonemeObjects = new List <PhonemeScreenObj>();
        List <Wave>             waves = new List <Wave>();

        //Create All Phoneme Screen Objects For Round
        for (int row = 0; row < tableSize.row; row++)
        {
            for (int col = 0; col < tableSize.column; col++)
            {
                TableDimension   td     = new TableDimension(row, col);
                PhonemeObj       phoObj = PhonemeBank.Instance.GetAvailablePhoneme();
                PhonemeScreenObj pho    = new PhonemeScreenObj(phoObj, td);
                screenPhonemeObjects.Add(pho);
            }
        }

        //Create all Waves using the Phoneme Screen Objects
        Direction lastMoveDirection = (Direction)Random.Range(0, 4);

        for (int i = 0; i < numWaves; i++)
        {
            Direction moveDirection         = GetNewDirection(lastMoveDirection);
            List <PhonemeScreenObj> phoObjs = new List <PhonemeScreenObj>();

            if (moveDirection == Direction.Up || moveDirection == Direction.Down)
            {
                for (int row = 0; row < tableSize.row; row++)
                {
                    int column = Random.Range(0, tableSize.column);
                    PhonemeScreenObj phoObj = screenPhonemeObjects.Find(pho => (pho.screenPosition.row == row && pho.screenPosition.column == column));
                    phoObjs.Add(phoObj);
                }
            }
            else
            {
                for (int column = 0; column < tableSize.column; column++)
                {
                    int row = Random.Range(0, tableSize.row);
                    PhonemeScreenObj phoObj = screenPhonemeObjects.Find(pho => (pho.screenPosition.row == row && pho.screenPosition.column == column));
                    phoObjs.Add(phoObj);
                }
            }

            Wave wave = new Wave(phoObjs, moveDirection);
            waves.Add(wave);
        }

        return(new Round(screenPhonemeObjects, waves));
    }
Пример #2
0
 public PhonemeScreenObj(PhonemeObj i_PhonemeObject, TableDimension i_ScreenPosition)
 {
     myPhonemeObject = i_PhonemeObject;
     screenPosition  = i_ScreenPosition;
 }