// Start is called before the first frame update void Start() { theme = ThemeFactory.CreateTheme(GameManager.instance.theme); endGame.SetActive(false); qtdWords = theme.QtdWords; //colore as palavras com a cor determinada for (int i = 0; i < words.Length; i++) { words[i].text = theme.SelectedWords[i]; Color newColor = new Color(); ColorUtility.TryParseHtmlString(theme.SelectedColors[i], out newColor); words[i].color = newColor; } //inicializa lista de palavras marcadas for (int i = 0; i < words.Length; i++) { GameManager.instance.markedWords.Add(new List <string>() { "", "", "", "", "", "", "", "", "", "" }); } txtTheme.text = "Theme: " + GameManager.instance.theme; txtWords.text = "Words: " + qtdWords; }
// Start is called before the first frame update void Start() { btnLetter = gameObject.GetComponent <Button>(); theme = ThemeFactory.CreateTheme(GameManager.instance.theme); txtLetter = gameObject.GetComponentInChildren <Text>(); }
//método para preencher a matrix proceduralmente private void GenerateMatrix(string txtTheme) { Theme theme = ThemeFactory.CreateTheme(txtTheme); //percorre linhas e colunas // para preencher a matriz com as palavras selecionadas for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { //percorre a lista de palavras selecionadas for (int i = 0; i < theme.SelectedWords.Count; i++) { //verifica a posição da primeira letra de cada palavra if (row == theme.SelectedWordsPosY[i] && col == theme.SelectedWordsPosX[i]) { //verifica qual é a orientação da palavra na matriz if (theme.WordsOrientation[i].ToLower() == "horizontal") { //percorre cada letra da palavra for (int j = 0; j < theme.SelectedWords[i].Length; j++) { //verifica se o espaço que vai ser inserido a letra está vazio ou contém a mesma letra if (matrix[row, col + j] == null || matrix[row, col + j] == theme.SelectedWords[i][j].ToString().ToUpper()) { matrix[row, col + j] = theme.SelectedWords[i][j].ToString().ToUpper(); continue; } // se não, sorteia uma nova posição para a palavra onde ela não ocupe a mesma de alguma palavra existente else { theme.SelectedWordsPosX[i] = Random.Range(0, cols - theme.SelectedWords[i].Length); theme.SelectedWordsPosY[i] = Random.Range(0, rows); i--; row = 0; col = 0; break; } } } else if (theme.WordsOrientation[i].ToLower() == "vertical") { for (int j = 0; j < theme.SelectedWords[i].Length; j++) { if (matrix[row + j, col] == null || matrix[row + j, col] == theme.SelectedWords[i][j].ToString().ToUpper()) { matrix[row + j, col] = theme.SelectedWords[i][j].ToString().ToUpper(); continue; } else { theme.SelectedWordsPosX[i] = Random.Range(0, cols); theme.SelectedWordsPosY[i] = Random.Range(0, rows - theme.SelectedWords[i].Length); i--; row = 0; col = 0; break; } } } else if (theme.WordsOrientation[i].ToLower() == "diagonal") { for (int j = 0; j < theme.SelectedWords[i].Length; j++) { if (matrix[row + j, col + j] == null || matrix[row + j, col + j] == theme.SelectedWords[i][j].ToString().ToUpper()) { matrix[row + j, col + j] = theme.SelectedWords[i][j].ToString().ToUpper(); continue; } else { theme.SelectedWordsPosX[i] = Random.Range(0, cols - theme.SelectedWords[i].Length); theme.SelectedWordsPosY[i] = Random.Range(0, rows - theme.SelectedWords[i].Length); i--; row = 0; col = 0; break; } } } } } } } //preenche os espaços vazios da matriz com letras aleatórias. for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { if (matrix[row, col] == null) { matrix[row, col] = alphabet[Random.Range(0, alphabet.Length)]; } } } }