Summary: The goal of this digital board game is to get your four pawns from "Start" into "Home." To get from "Start" to "Home," your pawn must traverse the safety zone, which consists of the five squares preceding "Home." Each player has their own "Start," "Home," and "Safety Zone" that only their pawns may be.
Cards: You accomplish this game's goal by drawing cards randomly from a 45-card deck. There are five 1's and four of each other card. The cards and their associated rules are as follows.
1 - Move an active pawn (i.e., a pawn not in "Start" or "Home") by 1, or remove a pawn from "Start."
2 - Move an active pawn by 2, or remove a pawn from "Start." Draw again.
3 - Move an active pawn by 3.
4 - Move an active pawn by -4.
5 - Move an active pawn by 5.
7 - Move an active pawn by 7, or split this move between two pawns.
8 - Move an active pawn by 8.
10 - Move an active pawn by 10 or -1.
11 - Move an active pawn by 11, or swap an unsafe active pawn (i.e., an active pawn that isn't in the safety zone) with another player's unsafe active pawn.
12 - Move an active pawn by 12.
Oops! - Swap a pawn in "Start" with another player's unsafe active pawn. The other player's pawn returns to that player's "Start."
Additional Rule: If you can execute a card, you are not allowed to forfeit your turn. The single exception to this rule occurs if you draw 11 and cannot move an active pawn 11 but can swap an unsafe active pawn, in which case you may forfeit your turn.
Additional Rule: If you land on the beginning of a slider that is not your own color, you must slide to the end. Beware: Each pawn on that slider gets bumped back to its player's "Start."
Additional Rule: Other than "Start" and "Home," none of your pawns may share a space with another pawn. If you land on a square already occupied by a pawn of a different color, that pawn gets bumped to its player's "Start."
Running this Program: To run this program (and thus play Oops!), fork and clone this repository, then execute start.py.