CSSE 220 – Object-Oriented Software Development

Ball/Strike Counter and Linear Lights Out

Objectives

More practice with event-based programming in Swing. This has an Individual Part and a Pair Part.

Individual part

Ball/Strike Counter: This part is to be done individually. Implement the code in the ballStrikeCounter package. We gave you a simple GUI framework for a program that tracks balls and strikes for a baseball game. You need to add the buttons, ActionListeners, and variables necessary to make the code work. You may add any new classes or make any changes you feel necessary. The method for properly displaying the label has been provided for you in the updateLabel method.

  1. Points (20 points)

Pair part

Linear Lights Out. You may work with a single classmate of your choosing on this part. You may sit together while you work and discuss ideas and code freely, but each person must type and submit their code to their own repository. If you do this, please identify the classmate in a comment at the top of your program.

Implement the game Linear Lights Out in the linearLightsOut project. In Linear Lights Out, the user is presented with an array of buttons that are randomly initialized to either Xs or Os, 50% probability each. Clicking on a button changes the symbol of the button and both its left and right neighbors, if they exist. Buttons on the end just change their own symbol and their one neighbor’s symbol; the buttons don’t “wrap around”. The object of the game is to reach a state where the buttons all show the same symbol, whether Xs or Os, it doesn’t matter.

We’re providing a lot less “scaffolding” for this problem than most of the previous ones. Everything you need to solve the problem has either appeared in previous homework or examples, or is in the Java API documentation for JButton. Remember to ask for help if you get stuck.

Here are the various stages you should complete:

Hints:

  1. The setText() and getText() methods of JButton are your friends.
  2. You do not need to use inheritance to solve this problem; your BallWorlds project will give you practice with that.

Here’s a screen shot of the game in progress:

Remember, in all your code:

  1. Points - 10 points for each stage
  2. Total: 70 points

Total for both parts: 90 points

Turn-in Instructions

Turn in your programming work by committing it to your SVN repository.