Jooel, sorry for the confusion. My code works. You can test it. I shaved it a bit.
Code:

Function s($)
Dim $j, $k, $b, $v
Dim $a[$+$]
For $j = 0 to $+$
$a[$j] = $j-$
Next

$s = d($s,$a)

For $k = 1 to $
For $j = 1 to $k
$a = c($j,$a)
$s = d($s,$a)
Next
If $ > $k
$k=$k+1
EndIf
For $j = -1 to -$k step -1
$a = c($j,$a)
$s = d($s,$a)
Next
Next
If NOT $ MOD 2
For $j = 1 to $
$a = c($j,$a)
$s = d($s,$a)
Next
EndIf
If $ MOD 2
For $k = -1 to -$ step -1
For $j = -$k to $
$a = c($j,$a)
$s = d($s,$a)
Next
If -$ < $k
$k=$k-1
EndIf
If NOT $k = -$
For $j = $k to -$ step -1
$a = c($j,$a)
$s = d($s,$a)
Next
EndIf
Next
Else
For $k = -1 to -$ step -1
For $j = $k to -$ step -1
$a = c($j,$a)
$s = d($s,$a)
Next
If -$ < $k
$k=$k-1
EndIf
For $j = -$k to $
$a = c($j,$a)
$s = d($s,$a)
Next
Next
EndIf
$s=Split($s,a)
EndFunction

Function c($j,$a)
Dim $b,$v
$b = AScan($a,0)
$v = AScan($a,$j)
$a[$b]=$j
$a[$v]=0
$c = $a
EndFunction

Function d($s,$a)
Dim $j
If $s
$s = $s + a
EndIf

For Each $j In $a
Select
Case $j < 0
$s = $s + W
Case $j = 0
$s = $s + " "
Case $j > 0
$s = $s + B
EndSelect
Next
$d = $s
EndFunction


Code:

Shuttle Puzzle passed all 10 tests (100% correct)

KiXtart
KiXtart Version = 4.53
KiXforms Version =
KiXGolf Script = kixgolf_shuttle.kix

Computer
OS = Windows XP Professional
CPU = Intel(R) Pentium(R) 4 CPU 3.00GHz
Speed = 2992 MHz
Memory = 512 MB

KiXGolf Scoring Engine
Scoring Engine = 3.2

KiXtart Golf Score
Tournament = KiXtart Golf: Shuttle Puzzle
Processing Start = 2006/09/17 23:34:15.328
Processing End = 2006/09/17 23:34:15.500
Duration = 0000/00/00 00:00:00.172
KiXGolf Score = 759

Thank you for participating in KiXtart Golf!