Verify a solution for Conway Immobilizer
JavaScript (ES7),  229 224  213 bytes
Input: a function (the solver) expecting an array of 3 values among 'Q', 'K', 'A' or undefined for empty, and returning a move as a pair [from, to] (0-indexed)
Output: 0 or 1

f=(F,n=162)=&gt;!n--||(g=s=&gt;(s[k=s.join`/`]^=1)?/A,K,/.test(k)|g(s,[x,y]=F(s.map(a=&gt;a[0])),s[y].unshift(s[x].shift())):0)([0,1,2].map(i=&gt;s[n/3**i%3|0].push('QKAKQAAQKQAKKAQAKQ'[3*~~(n/27)+i]),s=[[],[],[]])&amp;&amp;s)&amp;f(F,n)

Try it online!