Software Construction Assignment 9: GUI

Due: May 29, 2018 @ 10pm. Please include a README.txt that has both partners' names and email addresses.

Design and implement a player that takes input from a GUI (a.k.a., a Human player). Before you start coding, mock up a picture of how the interface works (include stories that describe how people will manipulate the GUI). Don't assume that there is only one Human player per game (but one per window is a fine assumption).

You must not change the IPlayer interface to implement the GUI. Just like the networked player, you should be able to plug in a human player without modifying the other parts of the game infrastructure.

This is the most open-ended assignment this quarter and also the least essential. If you are not comfortable with the state of your implementation of other parts of your Tsuro code, work on those instead of making a GUI. In other words, well-structured, clear code that does less is worth more than unreadable code that kind of works and part of this assignment is making a judgment about your own codebase.

Feel free to use visualize's ability to create PNG files and put them into your GUI.

As a test of whether or not you should work on the GUI, consider your play-a-turn function. Can you run many games with test-play-a-turn without uncovering errors? If so, work on the GUI. If not, improve your Tsuro implementation. Similarly, can your players play in the tournament without cheating or failing somehow? If not, work on them.

If you are picked for a codewalk and you did implement a GUI, expect to start with a (short) demo of your GUI player. If not, expect to start with a clear analysis of the shortcomings in your code that you chose to fix.



Software Construction