Hi Michael,
You will want to break all of these down into smaller jobs, and then break those down further. Have you tried making Pong yet? I know it sounds super-simple, but by implementing Pong you actually cover a ton of concepts that you will use when making games:
- Player input
- Movement
- AI
- ÂBall
- Increment x / y by x / y speed each frame unless collide with ball or collide with wall
- Storing sprite positions
- Storing other variables (score, etc)
- Drawing (blitting) sprites and backgrounds to a window
- Basic state machine (Title screen, gameplay, 'paused', game over)
All of the features you're listing for your board game uses concepts that build off of these.