Now that just seems weird to me. I would have thought it would have updated the board like so:
| | | |
------
| | |X|
------
| | |O|
So that seems good. But there are two additional things. First, if you have variables BoardPos1...BoardPos9, what do you do? You merge them into an array, of course, where the index is the offset!
So, something like:
std::array<int, 9> BoardPos;
But it goes farther. An enum is not an int. It is a type where a variable of that type can only take the values stated in that enum.
(Yes, you can do implicit conversions between enums and ints, but get that out of your mind now.)
Therefore, this is wrong:
int boardPos9 = circle;
It should look something like
Read more about arrays: SourceForge.net: Safer arrays in Cpp - cpwikiCode:enum class BoardPos_t { X, O, Blank };
std::array<BoardPos_t, 9> BoardPos;
// Remember that arrays start from 0, so pos 6 = 5 from 0.
BoardPos.at(5) = BoardPos_t::X;
BoardPos.at(8) = BoardPos_t::O;