Hi to everyone here! I'm a newbie! I just wanna ask help from you especially from the administrator regarding my machine problem.....

I am asked by my proffesor to create a slot machine program.
This is how it goes...

The simulation starts by presenting the player with a menu of how much money to play for the round. The user has 3 options as shown in this sample run.

Welcome to the House of Fun!
Here, everyone is a winner!

You've spent \$0 and won \$0
How much are you going to play?
\$ 10 for regular prize
\$ 20 for increased prize value
\$ 0 to quit
==> 65
Invalid! Enter again please...

How much are you going to play?
\$ 10 for regular prize
\$ 20 for increased prize value
\$ 0 to quit
==> 10

Notice that the program checks whether the player entered correct values or not. If an incorrect value is entered, the program prompts the player to enter again.

If the player enters 10 or 20, the program will randomly generate 3 symbols. The symbols that can be generated are: APPLES, ARCHER, HEARTS, SMILES, or STARS!. However, the 5 symbols mentioned do not appear uniformly. The table that follows summarizes the statistics:

Symbol Chances of Appearing
STARS! appear 10 % of the time
SMILES appear 30 % of the time
HEARTS appear 30 % of the time
ARCHER appear 30 % of the time
APPLES appear 60 % of the time

The player wins money if the 3 generated symbols result to a lucky combination. If a lucky combination is generated, the prize in the 1st Credit is awarded. If the same lucky combination is obtained for the next round, then the 2nd Credit Prize is awarded.

Lucky Combinations

1st Combination
STARS!-STARS!-STARS!
1st Credit: \$500
2nd Credit: \$1000

2nd Combination
SMILES-SMILES-SMILES
1st Credit: \$250
2nd Credit: \$500

3rd Combination
HEARTS-HEARTS-HEARTS
1st Credit: \$150
2nd Credit: \$300

4th Combination
ARCHER-ARCHER-ARCHER
1st Credit: \$100
2nd Credit: \$200

5th Combination
any combination of a pair of any symbols except for APPLES
1st Credit: \$20
2nd Credit: \$40

6th Combination
a combination of SMILES, HEARTS and ARCHER
Credit: Especial Event if bet is \$10
Credit: Especial Event 2 if bet is \$20

The values above only hold if the user plays for \$20. If the user played for only \$10, a regular prize of \$50 is given for the 1st to 4th combinations, and \$10 for the 5th prize. Note that there are no 1st and 2nd credits for \$10 games.

The 6th lucky combination gives the player access to a special event. This happens regardless of the user's game mode choice. There are two special events. If the user entered \$10 the credit will be the special event 1 and if the user entered \$20 the credit will be the special event 2( Actually my teacher said that I have the option to design whatever special the user will encounter.... since I know how to program ROCK-PAPER_SCISSORS Game and HANG-MAN GAME.... I chose them for my SPECIAL EVENT 1 & 2). If the user wins the special event 1, an award of \$150 will be given to the player. If the user wins the especial event 2, an award of \$300 will be given.

All unlucky combinations offer \$0.

The program should continue to execute until the user chooses to quit (by entering 0).

SAMPLE RUN
Welcome to the House of Fun!
Here, everyone is a winner!

You've spent \$0 and won \$0
How much are you going to play?
\$ 10 for regular prize
\$ 20 for increased prize value
\$ 0 to quit
==> 10

+--------+--------+--------+
| ARCHER | ARCHER | ARCHER |
+--------+--------+--------+
Congratulations! You get \$50.

You've spent \$10 and won \$50
How much are you going to play?
\$ 10 for regular prize
\$ 20 for increased prize value
\$ 0 to quit
==> 20

+--------+--------+--------+
| STARS! | APPLES | APPLES |
+--------+--------+--------+
Sorry, You get \$0.

You've spent \$30 and won \$50
How much are you going to play?
\$ 10 for regular prize
\$ 20 for increased prize value
\$ 0 to quit
==> 20

+--------+--------+--------+
| SMILES | HEARTS | SMILES |
+--------+--------+--------+
Congratulations! You get P20.

You've spent \$50 and won \$70
How much are you going to play?
\$ 10 for regular prize
\$ 20 for increased prize value
\$ 0 to quit
==> 0

You spent a total of \$50 and won \$70
Thank You for Playing!

I already know the codes on the first part of the program. I have already tested ran and debugged the first part wherein the menu is displayed.
I mean this part....
Welcome to the House of Fun!
Here, everyone is a winner!

You've spent \$0 and won \$0
How much are you going to play?
\$ 10 for regular prize
\$ 20 for increased prize value
\$ 0 to quit
==> 65
Invalid! Enter again please...

How much are you going to play?
\$ 10 for regular prize
\$ 20 for increased prize value
\$ 0 to quit
==> 10

Now my problem is on the part of randomizing the symbols to be displayed....
I tried one of this codes....

``````#include <stdio.h>
#include <stdlib.h> /* where random and srand are defined */
#include <time.h> /* where time functions are defined */

/*this function sets randomiztion seed value based on time*/
void initRandom()
{ time_t random_seed;

random_seed=time(NULL);
srand(random_seed);
}

