You really want to use a graph here. Graphs also provide some other benefits, such as being able to ask "Where can a knight go?" and have it be pretty simple to implement.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?