Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!--- Static Variables --->
- <cfset variables.lstAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
- <cfset variables.intNumLoops = 100>
- <cfset variables.Shakespeare = "All your base are belong to me">
- <cffunction name="generateRandomLetter" access="public" returntype="string" output="false">
- <cfset var strLowerCaseAlpha = "abcdefghijklmnopqrstuvwxyz">
- <cfreturn Mid(strLowerCaseAlpha,RandRange( 1, Len( strLowerCaseAlpha ) ),1)>
- </cffunction>
- <cfscript>
- variables.intCount = 0;
- variables.bProgress = true;
- variables.strSubString = "";
- variables.strShakespeare = lcase(variables.Shakespeare.replaceAll("[^a-zA-Z]", "")); //Shakespeare without spaces etc
- variables.stuJson = {};
- variables.strMonkeyString = "";
- while (variables.intCount < variables.intNumLoops) {
- variables.intCount++;
- if(variables.bProgress EQ true){
- //we're adding a new letter
- variables.strMonkeyString = variables.strMonkeyString & generateRandomLetter();
- }else if(len(variables.strMonkeyString) EQ 1){
- //monkey string is just 1 char, just re-guess
- variables.strMonkeyString = generateRandomLetter();
- }else{
- //we're re-guessing the last letter, so we need to remove it, then add a new one.
- variables.strMonkeyString = left(variables.strMonkeyString,len(variables.strMonkeyString)-1) & generateRandomLetter();
- }
- //what we're expecting so far
- variables.strSubString = left(variables.strShakespeare,len(variables.strMonkeyString));
- //Did monkey do it?
- if(variables.strMonkeyString EQ variables.strSubString){
- if(variables.strMonkeyString EQ variables.strShakespeare){
- //100%
- customOutput("**WINNER**: " & variables.strMonkeyString);
- break;
- }else{
- //Good so far, progress to next letter
- variables.bProgress = true;
- }
- }else{
- variables.bProgress = false;
- }
- }
- writeoutput(variables.intCount);
- writeoutput("<br />");
- writeoutput(left(variables.strMonkeyString,len(variables.strMonkeyString)-1));
- </cfscript>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement