shaunthasheep
2007-08-13 17:52:10
here, i dont know if the anagram site is the way it was when i made this, but due to a thread, i decided to release it.
program New;
//JKQVXZ = letters i havn't gotten.
var
A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z : integer;
bitmaparray : array of integer;
alphabet : string;
letters : string;
abc : array of string;
games : integer;
ab: integer;
const amount = 100; //games to play
const waittime = 500; //mm between entering each word;
procedure Load;
begin
R := BitmapFromString2(False, 'a7EBF078DAA593510E84300844AF' +
'D4D216F013DA72FF23AD5DDCC4C4BAABEE4C323F90172C18C2479' +
'1D628046B82C635132072E410EE26E79CC0AC58E8B6D7339A2749' +
'CAF1074D132B6DD5B6D4A25BFA3CC77EAF5EA1ED554D5126FD52A' +
'851BC4BF3198EFD0B6247B84B9380BDCCFA495892C9F0645FADC4' +
'64CEF43C7B31AF761D763DDB6345E16532FF339A0835BC44DBE6A' +
'F1D9A4966E58C1562D0EFB771650B1D872B2A489DDCC67B2FD769' +
'7BF9379EFE0B7DF8FF0BF137B136FC02C75');
N := BitmapFromString2(False, 'a64FC778DAB594490EC3200C45AF' +
'64204C4B0F70FF233584544A458088B6DF9217C6BCC4D800F096F' +
'2BBB33AEDDED81230A825B2A5EC820A00ADAFAB3DF5F69EBB52B1' +
'313F885566953FCCB97A7618E21FF95E690739DB0CE967FC7A32D' +
'7089940FE119F911CC1242793C39B78E2A465C24789319A710E31' +
'0A068F66531FAB082ED993BF7FC9709F8FC506FF4F646B67C755D' +
'CCD0369643AF4A447BD2A922EB6D6DF6B4EAF0A460692EFF955ED' +
'44217A7137F1357E9B59EF457B7A6BFCAAE81D6C93FBF8F1FE04D' +
'E283DE7D7C979C49762E2D9CC7AD4AADEE52EFF60662AF602270');
P := BitmapFromString2(False, 'aD174678DAD5934B0EC3200C44AF' +
'64633ECE32407CFF233560AA522569A15975461A21053DD9B1017' +
'80AC31ECE95A389B827AD463A45E2185A2EC18315CE0EA965FF55' +
'332FC9451127B0C9519E91016633AC64F184F91B4D537BF94CD31' +
'E559BC9945A775ACFF1FE38AD97924F686BF524EDEA7EE6E2E9DA' +
'D25EDD256D8BC55F68B50BFD6F6C2D99B34EAB3315DF99A9F255B' +
'9EAD66E0CEC5B40E3A1BD85209608991C5AA36F41273B3EA3B77D' +
'F32FCB806637E4BF680F32B');
S := BitmapFromString2(False, 'a9F3FE78DAA5535B0EC3200CBB52' +
'2010C2271072FF238DD7A456DD58B7D99255A96025710078C2842' +
'69EB1A90DA52992D30BAA152C1A8C255062C30077F464E115EAD7' +
'0EF3FC11193987170E29052195587C3E692E31F2BA75048B37F8C' +
'2A796D6AB7E401ADCFB8C89ED21DCB9EF6B750754BDBEAB6DFAD4' +
'3C6845248784D1D27EB63110B835A505E814EC2CBE73A6C6CEA1B' +
'D95DAF45C550D4CCF5382239156A133FAC5FEEC0389D1B332BA82' +
'E51F9F4A9DAD6C9670DD55FD09D7E91DFF164A1CD799F9FD6E87F' +
'77DCD0DB9FFB28EFA00837');
U := BitmapFromString2(False, 'a43D4E78DABD934B0EC3200C44AF' +
'C42780598281FB1FA9D86E5550689554A27E921711669891A3D4A' +
'B74E8CD25D7BBCDA97753A17195882E370F1A941A7BB69043FB5E' +
'72E63C3B1D2ACC7FB42AB34F4BB8AC9522E8E07ED32A9678DE8FC' +
'43E2DAC4473C4A47B3DC3C45CF105042AA21DCC4DADEA89499CBD' +
'EFD88DC255F39BE8BBB8D9B2F3BC5D923F3A22A550FC8DFF4BEA7' +
'C1E8AD376B10FE24E74E138AC9966E5CB941E324392E729E9D574' +
'0F0B45F409E26A7BD9E9E4283383BB8C31C26276BC4152FD94DBF' +
'36DD85F373B8AC403F62');
A := BitmapFromString2(False, 'a3C99278DA95525B0EC42008BC12' +
'F800FCC4D7FD8FB4B66C931AEBA63B26F3C3388320C005E44121E' +
'260C7E5E026FD86569AAB9D0405E0379B72875C5292C9476A44FF' +
'E06CCA1D121384E956F692B9AF6E1282775B9F35B7F44CDACD6DA' +
'DF6D8A14D0EA6BF6B181DC13537577D794A219534F9A872A549A9' +
'402D8EC2794EB0FA8093C6E660A827467A465AB31A1DE79B753A3' +
'FBCCE5E84D9695DABD6A1020B154D821CD72D4C335C76FD2F5B9F' +
'BB1FF29E6D233BFF9A4ACC0FFC3ED7F4EFFFBCF10707D');
T := BitmapFromString2(False, 'a298D078DAB5945D0E84200C84AF' +
'0422501ECBDFFD8FB4D26A5217D9351AE64BFAA064064A835287B' +
'4DF8A0DEB564DC45671A9F3948948002184E8B3AB90AD36AF2AFB' +
'D44224221042BCD28106A5DE54F6399D0E89D9597C3AEEA450720' +
'8A14603D19F2A2A576C1D79F6EBD9E777D6F09243B2F1228B9D2F' +
'A408A1B2368EB1F8EE67B5C4A3AC6C1A32B710FB5F688CD63FCCA' +
'2FD27629F469155A26069DCCAEA7AC20EACE21A328B4FCAFB49B6' +
'71E7BE82DB6C16D9EDA164167B92FA9B1D656100EDFFA5CC9EC3F' +
'EA5EA676F4616776F7696EC1EBF87FC654696EC1EBDF31FF7E');
E := BitmapFromString2(False, 'a0242A78DABD936B0AC4200C84AF' +
'E433C69F9AE8FD8FB46ABB74A16BA9A4BBF3C11050064CA2526FE' +
'9D0CC45DFDC04EAB52EF5072248182BB2D776D93F952DE6500135' +
'2AB5EAFFCCC91423568EE4F3D4EFE49C6F7E511A8873183BF2776' +
'D392577447D1EB0ED44800246322F1E4A3E70D0E73BE89C35B539' +
'5A407464D35E2FEEE1D6014A07D50F26BACE2970703D3BD1FEDCC' +
'8490A8ADF4F67FED8FFE28138E705DB7');
G := BitmapFromString2(False, 'a3CD0E78DAAD91D10E83200C457F' +
'A90894F2D882FDFF4F9A1D2ECE209B2CEB4DCE0329277A01788D4' +
'B1B8218177146E6E41604457204F0CE824C5927062CBD272784A0' +
'B353BDE5E2AB5490FF66BB5865CBD64A45A51A9DBF6208E4F18BE' +
'DE959C5D26EF5FB9FD9775BC9F29BADE612E5A42C7C44A3A5EDDC' +
'B131E01A4FB6158FEC9DDFB6358A2749E3171CD8DA4B8D9C897D7' +
'02A2567DA0D8DED64D479FBBBD9867B3E00F2A');
L := BitmapFromString2(False, 'a038E978DAED93410E84200C45AF' +
'546480B26C0BDCFF482345A30431991997F35FF2773E0A02C01E1' +
'3D672206B2F6CD6B6194A5686E4255929989CB15D8B278CE5D3A4' +
'288E8B478300E7668B1CFEB63EA43C644B5879D696B9925E024C5' +
'3DB6917E3BEB64025D90AC5E8F06236CAE803B515F79B59294E19' +
'27D408B167B8B0B99082D9CE44E769ABFFF24F850EBAA9262FEBD' +
'E96FD41FF99F2D47D13659870666B6FBF39C72EAC0C13CE6CF75D' +
'A23238BFB3BD012C0');
C := BitmapFromString2(False, 'a498A178DAB5945B6E03210C45B7' +
'64DEF08901EF7F491DEC56A2629C0E89EA23F9238AEEE0D705F80' +
'993AEE493BBB20BF3076F0621D399FF88C63C8E5E5A40AA35F548' +
'B907E3D42CFF79FE7274191325632350CC26033CC934182D02C1A' +
'0ECBDB3079ACFF52BC4115465A9483AB6E6166B2E545204FF479F' +
'774DE9CFB0DDB577275E27DACBB195923F5AA89E27DA1C65229F0' +
'436B4F54659B66EAD71AFFAD141548C08AFF5479CEC55DFC86DFB' +
'A34D76D5EF1C0317ECE4AEDDDB7D7187B5CDF90E987437696172E' +
'A0FA93A6F6EBE22BBBD5621DFD2C7C96C5D92DBD1AA6884B11E6C' +
'BBE642AF9D411C4CBB5F7921154671E9D1AE4B3DF6B45FF79219A' +
'94266B13B124F5CFCE454FF0B8FF');
F := BitmapFromString2(False, 'a217A478DACD92510AC4200C44AF' +
'149BD8C6CF9AE8FD8FB44677614B29B40D85CEC0901F1F6614E0A' +
'7B0B4A0756E39519F43A96ECD1C18E07C66E4BCBC9AA0496276F5' +
'709900660F41D1BCD95152E23A3847F92F29E6AB4D6EEEC0660F6' +
'1DF2413E154994970FD2611B745C7AC31E0B9B7E80D8F96249AEF' +
'BDA6760DDA83FFC14F28661741CD3709FD6CCDE60F0FB');
M := BitmapFromString2(False, 'aCB39A78DA95555B8EC02008BC92' +
'4FC44FF171FF23AD8A9BD0B5B65D2721C6541861A04AFD2E1DBAF' +
'1BA74EBB0766BC1B5384113752043C2D8B0786D6F2CE518B13DAF' +
'12B3A7A387EC12C4B2E28689349127E6228B141AA046A5768BCE5' +
'9F3C22129A8FEE8810CA650575C9CE07D99F8E0816DF34DD52387' +
'A00DA83387F9C69579E620AAC01E3863CF1CB85EFBAAA6D8FC729' +
'7FDAFB89B124E1C42B24E5F4E3857375548A1C0CB5DF65FDDC077' +
'0EBB42D8F34D154444DEC700CAB53F8A420B550D2C0EAC46C1616' +
'7CE3A0F60952679CE993F558173B5F3670E2BEE210F77D5279372' +
'CF0FB97CC90FF7E95435EF2FB71A41BAE3C07AF8278714A3C7C63' +
'A94E7D17456A9D2C09EF353A7AF3AEE1C446FEE1C8ACB8A52CD3D' +
'DF576FDA90868203B21F99CFF3B4B9F485980F7B14A987935A7A9' +
'DEC353FB2738F1CE48C12CA2C981DD5670EFB04EBACA281D3047B' +
'E1C0B35A4CAA12B2A572F3BD58ACB4D3FC915578E1C06F8709F1D' +
'7F8C281DF789CC3DB1F6D57F2F2C96FF7033F9F3');
D := BitmapFromString2(False, 'aA833D78DAAD5459AEC4200CBB12' +
'650D9F6CB9FF911EC48CA652CB3C7589A508A126C63446A94F6CA' +
'1274BB667436EE4A67817D9500EEC6923A5EEE59442F5FC3B9EB3' +
'2053759B6176ACDA0596E213C5F94D8DC5E599738991382463B79' +
'32AB2D6E80B2CE8B98A569AAE1C36EDD53F277CC2F2BB3606AFEC' +
'6B2C5074AC85C69B2C4970D859CDC36516E9D6F2C054A107FA447' +
'5BCC6A2062A0D80B19A01CCED72AA6FDD58495F400566E9C4A7CA' +
'37D7050B2EB234FF0576E08E632D3CC555F060C6D067395DB68B6' +
'85C04A268C5823E7BD723C30BAB3F5E38FBF4519105B27EEB1D9B' +
'7EDFF78F0259674D29B4272FE4BC5BFC6BDC129C4502E1AABEE85' +
'CC015BD63CBA83DC9648B49D0DE3D6F0A63D2E6F90FFDFF005AD');
O := BitmapFromString2(False, 'a7EA2D78DA95935B0EC4200845B7' +
'A4521FFD54C1FD2F69146CA2B1CE389C8434C470E16A957A42FB9' +
'A2C949A21C59A8DA1C211D06A282EE8A0D4981384E4CB1491592A' +
'6410F24B07C9E562BE6AE19D6D9A1A936B8C150C0DF9DE6A11F3A' +
'71672501A308D1F5AC8880DD1A33BF35035101AD936FA0C3CD5DA' +
'215C17D44106AD5C928BFB934BC876A2DBA7558EEC4B07A95781C' +
'6E0A4D7C6A92327A71BCCF55D6CDD238D266349CCC1767D42F659' +
'7425CB79D9FDE5FCEDB37B36BA9945717777E7B93B0F44F46C141' +
'8F95F163F77FEFF50E1F73CA9C846BEF1013D8');
Y := BitmapFromString2(False, 'aAD48178DADD514B0EC52008BC12' +
'68055CE2EFFE477A5A7D499B6ADB75679259003208007F205771D' +
'957351C9B6689A4E20B090AC051553951B96255DFB3AC76C35396' +
'D1104CFA5C2B2539B40F2E3D3E6A4A209DD4241F5D78F0EA910E0' +
'5CAEE94F54CB04D66D6BA3AE19563FFE9319E633669BCCDE140D3' +
'B8DAD5FD15926D8CAEF17E5743A3410805AAAB9EFAEC28B0F3765' +
'763122FC8AEBC46B012F8D575BEDDE7070D2');
H := BitmapFromString2(False, 'a1E86C78DABD925B0E03210845B7' +
'A4824A3F1575FF4BAA884D4C3AD3CE232D27B93111721530E6153' +
'67641A6AE905357E76A5B2203E5D802D99EB16A79B0CFED7350F1' +
'16366AE7751DFCC5ABB0B0E6271329F07B7E32A1FAF9923D8D09D' +
'06E7979A18070C4EB8EF2A0E1E0400FEFE8D9791122B839112264' +
'48531109829EA375C1ECEF46199CDD0D2368FFD90B87F6F09A979' +
'68E50DF2F5EDA3D1E2C9DFCC9CEEB8FB2F0041F3');
B := BitmapFromString2(False, 'a21D6B78DAA55459AE84300CBB52' +
'BAA6FDCCD2DCFF480F08238198BE819944F2078A2CD74E007855C' +
'005728D0B460E0BA601DAA5B0D5161AC053C4102B98185732AF19' +
'1B52CAC19A96904EE80CC7C996738A1FD8383546BB56C70AF9CDB' +
'C1583F198CDBF5FE79D47B300D32FDAFCEDAE8D631FBD5DD9DC25' +
'E7749CBD71444DF2523E61FB90E696D191C74B882BC3771BB27B2' +
'2BDB77B996E6E482025A4828A61C6B9A7702753585BD3DADD5AC0' +
'37CEB8ABF73744B772E6596A4FF76D36FFBF36823A8A1DDD70B7A' +
'F97E5E8D7FACBD51F55EDCA9B641EDFFD3D8850EB9EBBE9D671E8' +
'104549AC52A9F5D3FE1F91FA9266396D6CDEDA7978ED3F1CD');
W := BitmapFromString2(False, 'a4557B78DA8554EDAE05110C7C25' +
'EBB37E96D6FB3FD25D7A4E5229E77612112C6366AC73DF7ACADBA' +
'43EDB08FCB61E71F48916A09591E101E774DB47CB3874B1A7D00F' +
'2BA5054A4F18B620C6E0B7AF6A4A1C79C0C2E240B5A776D859B8E' +
'96ABD56B87290D67238EC9C6B00D01C6E2BB77BA5097499D3B6D2' +
'8E885652B7DBD120D7DBA80B8A839CA857160CF11903270826644' +
'4CF5A1FB5833D23D4D39E6DC170B8A5424E171D364F7D6A11AD3B' +
'DA41C442F9A0DB8DC335151D01BD9DADAD845CECB876D06ADB139' +
'6CA1F0E9207E9F3C22515A2A755B5BDB256E23671507B55797C76' +
'7B5A901D91F8BB71A0850B73D1D3AACA85FDBB5F9898747CB6C93' +
'C7093B384435990FECF54082BCD4DDF9456BDB339669B8AED2EB5' +
'F43C3E674912F282F49523D65FD153ABFAC995FE6F5CF2BC79CA2' +
'D216D49100ED217359423BF7793B7A04BDEE33FFF2ECFC45F05C4' +
'85F5D6FE00DB5');
I := BitmapFromString2(False, 'a9F39778DAE5934B0AC0200C44AF' +
'E4A7D1B88C89DEFF486D2A825D14942E4A69068601794248624C2' +
'F1B0FDB246914D10C5C1F1707C25451C0FA8B1727FEFEFBEC31C7' +
'1AD0A231A34B62C85FA3E0D422255EB54A15A79AA2E8D4745F990' +
'9C98DBD2C507F98F24B547B6D2C25B4115A2E7C5C58DF3D51ED88' +
'D');
end;
procedure Init;
begin
try
alphabet := 'abcdefghi' + {jk}'lmnop' + {q}'rstu' + {v}'w' + {x}'y'{+z};
bitmaparray := [a,b,c,d,e,f,g,h,i,{j,k,}l,m,n,o,p,{q,}r,s,t,u,{v,}w,{x,}y{,z}];
except
Writeln('uh oh');
end;
end;
function FilterWords(subshtml : string) : array of string;
var
s1 : integer;
begin
repeat
SetArrayLength(result, GetArrayLength(result) + 1);
Delete(subshtml, 1, pos('<li>', subshtml) + 3);
s1 := pos('</li>', subshtml);
result[GetArrayLength(result) - 1] := Copy(subshtml, 1, s1 - 1);
Delete(subshtml, 1, s1);
until pos('<li>', subshtml) < 1;
end;
function GetAnswers(letters : string) : array of string;
var
shtml : string;
i : integer;
temp : array of string;
notha : string;
begin
shtml := GetPage('http://www.anagramssolved.com/anagram-solutions.html?letters=' + letters);
for i := 3 to 7 do
if Pos('<ul><li>' + inttostr(i) + ' Letter Words', shtml) > 0 then
notha := notha + Between('<ul><li>' + inttostr(i) + ' Letter Words', '</ul>', shtml);
result := FilterWords(notha);
end;
function GetLetter(slot : integer) : string;
var
x : integer;
a, y : integer;
i : integer;
begin
x := 142 + (54 * (slot - 1));
//GetClientCanvas.Rectangle(x, 213, x + 25, 213 + 25);
//GetClientCanvas.Pixels[x, 213] := 255;
for i := 0 to GetArrayLength(bitmaparray) - 1 do
if FindBitmapToleranceIn(bitmaparray[i], a, y, x, 213, x + 25, 213 + 25, 270) then
begin
SafeDrawBitmap(bitmaparray[i], GetDebugCanvas, x, 0);
result := alphabet[i + 1];
end;
if result = '' then
begin
writeln(inttostr(slot)); //debugging purposes, and errors.
terminatescript;
end;
end;
function WaitUntilGame : boolean;
var
newgame : boolean;
begin
while GetColor(128, 135) <> 12878592 do
begin
MoveMouse(0, 0);
newgame := true;
if GetColor(282, 224) = 60159 then
ClickMouse(282, 224, True);
if GetColor(296, 234) = 6943690 then
ClickMouse(296, 234, True);
Wait(100);
end;
wait(2000);
end;
procedure Clear;
begin
if (GetColor(250, 266) = 48479) or (GetColor(314, 266) = 65407) then
begin
HoldMouse(571, 215, True);
Wait(450);
ReleaseMouse(571, 215, True);
end;
end;
procedure EnterWord(word : string);
var
i : integer;
begin
for i := 1 to length(word) do
begin
SendKeys(word[i]);
wait(130);
end;
wait(200);
clear;
SendKeys(chr(13));
wait(100);
end;
procedure Free;
var
i : integer;
begin
try
for i := 0 to GetArrayLength(bitmaparray) - 1 do
FreeBitmap(bitmaparray[i]);
except
Writeln('uh oh2');
end;
end;
begin
ActivateClient;
ClearDebug;
Load;
Init;
repeat
WaitUntilGame;
{ //meh} letters := GetLetter(1) + GetLetter(2) + GetLetter(3) + GetLetter(4) + GetLetter(5) + GetLetter(6) + GetLetter(7);
Writeln(letters);
abc := GetAnswers(letters);
for ab := 0 to GetArrayLength(abc) - 1 do
begin
EnterWord(abc[ab]);
Wait(waittime);
end;
games := games + 1;
until((games = amount) or IsFKeyDown(3));
Free;
end.