2012-04-08 5 views
3

Ich bin neu auf der Website. Ich würde gerne Hilfe bekommen, wenn irgend möglich.Word-Generator-Algorithmus?

Ich möchte einen Algorithmus, der eine Liste von Wörtern berechnet, nachdem Sie Buchstaben und Wortlänge eingeben. Ich füge meiner Website einen Lösungsabschnitt "Etwas zeichnen" hinzu. Ich bin ein Webentwickler, viel Wissen über XHTML, CSS und einige JS aber das ist alles, ich denke nicht, dass dies ohne die Verwendung von etwas mächtigerem wie Python oder C++ getan werden kann?

+2

JavaScript dies tun können, ist es eine vollwertige Programmiersprache. –

Antwort

3

In Javascript, runnable in Ihrem Browser:

vocabulary = ['start', 'tarts', 'stars', 'rats', 'tears'] // ...etc. read from a file 

function letters(word) { 
    return word.split(''); 
} 

function possibleWords(length, allowedLetters) { 
    var isAllowedLetter = function(letter) { 
     return allowedLetters.indexOf(letter) != -1; // allowedLetters contains letter 
    }; 
    return vocabulary.filter(function(word) { 
     return word.length==length && letters(word).every(isAllowedLetter); 
    }) 
} 

Demo:

> possibleWords(5, ['s','t','a','r']) 
["start", "tarts", "stars"] 

 


 

zu machen diese effizienter zu gestalten, würden Sie tun:

vocabulary = ['start', 'tarts', 'stars', 'rats', 'tears'] // ...etc. read from a file 

function letters(word) { 
    return word.split(''); 
} 

function set(iterable) { 
    var data = {}; 
    iterable.forEach(function(x) { 
     data[x] = true; 
    }); 
    return { 
     contains: function(x) { 
      return !(data[x]===undefined); 
     } 
    }; 
} 

function possibleWords(length, allowedLetters) { 
    var isAllowedLetter = allowedLetters.contains; 
    return vocabulary.filter(function(word) { 
     return word.length==length && letters(word).every(isAllowedLetter); 
    }) 
} 

Demo:

> possibleWords(5, set(['s','t','a','r'])) 
["start", "tarts", "stars"]