That hurts my head... =P !k
-----Original Message----- From: Brad Wood [mailto:[EMAIL PROTECTED] Sent: Friday, May 16, 2008 10:13 AM To: CF-Talk Subject: RE: Friday CF Puzzler... Ok, disclaimer: I DON'T think is a good solution, but I wanted to try it-- it IS Friday after all. The code below creates a four-dimensional array for all the numbers and letters in a QWERTY keyboard. It then creates a struct of all the letters and numbers to provide a "lookup" table to quickly find what row and position a given letter is in. Then it finds all its neighbors. I'm pretty convinced that it would be easier and faster just to hard-code all the combinations, but it was a fun proof of concept. Also, I'm REALLY sorry, but I don't have CF8 on my dev box so I can't do implicit array and struct declarations. :( Passing in "s" to the neighbors function returns the following letters: w,e,a,d,z,x <cfscript> keyboard = arraynew(1); number_row = arraynew(1); top_row = arraynew(1); middle_row = arraynew(1); bottom_row = arraynew(1); number_row[1] = '1'; number_row[2] = '2'; number_row[3] = '3'; number_row[4] = '4'; number_row[5] = '5'; number_row[6] = '6'; number_row[7] = '7'; number_row[8] = '8'; number_row[9] = '9'; number_row[10] = '0'; top_row[1] = 'q'; top_row[2] = 'w'; top_row[3] = 'e'; top_row[4] = 'r'; top_row[5] = 't'; top_row[6] = 'y'; top_row[7] = 'u'; top_row[8] = 'i'; top_row[9] = 'o'; top_row[10] = 'p'; middle_row[1] = 'a'; middle_row[2] = 's'; middle_row[3] = 'd'; middle_row[4] = 'f'; middle_row[5] = 'g'; middle_row[6] = 'h'; middle_row[7] = 'j'; middle_row[8] = 'k'; middle_row[9] = 'l'; middle_row[10] = ';'; bottom_row[1] = 'z'; bottom_row[2] = 'x'; bottom_row[3] = 'c'; bottom_row[4] = 'v'; bottom_row[5] = 'b'; bottom_row[6] = 'n'; bottom_row[7] = 'm'; bottom_row[8] = ','; bottom_row[9] = '.'; bottom_row[10] = '/'; keyboard[1] = number_row; keyboard[2] = top_row; keyboard[3] = middle_row; keyboard[4] = bottom_row; location_key = structnew(); location_key['1'] = '1,1'; location_key['2'] = '1,2'; location_key['3'] = '1,3'; location_key['4'] = '1,4'; location_key['5'] = '1,5'; location_key['6'] = '1,6'; location_key['7'] = '1,7'; location_key['8'] = '1,8'; location_key['9'] = '1,9'; location_key['0'] = '1,10'; location_key['q'] = '2,1'; location_key['w'] = '2,2'; location_key['e'] = '2,3'; location_key['r'] = '2,4'; location_key['t'] = '2,5'; location_key['y'] = '2,6'; location_key['u'] = '2,7'; location_key['i'] = '2,8'; location_key['o'] = '2,9'; location_key['p'] = '2,10'; location_key['a'] = '3,1'; location_key['s'] = '3,2'; location_key['d'] = '3,3'; location_key['f'] = '3,4'; location_key['g'] = '3,5'; location_key['h'] = '3,6'; location_key['j'] = '3,7'; location_key['k'] = '3,8'; location_key['l'] = '3,9'; location_key[';'] = '3,10'; location_key['z'] = '4,1'; location_key['x'] = '4,2'; location_key['c'] = '4,3'; location_key['v'] = '4,4'; location_key['b'] = '4,5'; location_key['n'] = '4,6'; location_key['m'] = '4,7'; location_key[','] = '4,8'; location_key['.'] = '4,9'; location_key['.'] = '4,0'; function neighbors(key) { var row = listfirst(location_key[key]); var pos = listlast(location_key[key]); var my_neighbors= arraynew(1); if(row gt 1) { my_neightbors = arrayappend(my_neighbors,keyboard[row-1][pos]); if(pos lt 10) my_neightbors = arrayappend(my_neighbors,keyboard[row-1][pos+1]); } if(pos gt 1) my_neightbors = arrayappend(my_neighbors,keyboard[row][pos-1]); if(pos lt 10) my_neightbors = arrayappend(my_neighbors,keyboard[row][pos+1]); if(row lt 4) { if(pos gt 1) my_neightbors = arrayappend(my_neighbors,keyboard[row+1][pos-1]); my_neightbors = arrayappend(my_neighbors,keyboard[row+1][pos]); } return my_neighbors; } </cfscript> <cfdump var="#neighbors('s')#"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;192386516;25150098;k Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:305487 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

