/// <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)); }
public PhonemeScreenObj(PhonemeObj i_PhonemeObject, TableDimension i_ScreenPosition) { myPhonemeObject = i_PhonemeObject; screenPosition = i_ScreenPosition; }