F. Discussion

The games testing included a long process that took multiple weeks. After the game was considered playable, it went through multiple testing phases that resulted in different aspects of the game changing over time. These testing phases included an initial game test, followed by search for bugs, additional bug searches, and testing of the final product.

The initial stages of the game included a semi-playable outline for Connect 4. The program was able to display the board, take inputs, and place pieces down on the board. After testing determined the initial program was not able to pick up on diagonal wins, hard coded tests were used to check each diagonal win outcome.  A solution to this problem was determined, and functions were implemented to test certain outcomes for wins. This drastically decreased the length and increased the efficiency of the program. After these changes were made, the program could check all win possibilities. In the final stages of testing, the game was repeatedly played with the goal of finding bugs in the higher part of the Connect 4 board. In the late stages of this process, it was found that the line that displayed which player could place a piece was displaying the wrong player after a piece was played in an invalid spot. To combat this, a rule change was made to the game.

The main obstacle faced in the development was creating the checks for the diagonal wins. After the problem was found, hard coding each outcome was thought to be the best option. Despite working, this option resulted in a large amount of time spent hard coding. After some discussion, it was determined that incorporating functions would be the best option. This cut many lines out of the program and cleaned up the program.