Ejemplo n.º 1
0
    static void CollectWord(string word, string g, int rows, int cols)
    {
        results = new Hashtable();

        gridToProcess           = new ProcessedGrid();
        gridToProcess.columns   = cols;
        gridToProcess.rows      = rows;
        gridToProcess.grid      = CharGrid(g, rows, cols);
        gridToProcess.positions = new List <List <Vector2> >();
        gridToProcess.words     = new List <string>();


        searchKey = word;
        SearchWord(searchKey);

        foreach (DictionaryEntry entry  in results)
        {
            gridToProcess.words.Add((string)entry.Key);

            var wpositions = new List <Vector2> ();
            foreach (var v in (List <Vector2>)entry.Value)
            {
                wpositions.Add(v);
            }
            gridToProcess.positions.Add(wpositions);
        }
    }
Ejemplo n.º 2
0
    void BuildGrid()
    {
        grid.BuildGrid();
        grid.ShowGridChars(BogglingDictionary.Instance.GetRandomChars(grid.COLUMNS * grid.ROWS));


        //solve grid
        solvedGrid = GridUtils.SolveGrid(ref BogglingDictionary.Instance.commonDictionaryWords, grid.GetGridString(), grid.ROWS, grid.COLUMNS);

        //select mapped words
        selectedWords.Clear();
        mappedWords.Clear();

        var wordList = solvedGrid.words.OrderByDescending(x => x.Length).ThenBy(x => x).ToList();
        var num      = numWords [difficulty];

        if (num > wordList.Count)
        {
            num = wordList.Count;
        }

        var i = 0;

        while (i < num)
        {
            selectedWords.Add(wordList [i]);
            mappedWords.Add(new MappedWord(wordList [i].ToUpper(), difficulty));
            i++;
        }
        ShowMappedWords();
    }
Ejemplo n.º 3
0
    public static ProcessedGrid SolveGrid(ref List <string> dictionary, string g, int rows, int cols)
    {
        results = new Hashtable();
        Debug.Log(g);

        gridToProcess           = new ProcessedGrid();
        gridToProcess.columns   = cols;
        gridToProcess.rows      = rows;
        gridToProcess.grid      = CharGrid(g, rows, cols);
        gridToProcess.positions = new List <List <Vector2> >();
        gridToProcess.words     = new List <string>();


        var matchString = new StringBuilder();

        foreach (var row in gridToProcess.grid)
        {
            foreach (var c in row)
            {
                matchString.Append(c);
            }
        }

        Regex Validator = new Regex(@"^[" + matchString.ToString() + "]+$");

        foreach (var word in dictionary)
        {
            var length = word.Length;

            if (Validator.IsMatch(word))
            {
                SearchWord(word);
            }
        }


        foreach (DictionaryEntry entry  in results)
        {
            gridToProcess.words.Add((string)entry.Key);
            var wpositions = new List <Vector2> ();
            foreach (var v in (List <Vector2>)entry.Value)
            {
                wpositions.Add(v);
            }
            gridToProcess.positions.Add(wpositions);
        }

        return(gridToProcess);
    }