Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
97
Task/Anagrams/FutureBasic/anagrams.futurebasic
Normal file
97
Task/Anagrams/FutureBasic/anagrams.futurebasic
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
include "ConsoleWindow"
|
||||
|
||||
def tab 9
|
||||
|
||||
begin globals
|
||||
dim dynamic gDictionary(_maxLong) as Str255
|
||||
end globals
|
||||
|
||||
local fn IsAnagram( word1 as Str31, word2 as Str31 ) as Boolean
|
||||
dim as long i, j, h, q
|
||||
dim as Boolean result
|
||||
|
||||
if word1[0] != word2[0] then result = _false : exit fn
|
||||
|
||||
for i = 0 to word1[0]
|
||||
h = 0 : q = 0
|
||||
for j = 0 to word1[0]
|
||||
if word1[i] == word1[j] then h++
|
||||
if word1[i] == word2[j] then q++
|
||||
next
|
||||
if h != q then result = _false : exit fn
|
||||
next
|
||||
result = _true
|
||||
end fn = result
|
||||
|
||||
local fn LoadDictionaryToArray
|
||||
'~'1
|
||||
dim as CFURLRef url
|
||||
dim as CFArrayRef arr
|
||||
dim as CFStringRef temp, cfStr
|
||||
dim as CFIndex elements
|
||||
dim as Handle h
|
||||
dim as Str255 s
|
||||
dim as long fileLen, i
|
||||
|
||||
kill dynamic gDictionary
|
||||
url = fn CFURLCreateWithFileSystemPath( _kCFAllocatorDefault, @"/usr/share/dict/words", _kCFURLPOSIXPathStyle, _false )
|
||||
open "i", 2, url
|
||||
fileLen = lof(2, 1)
|
||||
h = fn NewHandleClear( fileLen )
|
||||
if ( h )
|
||||
read file 2, [h], fileLen
|
||||
cfStr = fn CFStringCreateWithBytes( _kCFAllocatorDefault, #[h], fn GetHandleSize(h), _kCFStringEncodingMacRoman, _false )
|
||||
if ( cfStr )
|
||||
arr = fn CFStringCreateArrayBySeparatingStrings( _kCFAllocatorDefault, cfStr, @"\n" )
|
||||
CFRelease( cfStr )
|
||||
elements = fn CFArrayGetCount( arr )
|
||||
for i = 0 to elements - 1
|
||||
temp = fn CFArrayGetValueAtIndex( arr, i )
|
||||
fn CFStringGetPascalString( temp, @s, 256, _kCFStringEncodingMacRoman )
|
||||
gDictionary(i) = s
|
||||
next
|
||||
CFRelease( arr )
|
||||
end if
|
||||
fn DisposeH( h )
|
||||
end if
|
||||
close #2
|
||||
CFRelease( url )
|
||||
end fn
|
||||
|
||||
local fn FindAnagrams( whichWord as Str31 )
|
||||
dim as long elements, i
|
||||
|
||||
print "Anagrams for "; UCase$(whichWord); ":",
|
||||
elements = fn DynamicNextElement( dynamic( gDictionary ) )
|
||||
for i = 0 to elements - 1
|
||||
if ( len( gDictionary(i) ) == whichWord[0] )
|
||||
if ( fn IsAnagram( whichWord, gDictionary(i) ) == _true )
|
||||
print gDictionary(i),
|
||||
end if
|
||||
end if
|
||||
next
|
||||
print
|
||||
end fn
|
||||
|
||||
fn LoadDictionaryToArray
|
||||
|
||||
fn FindAnagrams( "bade" )
|
||||
fn FindAnagrams( "abet" )
|
||||
fn FindAnagrams( "beast" )
|
||||
fn FindAnagrams( "tuba" )
|
||||
fn FindAnagrams( "mace" )
|
||||
fn FindAnagrams( "scare" )
|
||||
fn FindAnagrams( "marine" )
|
||||
fn FindAnagrams( "antler" )
|
||||
fn FindAnagrams( "spare" )
|
||||
fn FindAnagrams( "leading" )
|
||||
fn FindAnagrams( "alerted" )
|
||||
fn FindAnagrams( "allergy" )
|
||||
fn FindAnagrams( "research")
|
||||
fn FindAnagrams( "hustle" )
|
||||
fn FindAnagrams( "oriental")
|
||||
def tab 3
|
||||
print
|
||||
fn FindAnagrams( "creationism" )
|
||||
fn FindAnagrams( "resistance" )
|
||||
fn FindAnagrams( "mountaineer" )
|
||||
Loading…
Add table
Add a link
Reference in a new issue