Thread: Yahtzee C

  1. #1
    Registered User
    Join Date
    Feb 2011
    Posts
    33

    Yahtzee C

    I. Learner Objectives:

    At the conclusion of this programming assignment, participants should be able to:
    Apply repetition structures within an algorithm
    Construct while (), for (), or do-while () loops in C
    Compose C programs consisting of sequential, conditional, and iterative statements
    Eliminate redundancy within a program by applying loops and functions
    Create structure charts for a given problem
    Determine an appropriate functional decomposition or top-down design from a structure chart
    Generate random numbers for use within a C program
    Summarize strategy involved with the 2-player dice game Yahtzee

    II. Prerequisites:

    Before starting this programming assignment, participants should be able to:
    Analyze a basic set of requirements and apply top-down design principles for a problem
    Customize and define C functions
    Apply the 3 file format: 1 header file and 2 source files
    Open and close files
    Read, write to, and update files
    Manipulate file handles
    Apply standard library functions: fopen (), fclose (), fscanf (), and fprintf ()
    Compose decision statements ("if" conditional statements)
    Create and utilize compound conditions
    Summarize topics from Hanly & Koffman Chapter 4 & 5 including:
    What are counting, conditional, sentinel-controlled, flag-controlled, and end file-controlled loops
    What are while (), do-while (), and for () loops
    What is a selection or conditional statement
    What is a compound condition
    What is a Boolean expression
    What is a flowchart

    III. Overview & Requirements:

    Develop and implement an interactive two-player Yahtzee game. Yahtzee is a dice game that was invented by Milton Bradley and Edwin S. Lowe in 1956. The challenge of the game is to outduel the other player by scoring the most points. Points are obtained by rolling five 6-sided die across thirteen rounds. During each round, each player may roll the dice up to three times to make one of the possible scoring combinations. Once a combination has been achieved by the player, it may not be used again in future rounds, except for the Yahtzee combination may be used as many times as the player makes the combination. Each scoring combination has different point totals. Some of these totals are achieved through the accumulation of points across rolls and some are obtained as fixed sequences of values.

    The Rules of Yahtzee:

    The scorecard used for Yahtzee is composed of two sections. A upper section and a lower section. A total of thirteen boxes or thirteen scoring combinations are divided amongst the sections. The upper section consists of boxes that are scored by summing the value of the dice matching the faces of the box. If a player rolls four 3's, then the score placed in the 3's box is the sum of the dice which is 12. Once a player has chosen to score a box, it may not be changed and the combination is no longer in play for future rounds. If the sum of the scores in the upper section is greater than or equal to 63, then 35 more points are added to the players overall score as a bonus. The lower section contains a number of poker like combinations. See the table provided below:

    Name
    Combination
    Score
    Three-of-a-kind
    Three dice with the same face
    Sum of all face values on the 5 dice
    Four-of-a-kind
    Four dice with the same face
    Sum of all face values on the 5 dice
    Full house
    One pair and a three-of-a-kind
    25
    Small straight
    A sequence of four dice
    30
    Large straight
    A sequence of five dice
    40
    Yahtzee (think five-of-a-kind)
    Five dice with the same face
    50
    Chance
    May be used for any sequence of dice; this is the catch all combination
    Sum of all face values on the 5 dice

    What is required for this assignment?

    You may design the Yahtzee game with functions that you see fit. I recommend that you start with a structure chart and determine sub-problems and functions accordingly. However, your Yahtzee game must implement the following algorithm:

    (1) (5 pts) Print a game menu for Yahtzee with the following options:
    1. Print game rules
    2. Start a game of Yahtzee
    3. Exit
    (2) (5 pts) Get a menu option from the user; clear the screen
    (3) (10 pts) If option 1 is entered, then print the game rules stated above and repeat step (1)
    otherwise if option 2 is entered, then continue on to step (4); player 1 starts the game
    otherwise if option 3 is entered, then print a goodbye message and quit the program
    otherwise repeat step (1)
    (4) (5 pts) Ask the player to hit any key to continue on to roll the five dice
    (5) (10 pts) Roll the five dice and display the face values of each die; enumerate each die with
    a number 1 - 5; add 1 to the total number of rolls for this round
    (6) (10 pts) If the total number of rolls for this round is less than three,
    then ask the player (Y/N) if he/she wants to use the roll for one of the game combinations
    otherwise a combination must be selected
    1. Sum of 1's 7. Three-of-a-kind
    2. Sum of 2's 8. Four-of-a-kind
    3. Sum of 3's 9. Full house
    4. Sum of 4's 10. Small straight
    5. Sum of 5's 11. Large straight
    6. Sum of 6's 12. Yahtzee
    13. Chance
    (7) (10 pts) If the number of rolls is three or "yes" is entered, then save the combination and it may not be selected again in the future;
    continue on to step (8); clear the screen
    otherwise if "no" is entered, ask the user which dice to re-roll (1 - 5); re-roll the selected die or dice; clear the screen;
    repeat step (6)
    otherwise repeat step (6)
    (8) (5 pts) Alternate players
    (9) (10 pts) If each player has rolled for the round, then increment the round number
    if the round number is equal to 14, then continue on to step (10)
    otherwise repeat step (4)
    otherwise repeat step (4)
    (10) (5 pts) If the total score in the upper section is greater than or equal to 63 for a player, then add 35 points to the total score
    (11) (5 pts) Print the scores for both players and print the winner
    (12) (5 pts) Repeat step (1)

    IV. Expected Results:

    I recommend that you check out this website Yahtzee Online - Play Yahtzee to grasp the game play for Yahtzee. Of course the game you build is text based.

  2. #2
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Is there a question in there someplace?

  3. #3
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    Dude, don't feed the trolls.

    Soma

  4. #4
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Quote Originally Posted by phantomotap View Post
    Dude, don't feed the trolls.

    Soma
    #1 ... It was a reasonable question in the circumstances

    #2 ... Do NOT call me "Dude"... I absolutely hate that.

    #3 ... Do not even pretend to tell me what to do.

  5. #5
    Registered User
    Join Date
    Feb 2011
    Posts
    33
    i am confused on how to actually start writing the game yahtzee i got the main menu and all that stuff

  6. #6
    ATH0 quzah's Avatar
    Join Date
    Oct 2001
    Posts
    14,826
    Do you actually know how to play Yahtzee? Do you know how to make the computer roll some dice? Seems like both of those things would be a good starting point.


    Quzah.
    Hope is the first step on the road to disappointment.

  7. #7
    Registered User
    Join Date
    Dec 2007
    Posts
    2,675
    Spend more time studying and actually trying, and less time crossposting.

  8. #8
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Quote Originally Posted by lilbo4231 View Post
    i am confused on how to actually start writing the game yahtzee i got the main menu and all that stuff
    It would have been VERY helpful if you had told us that right up front...



    I don't care how good a programmer someone is...
    Nobody can program a solution to any problem they do not understand.

    1) Learn how to play the game, understand the rules, the dice roll, the scoring, win/lose etc.
    2) Sit down with a piece of paper and write out a step by step procedure on how 1 turn works.
    3) Add a step by step scoring procedure.
    4) Add the steps to know when the game is won.

    Now you have the basic flow of the program...

    A) Make a list of things your program needs ... functions, variables etc.
    B) Decide how to organize the basic elements... files, headers, order on pages etc.
    C) Create a skeleton... function prototypes, variable declarations etc.

    Now you just fill in the code and voila... you have your program.

    All that remains is to run the program and fix any bugs that may show up...

  9. #9
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    #1 ... It was a reasonable question in the circumstances

    #2 ... Do NOT call me "Dude"... I absolutely hate that.

    #3 ... Do not even pretend to tell me what to do.
    Dude, calm down. If you can't take the internet, get off the computer.

    Soma

  10. #10
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Quote Originally Posted by phantomotap View Post
    Dude, calm down. If you can't take the internet, get off the computer.
    Soma
    Welcome to my ignore list.
    Last edited by CommonTater; 02-25-2011 at 10:56 PM.

  11. #11
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,660
    Welcome to my closed thread list.
    Zero effort cross-posters deserve no less.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  12. #12
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,660
    Welcome to my closed thread list.
    Zero effort cross-posters deserve no less.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Yahtzee score selection
    By Kurdo in forum C Programming
    Replies: 1
    Last Post: 12-12-2010, 12:15 PM
  2. Yahtzee C++
    By egochan90 in forum C++ Programming
    Replies: 2
    Last Post: 11-23-2010, 12:19 PM
  3. Help with Yahtzee Program
    By infuser21 in forum C++ Programming
    Replies: 4
    Last Post: 03-19-2009, 02:14 PM
  4. Yahtzee C++ programme help
    By kenneth_888 in forum C++ Programming
    Replies: 13
    Last Post: 09-05-2007, 02:14 PM
  5. Yahtzee
    By CheesyMoo in forum Game Programming
    Replies: 3
    Last Post: 01-31-2003, 04:53 PM