/*this function generates a pseudorandom number between 1 to 5*/
int getRandomNum (int nLow, int nHigh)
{
int nRandomValue = nLow + rand() % (nHigh - nLow + 1);
return nRandomValue;
}
main()
{
int nValue1, nValue2, nValue3;
initRandom();
nValue1 = getRandomNum(1,5);
nValue2 = getRandomNum(1,5);
nValue3 = getRandomNum(1,5);

switch (nValue1)
{
case 1:
printf("STARS! ");
break;
case 2:
printf("SMILES ");
break;
case 3:
printf("HEARTS ");
break;
case 4:
printf("ARCHERS ");
break;
case 5:
printf("APPLES ");
break;
}
switch (nValue2)
{
case 1:
printf("STARS! ");
break;
case 2:
printf("SMILES ");
break;
case 3:
printf("HEARTS ");
break;
case 4:
printf("ARCHERS ");
break;
case 5:
printf("APPLES ");
break;
}
switch (nValue3)
{
case 1:
printf("STARS! ");
break;
case 2:
printf("SMILES ");
break;
case 3:
printf("HEARTS ");
break;
case 4:
printf("ARCHERS ");
break;
case 5:
printf("APPLES ");
break;
}
}``````

Fortunately this code worked! But my problem is: "How am I going to edit the appearances of each symbol?" Like making the symbol "STARS!" appear 10% of the time and "APPLES" appear 60% of the time... is my function: "getRandomNum()" wrong? Am I going to change it?.... or what...
plss help me..... regarding this matter... I would really appreaciate if you could help me.... Thanks a lot!

P.S.
You could also send me the source code for my slot machine program.... If you think you know the shortest/ briefest way to code it..... then you could send it to me.... if you like :cheesy: .... I Would really really apreciate it! THANKS! :lol:

## All 9 Replies

easy, give stars a larger numeric range. since apples are hard to get, make them 0 -9, then alot 10-69 for apples. and allow the other in the 30% remaining. any number randomly generated has a greater chance of falling in the larger block then the smaller one. therefor, you have just increased there chances of "getting" that number.

I don't do homework or write code for people, sorry. However; I am willing to aid in any problem you are trying to solve (as long as some genuine effort is put forth). I feal the best way for someone to learn is for them to complete the project on their own merit. (THINK FOR YOUSELF) If they dont wish to learn or do the work they should not have accepted the project or taken the course!

Well first off 60+30+30+30+10 does not equal 100 so its kind of hard to say that SMILES HEARTS AND ARCHERS happen 30% of the time.

Group them into the 30% and then pick one out of the 3.

This will help with the distibution with APPLES appearing most and STARS appearing least, but 1/3 (rounding) of the time you pick from 3 with equal probability of any of them.

So really a random number between 0 and 9, 0-5 = APPLE, 6-8 pick a SMILE HEART or ARCHER, 9=STAR. This really makes the statistic for SMILE HEART or APPLE 10% but there is no way to make it fit the distribution any other way.

Ask the prof if this is correct before continuing. If he/she says 'What do you think?' and it is a programming course, proceed. If it is a simulations course, ask more questions.

So one function that picks the symbols is the best approach.

nIndex1 = getRandomNum(1,100);
nValue1 = nVect(nIndex1)
nIndex2 = getRandomNum(1,100);
nValue2 = nVect(nIndex2)
nIndex3 = getRandomNum(1,100);
nValue3 = nVect(nIndex3)
Populate nVect with candidate nValues in the appropriate proportions.
Example provides 1% granularity
William Geiger
--email snipped--

commented: Wayyyyyyyy toooooooo laaaaaaateeeeeee to be of any use at all. -4

Quick question , how are you making stars, archers, hearts appear on the screen ?

Brief fix! For something posted 6 years ago? Not brief enough...

Timing Issue
It should be obvious to all, that I overlooked the date of the original post. Brevity has nothing to do with this bogus issue.
Text Select
From nValue1, nValue2 & nValue3, calc pointers to the appropriate strings for printing.

Guys,

Thanks so much for your replies.
It's been six years since I made this newbie post. :)) I'm a bit surprised that someone else is still replying to this. Makes me happy, though.

In those six years, I have learned a lot in programming, from creating simple tools, school machine projects, to doing complex and real-world applications, server side programing, web development, and a lot more.

I am currently working now in an international IT company. I'm very proud and thankful to you guys. You've been a part of my successful career. And also thanks to Daniweb forums!

This SLOT Machine Program is my first big step into the IT world. =D.

Guys,

Thanks so much for your replies.
It's been six years since I made this newbie post. :)) I'm a bit surprised that someone else is still replying to this. Makes me happy, though.

Doesn't make us happy.

Rhetorical question: With the help of abhimanipal and whgeiger, can you now finish your program? That should give you an idea why we're more annoyed. :icon_wink:

Doesn't make us happy.

Rhetorical question: With the help of abhimanipal and whgeiger, can you now finish your program? That should give you an idea why we're more annoyed. :icon_wink:

Some of us do not care if you are unhappy or annoyed by our posts, as we did not address them to you nor did we solicit your negative and unwelcome comments. If you do not like a particular post, particularly the ones not addressed to you, just move on to greener pastures where you feel predisposed to make a positive contribution.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.