k, let's get it on...
Function a($r)
Dim $b, $d, $, $i, $k[9], $t, $x, $y, $z
$b = split("._.|.||_| .....|..| ._.._||_. ._.._|._| ...|_|..| ._.|_.._| ._.|_.|_| ._...|..| ._.|_||_| ._.|_|._|")
For $a = 0 To 8
$ = ""
For $z = 0 To 2
$ = $ + SubStr($r[$z], $a * 3 + 1, 3)
Next
$k[$a]=AScan($b, $)
Next
$a = failure
For $t = 0 to 8
$x = Ascan($k,~)
If $x = $t ^ $x = -1
$i = ""
For $x = 0 to 9
$ = 1
For $z = 0 to 8
If SubStr($b[$x], $z+1, 1) = "." & SubStr($r[$z/3], $z mod 3 + $t * 3 + 1, 1) > "."
$ = 0
EndIf
Next
If $
$i = $i + $x
EndIf
Next
For $z = 1 to $i^0
$ = ""
$x = 0
For $d = 0 to 8
$y = IIf($t = $d, SubStr($i,$z,1), $k[$d])
$x = $x + (9 - $d) * $y
$ = $ + $y
Next
If $x mod 11 = 0
$a = Iif($a>Z, $, ambiguous)
; Endif
; Next
; EndiF
; Next
EndFunction
Your solution passed all tests
KiXtart
KiXtart Version = 4.60
KiXGolf Script = kixgolf_cs.kix
KiXGolf Scoring Engine
Scoring Engine = 3.3
KiXtart Golf Score
Tournament = Check Scanning
Processing Start = 2008/04/24 20:05:27.156
Processing End = 2008/04/24 20:05:27.203
Duration = 0000/00/00 00:00:00.046
KiXGolf Score = 541
Thank you for participating in KiXtart Golf!
I knew that there were too many variables...
[edit: I still have no clue what happens here]