After stumbling upon the lecture about numerology by IMF's she-devil, Christine Lagarde, I wondered out loud "WTF", the whole world is pooped as it's one step from the 19th century's schemed collapse of mankind and ofc "I can AHK this D: (numerology)".
Couple hours passed and I've created a magical numerologizing script.
It uses the "Pythagorean" system (which i found out to have nothing to do with the almighty Pythagoras but, instead being the creation of a 19th century housewife) and displays the results neatly in a listview.
To note though, single digit values do not amount to 11 or 22 from all values and it got too tedious so I just left it as is.
;;~~ IIRC "Just Me" posted the variadic lv stuff on ahk forums, thanks for that! ~~;; ;;~~ http://www.askastrologer.com/pythagoras-numero.html was used as a "reference" ~~;; ;;~~ and left the sample name and date as defaults since i found they had... ~~;; ;;~~ the "challenge" numbers incorrectly, resulting in a neat 666, which was ~~;; ;;~~ rather entertaining given the context ~~;; InputBox,name,Enter your name,,,200,100,,,,,Agnes Gonxha Bojaxhiu if (errorlevel) Exitapp else{ InputBox,bday,Enter your bday,,,200,120,,,,,26.08.1910 if (errorlevel) Exitapp } lvObj := Object() header := Object() header.insert("Method") stringsplit,name,name,%A_Space% loop, % name0 header.Insert(name%A_Index%) header.insert("Name SD") header.insert(bday) header.insert("Birthday SD") header.insert("Method (number)") lvObj.Insert(header) mList := "Mrs.Balliettian(Destiny),Mrs.Balliettian(Talent),Mrs.Balliettian(Soul urge),Mrs.Balliettian(Personality),Mrs.Balliettian(Ultimate),Mrs.Balliettian(Challenge)" stringsplit,mList,mList,`, loop % mList0 { c := A_Index if (mList%c% == "Mrs.Balliettian(Destiny)") { ;~ rowData%c% := Row(mList%c%,name,"","","") row%c% := Object() row%c%.Insert(mList%c%) loop, % name0 { row%c%.Insert(CompWord(name%A_Index%,99)) } row%c%.Insert(CompWord(name,9)) row%c%.Insert("") row%c%.Insert("") dest := CompWord(name,9) } else if (mList%c% == "Mrs.Balliettian(Talent)") { row%c% := Object() row%c%.Insert(mList%c%) loop, % name0 { row%c%.Insert("") } row%c%.Insert("") row%c%.Insert(CompNum(bday,99)) row%c%.Insert(CompNum(bday,9)) tal := CompNum(bday,9) } else if (mList%c% == "Mrs.Balliettian(Soul urge)") { row%c% := Object() row%c%.Insert(mList%c%) loop, % name0 { row%c%.Insert(CompWord(regexreplace(name%A_Index%,"[BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz]"),99)) } row%c%.Insert(CompWord(regexreplace(name,"[BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz]"),9)) row%c%.Insert("") row%c%.Insert("") } else if (mList%c% == "Mrs.Balliettian(Personality)") { row%c% := Object() row%c%.Insert(mList%c%) loop, % name0 { row%c%.Insert(CompWord(regexreplace(name%A_Index%,"[AEIOUYaeiouy]"),99)) } row%c%.Insert(CompWord(regexreplace(name,"[AEIOUYaeiouy]"),9)) row%c%.Insert("") row%c%.Insert("") } else if (mList%c% == "Mrs.Balliettian(Ultimate)") { row%c% := Object() row%c%.Insert(mList%c%) loop, % name0 { row%c%.Insert("") } row%c%.Insert("") row%c%.Insert("") row%c%.Insert("") row%c%.Insert(CompNum(dest+tal,9)) } else if (mList%c% == "Mrs.Balliettian(Challenge)") { row%c% := Object() row%c%.Insert(mList%c%) loop, % name0 { row%c%.Insert("") } row%c%.Insert("") row%c%.Insert("") row%c%.Insert("") stringsplit,bday,bday,`. ch1 := Abs(CompNum(bday1,9)-CompNum(bday2,9)) ch2 := Abs(CompNum(bday1,9)-CompNum(bday3,9)) ch3 := Abs(ch1-ch2) ch4 := Abs(CompNum(bday2,9)-CompNum(bday3,9)) row%c%.Insert(ch1 " | " ch2 " | " ch3 " | " ch4) } lvObj.Insert(row%c%) } Results(lvObj) Return Results(lvData) { Loop, % lvData.MaxIndex() { if(A_Index == 1){ Loop, % lvData[1].MaxIndex() strHeader .= "|" . lvData[1][A_Index] Gui, +Resize Gui, Add, ListView, w400 h150 +grid NoSortHdr readonly -LV0x10, % SubStr(strHeader, 2) } else { LV_Add("", lvData[A_Index]*) } } LV_ModifyCol() Gui, Show,,NumerologyMe! } return ;~ rshift:: GuiClose: ExitApp CompNum(i,dec){ ;~ if (i < dec+1) ;~ return i while ((r > dec || r == "") || (r == 11 || r == 22)){ r:="" loop,parse,i r += A_LoopField i := r } return r } CompWord(s,dec) { loop,parse,s w .= (a_loopfield == A_Space) ? "" : ((t:=mod(asc(StrLower(a_loopfield))-60,9)) ? t : 9) while (r > dec || r == ""){ r:="" loop,parse,w r += A_LoopField w := r } return r } StrLower(i){ StringLower,i,i return i }
Feel free to abuse as you'd like to, e.g. late-night "clairvoyance" tv-shows come to mind as a potential source of income :3