Advertisement
Guest User

Untitled

a guest
Oct 25th, 2012
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!--- Static Variables --->
  2. <cfset variables.lstAlphabet        = "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
  3. <cfset variables.intNumLoops        = 100>
  4. <cfset variables.Shakespeare        = "All your base are belong to me">
  5.  
  6. <cffunction name="generateRandomLetter" access="public" returntype="string" output="false">
  7.     <cfset var strLowerCaseAlpha = "abcdefghijklmnopqrstuvwxyz">
  8.     <cfreturn Mid(strLowerCaseAlpha,RandRange( 1, Len( strLowerCaseAlpha ) ),1)>
  9. </cffunction>
  10.  
  11. <cfscript>
  12.     variables.intCount              = 0;
  13.     variables.bProgress             = true;
  14.     variables.strSubString          = "";
  15.     variables.strShakespeare        = lcase(variables.Shakespeare.replaceAll("[^a-zA-Z]", "")); //Shakespeare without spaces etc
  16.     variables.stuJson               = {};
  17.     variables.strMonkeyString       = "";
  18.  
  19.     while (variables.intCount < variables.intNumLoops) {
  20.         variables.intCount++;
  21.        
  22.         if(variables.bProgress EQ true){
  23.             //we're adding a new letter
  24.             variables.strMonkeyString   =   variables.strMonkeyString & generateRandomLetter();
  25.         }else if(len(variables.strMonkeyString) EQ 1){
  26.             //monkey string is just 1 char, just re-guess
  27.             variables.strMonkeyString   =   generateRandomLetter();
  28.         }else{
  29.             //we're re-guessing the last letter, so we need to remove it, then add a new one.
  30.             variables.strMonkeyString   =   left(variables.strMonkeyString,len(variables.strMonkeyString)-1) & generateRandomLetter();
  31.         }
  32.        
  33.         //what we're expecting so far
  34.         variables.strSubString  =   left(variables.strShakespeare,len(variables.strMonkeyString));
  35.  
  36.         //Did monkey do it?
  37.         if(variables.strMonkeyString EQ variables.strSubString){
  38.             if(variables.strMonkeyString EQ variables.strShakespeare){
  39.                 //100%
  40.                 customOutput("**WINNER**: " & variables.strMonkeyString);
  41.                 break;
  42.             }else{
  43.                 //Good so far, progress to next letter
  44.                 variables.bProgress =   true;
  45.             }
  46.         }else{
  47.             variables.bProgress =   false;
  48.         }
  49.     }
  50.    
  51.     writeoutput(variables.intCount);
  52.     writeoutput("<br />");
  53.     writeoutput(left(variables.strMonkeyString,len(variables.strMonkeyString)-1));
  54. </cfscript>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement