[CoLoCo] dice rolls in C
Kevin Fries
kfries at cctus.com
Wed Feb 6 19:53:32 GMT 2008
As apposed the the 4 line Ruby program. Nice how Microsoft makes our
life "easier", ain't it.
On Wed, 2008-02-06 at 11:16 -0700, TJ Heaney wrote:
> I actually found one of my old C++ projects. Sucks that I was required
> by the instructor to use Visual Studio .NET.
>
> It was specifically for dice rolling.
>
> Source is as follows:
>
> /*****************************
> *Name: Tom Heaney *
> *Purpose: Dice Roller *
> *Lab 6 CS-115 CSA *
> *Using VS.net *
> *Die.h *
> *****************************/
> #include <cstdlib> // For the library rand() function
> using namespace std;
>
> class Die //class that represents a single die
> {
> public:
> Die(); // Initializes Face data member (REMEMBER: a valid die
> value is 1 to 6)
> void Roll(); // Sets Face equal to a randomly-generated number
> between 1 and 6
>
> int GetFace(); // returns the current value of Face
> private:
> int Face;
> };
>
> /*****************************
> *Name: Tom Heaney *
> *Purpose: Dice Roller *
> *Lab 6 CS-115 CSA *
> *Using VS.net *
> *DiceRoll.h *
> *****************************/
> #include "die.h"
>
> class DiceRoll //class that specifies a collection of 3 contained
> Die objects
> {
> public:
> void RollDice(); // Calls the Roll() member function on each
> contained Die
> int GetRollFaces(); // Returns the sum of the current Face
> values of Die1, Die2, & Die3
> private:
> Die Die1; // The three die contained in this class – i.e.,
> Die Die2; // objects of this class automatically
> contain
> Die Die3; // three dice!
> };
>
> /*****************************
> *Name: Tom Heaney *
> *Purpose: Dice Roller *
> *Lab 6 CS-115 CSA *
> *Using VS.net *
> *DiceRoll.cpp *
> *****************************/
> #include "DiceRoll.h"
>
> void DiceRoll::RollDice() //call function to roll dice 3 times
> {
> DiceRoll::Die1.Roll();
> DiceRoll::Die2.Roll();
> DiceRoll::Die3.Roll();
> }
> int DiceRoll::GetRollFaces()
> {
> return (DiceRoll::Die1.GetFace() + DiceRoll::Die2.GetFace() +
> DiceRoll::Die3.GetFace()); //gets total value
> }
>
> /*****************************
> *Name: Tom Heaney *
> *Purpose: Dice Roller *
> *Lab 6 CS-115 CSA *
> *Using VS.net *
> *Die.cpp *
> *****************************/
> #include "die.h"
> #include <cstdlib>
> Die::Die()
> {
> Roll();
> }
>
> void Die::Roll()
> {
> Die::Face = rand()%6; // Generate remainder between 0 and 5
> Die::Face++; // Scoot up remainder to 1 to 6
> }
> int Die::GetFace()
> {
> return Die::Face;
> }
>
> /*****************************
> *Name: Tom Heaney *
> *Purpose: Dice Roller *
> *Lab 6 CS-115 CSA *
> *Using VS.net *
> *main.cpp *
> *****************************/
> #include <iostream>
> #include "DiceRoll.h"
> #include <time.h> // using for counter
> using namespace std;
>
> void GatherStats(int RollsArray[ ], int RollsArraySize, int
> ResultsArray[ ]) // prototype
> {
> int iLoopCount = 0;
> while(iLoopCount < RollsArraySize)
> {
> ResultsArray[ RollsArray[iLoopCount] - 3 ]++;
> iLoopCount++;
> }
> }
>
> void DisplayResults(int ResultsArray[ ], int
> ResultsArraySize ) //prototype
> {
> int iLoopCount = 0;
> while(iLoopCount < ResultsArraySize)
> {
> cout << "The Dice rolled " << iLoopCount + 3 << " : " <<
> ResultsArray[iLoopCount] << " number of times." << endl;
> iLoopCount++;
> }
> }
> int main()
> {
> int RollsArray[200];
> int ResultsArray[16];
> int iLoopCount = 0;
> DiceRoll ThemBones; //call function to roll dice
> srand(time(0)); //add random
> memset(ResultsArray, 0, sizeof(ResultsArray)); // set bytes in
> memory
>
> while(iLoopCount < 200) //keeping the dice rolling
> {
> ThemBones.RollDice();
> RollsArray[iLoopCount] = ThemBones.GetRollFaces();
> iLoopCount++;
> }
> GatherStats(RollsArray, 200, ResultsArray);
> DisplayResults(ResultsArray, 16);
> return 0;
> }
>
--
Kevin Fries
Senior Linux Engineer
Computer and Communications Technology, Inc
A Division of Japan Communications Inc.
More information about the Ubuntu-us-co
mailing list