CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 6 of 6

Threaded View

  1. #1
    Join Date
    Feb 2009
    Location
    USA
    Posts
    68

    Using Global Arrays to keep stats on a game.

    Hi. I am making a craps game "simulator" and i have to keep statistics on win/lose and all kinds of other things. There is NO input at all the game only simulates 1000 games of craps and keeps stats on it. Including.

    1. How many games were won on the first roll? Second roll? etc.... after more than 20 rolls.

    2. How many games were lost on the first roll? "... ... "

    I have this method below that takes care of these two statistics and i was wondering if its an acceptable way to do this. The comments on the method should explain enough.


    I tried not to use Global Arrays but then I was passing the arrays through 2 functions just to keep them accessable. The approach itself is a little odd but it works fine and I believe it makes sense once you can understand how it is working. Ill provide my "gameplay" prototypes as well. Another note, I can not be using Classes or I would have. The chapter this is about arrays/vectors and thats what I should practice with this program.

    Code:
    /* GAMEPLAY FUNCTIONS */
    void play();
    void shootersPoint(int);
    int rollDice();
    bool firstRollWin(int);
    bool firstRollLose(int);
    
    
    // Below is the method.  NOTE: This method is ONLY called 
    //   when a player is determined to have won/lost. This is also 
    //   the only method that modifys the arrays.
    
    /*
     * updateStats will modify the Global Arrays "gamesWon[] and gamesLost[]"
     * These two arrays store how many games were won/lost and on what
     * roll they were won/lost.
     * EXAMPLE.
     *     Index 1 might hold 5. This would mean 5 games were won/lost on the 1st roll.
     *     Index 20 might hold 2. This would mean 2 games were won/lost on the 20th roll.
     *     Index 0 will hold games that were won/lost using more than 20 rolls.
     *
     * Perameters: int rolls, indicates how many rolls it took to finish the game.
     *             bool status, indicates a win or lose. true=win  false=lose.
     */
    void updateStats(int rolls, bool status)
    {
        /* Checking if it took more than 20 rolls to win/lose.
         * This is stored in Index 0.*/
        if(rolls > 20)
            rolls=0;
    
        /* If the Game was a win
         *  Increment the win array, with the winning roll # */
        if(status)
            gamesWon[rolls]++;
    
        /* If the Game was a lose
         *  Increment the lose array, with the loosing roll # */
        else
            gamesLost[rolls]++;
    }
    My instructor really has something against global arrays/variables and i understand why there could be an issue. But i cant seem to get around them for this program without, completly redesigning. The Gameplay works fine but introducing the "stat keeping" is a pain. Again my question was whether using this method is a good idea for keeping track of the two statistics posted at the top. Thanks
    Last edited by g.eckert; March 24th, 2009 at 01:09 PM.
    Google is your friend.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured