## Lua, 165 Bytes l={}i=1while(l[i-1]~="")do l[i]=io.read()o=l[i]:find"%*"x=o or x y=o and i or y i=i+1 end print(#l[i-2]:sub(1,x):gsub("%S+%s*","#")*100+(i-y-1)*10+#l[y]:match"#-%*") **Ungolfed** l={} i=1 while(l[i-1]~="")do l[i]=io.read() o=l[i]:find"%*" --find "*", and record: x=o or x --position and y=o and i or y --current floor i=i+1 end print(#l[i-2]:sub(1,x):gsub("%S+%s*","#")*100 --[[Take last string of list, and then take the substring up until the asterisk. Substitute any substrings that include nonspace characters (%S+) followed by a minimum of 0 space characters (%s*) with one character (in this code snippet I chose # for no particular reason.) Then take the length of this string, with the # operator. The %S+%s* regex and gsub do the bulk of the magic. ]] +(i-y-1)*10 --[[Total number of lines minus '*' floor minus one. ]] +#l[y]:match"#-%*") --[[Find the substring on the asterisk floor with '#' symbols preceding an asterisk. ]]