Пример #1
0
    // 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;
    }
Пример #2
0
 // Start is called before the first frame update
 void Start()
 {
     btnLetter = gameObject.GetComponent <Button>();
     theme     = ThemeFactory.CreateTheme(GameManager.instance.theme);
     txtLetter = gameObject.GetComponentInChildren <Text>();
 }
Пример #3
0
    //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)];
                }
            }
        }
    }