This program will be you first large project.
1. copy the project files from the Code.other/Bowling/ directory.
CC Students will find a resource on Laulima called "Bowling.tar.gz"
2. Test the DrawScoreSheet() function.
DrawScoresheet(1);
Test this new driver with different values like 1, 2, 3, and 4.
Make sure to check the makefile for compile hints. You need the -lncurses flag to compile this program.
Instructions:
- Maximum amount of players is 4, Minimum is 1
-program should not allow any other values
- All inputs (s, u, r, q, and 'esc') be followed by \n
- To skip a player's throw enter 's'
-program should print the correct next turn
-print s in the score section 1
- To undo the last ball score press 'u'
-program should print the correct next turn
- To reset the current scoresheet to blank press 'r'
-reset should use the same player number
- For a new game with new players press 'q'
- To exit the scoresheet press the 'esc' key
- User presses 'q' followed by enter, the program should quit and ask the user for a new number of players.
- User presses 7 followed by enter, the program should print 7 to the correct section on the screen
- User presses 's' followed by enter, the program should print 's' to the correct section on the screen
- User presses 1 followed by 0 followed by enter, the program will print 'X' or '/' depending on the situation to the correct section of the screen.
- User presses 'esc' followed by enter, the program will exit completely and return to the unix command line.
- User presses 'r' followed by enter, the program resets the existing board, clears all scores, and resets the game back to the beginning
- User presses 'u' followed by enter, the program will undo the last ball thrown. This could be a different player or even a different frame. The program will then ask for the input to replace the undone ball.
A makefile is given that is partially complete. It also may have some errors. The targets driver1 and driver2 are actually complete and working. You may have to add/adjust other targets as needed. The final overall program should be compiled using
make scoresheet
A sample driver is given to you. Replicate driver1 to practice using some of the display.h functions.
functions/macros you will be using from display.h include
A description of these functions is given to you in class. In addition, display.h is well commented.
Notes: Frame numbers go from 0 -9 instead of 1-10. Player numbers go from 0-3 instead of 1-4. This is all documented in the functions for display.h.
A sample driver is given to you. run the driver using only numbers up to 999. You will run into errors using larger numbers. This driver is to introduce you to the UpdateFrameScore() function. This function is also described in class as well as in display.h
Notes: Frame numbers go from 0 -9 instead of 1-10. Player numbers go from 0-3 instead of 1-4. This is all documented in the functions for display.h.
No Strikes or Spares
This program is basically a bowling program for keeping score for up to 4 players. It should loop through all the players and all the frames needed. There will be no strikes or spares in this program.
You should implement all the options for s, u, r, q, and 'esc' in this driver as well.
Implement Spares
Make a copy of driver3.c using the cp command and rename the copy driver4.c. Add in the features for spares.
Add in Strikes
There is a sample executable in the directory. I have provided you with the pictures below on how a program might operate with 1 player. Remember that this will also work with 2 players. Consider the instructions listed above and also in the instructions.txt file to understand what is happening.
This is the 3rd HW using the rating system. All of the same rules apply.
Including the Below as a disclaimer.
As with other HW, each member of the team should send me a confidential evaluation of the effort of each member of the team, INCLUDING YOURSELF in email using the ratings page . Include a description in your comments of what parts of the programs where done by each member of the team, including yourself, and an assessment of how teamwork was used to complete this assignment. This evaluation WILL be used to adjust the individual homework grades for hw3 only. Your evaluation is due at the same time as the assignment. LATE EVALUATIONS WILL BE PENALIZED. If you do not email your eval on time, your homework grades will be adjusted based on your teammates' inputs and your voice will not be heard. In addition, your individual score will receive a 10% penalty for not turning in the eval. Remember to check that it is the correct email to send evaluations to. (Check The Syllabus, Ratings go to a different email, This helps declutter my inbox from all the other emails I receive daily).
Adapt the submissions process you have been using for HW1, HW2, and HW3 to this assignment. A template is shown below and may not be a complete submission.
grade -44s#,ee160 *.c *.h
submit your driver1.c, driver2.c, driver3.c, driver4.c, scoresheet.c, and makefile.
You must schedule time for your group to present you program to the instructor. Here is the list of features for this assignment.
You can use this list to fill in the Project Review Sheet. Print out a copy of the sheet. Or make and print a sheet with the same format. Sheets must be printed. Fill in all the info required and bring the sheet with you to your scheduled review time.