refactoring for more pythonic idioms, moved parallel data arrays into a class, which helped structure board matching functionality and move list updating.
Should be pretty readable now.
mostly working, did major refactoring for clarity and understanding what all of the pieces are doing. Still another round of refactoring to go to make it clearer what's going on, but I think almost all of the logic is correct.
There's what looks like a bug where the human wins by advancing to the back row, and the computer incorrectly says that it has lost because it has no moves. I suspect this is a bug in my logic, but I'll have to trace through the BASIC to verify.
The game is playable and somewhat fun in its current state.