Fun project but fuzzy on logic. "PhoneCALLs"

Andy Burns yoy at comcast.net
Sat Sep 20 20:24:00 EDT 2003


Rob,

Thanks for the reply!

Maybe I'm going too far too fast. Only two months with Revolution. Your code
looks rather complex. My fault, not yours.

All the best,

Andy Burns


----- Original Message ----- 
From: "Rob Cozens" <rcozens at pon.net>
To: <use-revolution at lists.runrev.com>
Sent: Saturday, September 20, 2003 9:03 PM
Subject: Re: Fun project but fuzzy on logic. "PhoneCALLs"


> >I remember a program that you could type in your phone number and it
would
> >give you all permutations of what possible words could be formed.
> >
> >I just wanted to see how easy it was. Well... I'm really stumped on the
> >logic.
>
> Hi Andy,
>
> I begin with these presumptions:
>
> 1.  We are dealing with 7-digit numbers: no area code.
>
> 2.  One has a list of all "legal" words up to seven characters in
> length in an array variable, myDictionary.  So that myDictionary[1]
> contains all single-character words, myDictionary[2] contains all
> two-character words, etc.
>
> 3.  One has a valid phone number in theNumber
>
> 4.  All words are the same length: one can't put blanks in places
> where there are characters.
>
> local validWords
>
> function goodWord thisWord
>    return (offset(thisWord,validWords)<>0)
> end goodWord
>
> function phoneWords theNumber
>    put empty into characterList
>    put 0 into characterCount
>    repeat for each char theDigit in theNumber
>      switch theDigit
>        case "2"
>          put "ABC" into theCharacters
>        break
>        case "3"
>          put "DEF" into theCharacters
>        break
>        case "4"
>          put "GHI" into theCharacters
>        break
>        case "5"
>          put "JKL" into theCharacters
>        break
>        case "6"
>          put "MNO" into theCharacters
>        break
>        case "7"
>          put "PQRS" into theCharacters
>        break
>        case "8"
>          put "TUV" into theCharacters
>        break
>        case "9"
>          put "WXYZ" into theCharacters
>        break
>        default
>          next repeat
>      end switch
>      add 1 to characterCount
>      put theCharacters into characterList[characterCount]
>    end repeat
>    put myDictionary[characterCount] into validWords
>    put empty into wordList
>    put empty into thisWord
>    repeat for each char myCharacter1 in characterList[1]
>      put myCharacter1 into char 1 of thisWord
>      if characterCount is 1 then
>        if goodWord(thisWord) then put thisWord&return after wordList
>        next repeat
>      end if
>      repeat for each char myCharacter2 in characterList[2]
>        put myCharacter2 into char 2 of thisWord
>        if characterCount is 2 then
>          if goodWord(thisWord) then put thisWord&return after wordList
>          next repeat
>        end if
>        repeat for each char myCharacter3 in characterList[3]
>          put myCharacter3 into char 3 of thisWord
>          if characterCount is 3 then
>            if goodWord(thisWord) then put thisWord&return after wordList
>            next repeat
>          end if
>          repeat for each char myCharacter4 in characterList[4]
>            put myCharacter4 into char 4 of thisWord
>            if characterCount is 4 then
>              if goodWord(thisWord) then put thisWord&return after wordList
>              next repeat
>            end if
>            repeat for each char myCharacter5 in characterList[5]
>              put myCharacter5 into char 5 of thisWord
>              if characterCount is 5 then
>                if goodWord(thisWord) then put thisWord&return after
wordList
>                next repeat
>              end if
>              repeat for each char myCharacter6 in characterList[6]
>                put myCharacter6 into char 6 of thisWord
>                if characterCount is 6 then
>                  if goodWord(thisWord) then put thisWord&return after
wordList
>                  next repeat
>                end if
>                repeat for each char myCharacter7 in characterList[7]
>                  put myCharacter7 into char 7 of thisWord
>                  if goodWord(thisWord) then put thisWord&return after
wordList
>                 end repeat
>               end repeat
>             end repeat
>           end repeat
>         end repeat
>      end repeat
>    end repeat
>    return wordList
> end phoneWords
>
> The nested repeats could be a candidate for recursion, but that's not
> my strong suit.  This should be easier to understand anyway.      :{`)
> -- 
>
> Rob Cozens
> CCW, Serendipity Software Company
> http://www.oenolog.net/who.htm
>
> "And I, which was two fooles, do so grow three;
> Who are a little wise, the best fooles bee."
>
> from "The Triple Foole" by John Donne (1572-1631)
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list