for my school project , i need a very simple game (can be textbased )
i need help pleasseeeeeee.........................:'(
sneha_venky 0 Unverified User
Bench 212 Posting Pro
How about something like Hangman or Noughts & Crosses?
Clinton Portis 211 Practically a Posting Shark
#include<windows.h>
#include<iostream>
#include<cctype>
#include<cstdlib>
#include<ctime>
using namespace std;
class Roulette
{
public:
Roulette();
void board_display();
void prompt();
void bet_menu();
void place_bet();
void set_bet(int choice);
void set_bet(int menu_choice, int number, int amount);
void set_chip(int);
void set_chip(int, int);
void spin_the_wheel();
void win_or_lose();
void reset();
bool quit();
void gotoxy(int x, int y);
bool win_straight_up(); //35:1 + bet back
bool win_column(); // 2:1 + bet back
bool win_low(); // 1:1 + bet back
bool win_high(); // 1:1 + bet back
bool win_even(); // 1:1
bool win_odd(); // 1:1
bool win_red(); // 1:1
bool win_black(); // 1:1
bool is_black(int);
void input_error();
void bet_error();
void domain_error();
void cap_error();
private:
bool is_bet,
is_quit;
int total,
available,
winnings,
winner,
bet_array_side[9],
bet_array_number[36],
zero_coords_x[2],
zero_coords_y[2],
side_coords_x[6],
side_coords_y[6],
num_coords_x[36],
num_coords_y[36],
col_coords_x[3],
col_coords_y[3];
};
int main()
{
Roulette myRoulette;
myRoulette.board_display();
do{
myRoulette.prompt();
}while(!myRoulette.quit());
return 0;
}
//////////////////////////////////////////////
///////////////////// Function Definitions //
////////////////////////////////////////////
Roulette::Roulette()
{
is_bet = FALSE;
is_quit = FALSE;
total = 2500;
available = 200;
winnings = 0;
srand((unsigned)time(NULL));
for(int i=0; i<9; i++)
bet_array_side[i] = 0;
for(int i=0; i<36; i++)
bet_array_number[i] = 0;
for(int i=0, x=8; i<2; i++, x+=15)
{
zero_coords_x[i] = x;
zero_coords_y[i] = 6;
}
for(int i=0, y=13; i<6; i++, y+=8)
{
side_coords_x[i] = 35;
side_coords_y[i] = y;
}
for(int i=0, x=5, y=10; i<36; i++, x+=10)
{
if(x>26)
{
x = 5;
y+= 4;
}
num_coords_x[i] = x;
num_coords_y[i] = y;
}
for(int i=0, x=8; i<3; i++, x+=10)
{
col_coords_x[i] = x;
col_coords_y[i] = 56;
}
}
void Roulette::board_display()
{
cout << " _____________________________ "
<< "\n| ___ | ___ ___ |"
<< "\n| | | | | | | | |"
<< "\n| | | | | | | | |"
<< "\n| |___| | |___| |___| |"
<< "\n| | |"
<< "\n|______________|______________|_________ "
<< "\n| | | | |"
<< "\n| 1 | 2 | 3 | *LOW* |"
<< "\n| | | | |"
<< "\n|_________|_________|_________| 1 - 18 |"
<< "\n| | | | | ________________"
<< "\n| 4 | 5 | 6 | | / The Wheel. \\"
<< "\n| | | | | / ______________ \\"
<< "\n|_________|_________|_________|_________| | | | |"
<< "\n| | | | | | | | |"
<< "\n| 7 | 8 | 9 | *EVEN* | | |______________| |"
<< "\n| | | | | | ______________ |"
<< "\n|_________|_________|_________| | | | | |"
<< "\n| | | | | | | | |"
<< "\n| 10 | 11 | 12 | | | |______________| |"
<< "\n| | | | | | |"
<< "\n|_________|_________|_________|_________| \\ Total $ /"
<< "\n| | | | | \\________________/"
<< "\n| 13 | 14 | 15 | *RED* |"
<< "\n| | | | |"
<< "\n|_________|_________|_________| |"
<< "\n| | | | |"
<< "\n| 16 | 17 | 18 | |"
<< "\n| | | | |"
<< "\n|_________|_________|_________|_________|"
<< "\n| | | | |"
<< "\n| 19 | 20 | 21 | *BLACK* |"
<< "\n| | | | |"
<< "\n|_________|_________|_________| |"
<< "\n| | | | |"
<< "\n| 22 | 23 | 24 | |"
<< "\n| | | | |"
<< "\n|_________|_________|_________|_________|"
<< "\n| | | | |"
<< "\n| 25 | 26 | 27 | *ODD* |"
<< "\n| | | | |"
<< "\n|_________|_________|_________| |"
<< "\n| | | | |"
<< "\n| 28 | 29 | 30 | |"
<< "\n| | | | |"
<< "\n|_________|_________|_________|_________|"
<< "\n| | | | |"
<< "\n| 31 | 32 | 33 | *HIGH* |"
<< "\n| | | | |"
<< "\n|_________|_________|_________| 19 - 36 |"
<< "\n| | | | |"
<< "\n| 34 | 35 | 36 | |"
<< "\n| | | | |"
<< "\n|_________|_________|_________|_________|"
<< "\n| 2:1 | 2:1 | 2:1 |"
<< "\n|_________|_________|_________|";
gotoxy(62,22); cout << total;
}
void Roulette::prompt()
{
int menu_choice=0;
gotoxy(50,35); cout << " Main Menu ";
gotoxy(50,36); cout << "--------------------- ";
gotoxy(50,38); cout << "1. Place Bet ";
gotoxy(50,39); cout << "2. Spin the wheel ";
gotoxy(50,40); cout << "3. Quit ";
gotoxy(50,41); cout << " ";
gotoxy(50,42); cout << " ";
gotoxy(50,43); cout << " ";
gotoxy(50,44); cout << " ";
gotoxy(50,45); cout << " ";
gotoxy(50,46); cout << " ";
gotoxy(50,47); cout << " ";
gotoxy(50,48); cout << " ";
gotoxy(50,49); cout << " ";
gotoxy(50,50); cout << " ";
gotoxy(50,51); cout << " ";
gotoxy(50,52); cout << " ";
gotoxy(50,53); cout << " ";
gotoxy(50,54); cout << " ";
gotoxy(50,55); cout << " ";
gotoxy(50,56); cout << " ";
gotoxy(50,42); cout << "Enter ye' choice: ";
cin >> menu_choice;
switch(menu_choice)
{
case 1: place_bet(); break;
case 2: is_bet?spin_the_wheel():bet_error(); break;
case 3: is_quit=TRUE; break;
default: input_error(); break;
}
}
void Roulette::place_bet()
{
int menu_choice=0,
number=0,
bet_amt=0;
gotoxy(54,26); cout << " ";
gotoxy(62,10); cout << " ";
gotoxy(50,39); cout << "1. Double Zero ";
gotoxy(50,35); cout << " Bet Menu ";
gotoxy(50,36); cout << "---------------------";
gotoxy(50,38); cout << "0. Zero ";
gotoxy(50,40); cout << "2. Straight-up ";
gotoxy(50,41); cout << "3. Left Column ";
gotoxy(50,42); cout << "4. Middle Column ";
gotoxy(50,43); cout << "5. Right Column ";
gotoxy(50,44); cout << "6. Low Numbers ";
gotoxy(50,45); cout << "7. High Numbers ";
gotoxy(50,46); cout << "8. Evens ";
gotoxy(50,47); cout << "9. Odds ";
gotoxy(50,48); cout << "10. Red ";
gotoxy(50,49); cout << "11. Black ";
gotoxy(50,51); cout << "Enter ye' choice: ";
cin >> menu_choice;
if(menu_choice < 0 || menu_choice > 11)
domain_error();
if(menu_choice == 2)
set_bet(menu_choice, number, bet_amt);
else
set_bet(menu_choice);
}
void Roulette::set_bet(int choice)
{
int bet_amt=0;
cin.ignore();
gotoxy(50,53); cout << "$200 Limit Per Turn";
gotoxy(50,54); cout << '$' << available << " available to bet.";
gotoxy(50,56); cout << "Enter Amount: ";
gotoxy(64,56); cin >> bet_amt;
if(bet_amt > available)
cap_error();
total -= bet_amt;
available -= bet_amt;
bet_array_side[choice-3] = bet_amt;
gotoxy(62,22); cout << " ";
gotoxy(62,22); cout << total;
is_bet = TRUE;
set_chip(choice);
}
void Roulette::set_bet(int choice, int number, int bet_amt)
{
gotoxy(50,51); cout << "Enter a number 1-36: ";
cin >> number;
if(number < 1 || number > 36) //straight up
domain_error();
cin.ignore();
gotoxy(50,53); cout << "$200 Limit Per Turn";
gotoxy(50,54); cout << '$' << available << " available to bet.";
gotoxy(50,56); cout << "Enter Amount: ";
gotoxy(64,56); cin >> bet_amt;
if(bet_amt > available)
cap_error();
total -= bet_amt;
available -= bet_amt;
bet_array_number[number-1] = bet_amt;
gotoxy(62,22); cout << " ";
gotoxy(62,22); cout << total;
is_bet = TRUE;
set_chip(choice, number);
}
void Roulette::set_chip(int pos)
{
char chip = 1;
switch(pos)
{
case 0: gotoxy(zero_coords_x[0], zero_coords_y[0]); cout << chip;
break;
case 1: gotoxy(zero_coords_x[1], zero_coords_y[1]); cout << chip;
break;
case 3: gotoxy(col_coords_x[0], col_coords_y[0]); cout << chip;
break;
case 4: gotoxy(col_coords_x[1], col_coords_y[1]); cout << chip;
break;
case 5: gotoxy(col_coords_x[2], col_coords_y[2]); cout << chip;
break;
case 6: gotoxy(side_coords_x[0], side_coords_y[0]); cout << chip;
break;
case 7: gotoxy(side_coords_x[5], side_coords_y[5]); cout << chip;
break;
case 8: gotoxy(side_coords_x[1], side_coords_y[1]); cout << chip;
break;
case 9: gotoxy(side_coords_x[4], side_coords_y[4]); cout << chip;
break;
case 10: gotoxy(side_coords_x[2], side_coords_y[2]); cout << chip;
break;
case 11: gotoxy(side_coords_x[3], side_coords_y[3]); cout << chip;
break;
}
prompt();
}
void Roulette::set_chip(int pos, int number)
{
char chip = 1;
gotoxy(num_coords_x[number-1], num_coords_y[number-1]);
cout << chip;
prompt();
}
void Roulette::spin_the_wheel()
{
int turn=0;
int snooze=75;
int target=0;
gotoxy(56,15); cout << " ZERO ";
gotoxy(60,19); cout << "0 ";
Sleep(snooze);
gotoxy(56,15); cout << "DOUBLE ZERO";
gotoxy(60,19); cout << "00";
Sleep(snooze);
for(int i=1; i<37; i++)
{
if(is_black(i))
{
gotoxy(56,15); cout << " BLACK ";
gotoxy(60,19); cout << " ";
gotoxy(60,19); cout << i;
}
else
{
gotoxy(56,15); cout << " RED ";
gotoxy(60,19); cout << " ";
gotoxy(60,19); cout << i;
}
Sleep(snooze);
}
//Random Number
target = rand()%38+1;
if(is_black(target))
{
gotoxy(56,15); cout << " BLACK ";
gotoxy(60,19); cout << " ";
gotoxy(60,19); cout << target;
}
else
{
gotoxy(56,15); cout << " RED ";
gotoxy(60,19); cout << " ";
gotoxy(60,19); cout << target;
}
if(target == 37)
{
gotoxy(56,15); cout << " ZERO ";
gotoxy(60,19); cout << "0 ";
}
else if(target == 38)
{
gotoxy(56,15); cout << "DOUBLE ZERO";
gotoxy(60,19); cout << "00";
}
winner = target;
win_or_lose();
}
void Roulette::win_or_lose()
{
int snooze = 2000;
if(is_quit)
return;
win_straight_up(); //35:1 + bet back
win_column(); // 2:1 + bet back
win_low(); // 1:1 + bet back
win_high(); // 1:1 + bet back
win_even(); // 1:1
win_odd(); // 1:1
win_red(); // 1:1
win_black();
if(winnings)
{
gotoxy(54,26); cout << " ";
gotoxy(54,26); cout << "You WIN: $" << winnings;
}
else
{
gotoxy(54,26); cout << " ";
gotoxy(56,26); cout << "No Wins.";
}
total += winnings;
gotoxy(62,22); cout << " ";
gotoxy(62,22); cout << total;
Sleep(snooze);
reset();
}
bool Roulette::win_straight_up()
{
if(!bet_array_number[winner-1])
return FALSE;
else
{
winnings += bet_array_number[winner-1] * 35 + bet_array_number[winner-1];
return TRUE;
}
}
bool Roulette::win_column()
{
if(!bet_array_side[0] && !bet_array_side[1] && !bet_array_side[2])
return FALSE;
for(int i=0, j=1; i<3; i++, j++)
{
if(bet_array_side[i])
{
for(int k=j; k<37; k+=3)
{
if(winner == k)
{
winnings += bet_array_side[i] * 2 + bet_array_side[i];
return TRUE;
}
}
}
}
return FALSE;
}
bool Roulette::win_low()
{
if(!bet_array_side[3])
return FALSE;
else if(winner > 0 && winner < 19)
{
winnings += bet_array_side[3] + bet_array_side[3];
return TRUE;
}
else
return FALSE;
}
bool Roulette::win_high()
{
if(!bet_array_side[4])
return FALSE;
else if(winner > 18)
{
winnings += bet_array_side[4] + bet_array_side[4];
return TRUE;
}
else
return FALSE;
}
bool Roulette::win_even()
{
if(!bet_array_side[5])
return FALSE;
else if(winner%2+1)
{
winnings += bet_array_side[5];
return TRUE;
}
else
return FALSE;
}
bool Roulette::win_odd()
{
if(!bet_array_side[6])
return FALSE;
else if(winner%2)
{
winnings += bet_array_side[6];
return TRUE;
}
else
return FALSE;
}
bool Roulette::win_red()
{
if(!bet_array_side[7])
return FALSE;
else if(!is_black(winner))
{
winnings += bet_array_side[7];
return TRUE;
}
else
return FALSE;
}
bool Roulette::win_black()
{
if(!bet_array_side[8])
return FALSE;
else if(is_black(winner))
{
winnings += bet_array_side[8];
return TRUE;
}
else
return FALSE;
}
bool Roulette::is_black(int number)
{
if(number<11 && !(number%2) || number>10 && number<18 && number%2 ||
number>19 && number<29 && !(number%2) || number>28 && number<36 && number%2)
return true;
else
return false;
}
void Roulette::reset()
{
winnings = 0;
available = 200;
is_bet = FALSE;
for(int i=0; i<9; i++)
bet_array_side[i] = 0;
for(int i=0; i<36; i++)
bet_array_number[i] = 0;
for(int i=0; i<2; i++)
{
gotoxy(zero_coords_x[i], zero_coords_y[i]); cout << '_';
}
for(int i=0; i<6; i++)
{
gotoxy(side_coords_x[i], side_coords_y[i]); cout << ' ';
}
for(int i=0; i<36; i++)
{
gotoxy(num_coords_x[i], num_coords_y[i]); cout << '_';
}
for(int i=0; i<3; i++)
{
gotoxy(col_coords_x[i], col_coords_y[i]); cout << '_';
}
gotoxy(54,26); cout << " ";
}
bool Roulette::quit()
{
return is_quit;
}
void Roulette::gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void Roulette::input_error()
{
gotoxy(50,44); cout << "\aInvalid Entry! ";
Sleep(1500);
prompt();
}
void Roulette::cap_error()
{
gotoxy(50,56); cout << "\aBet amount exceeds $200 limit! ";
Sleep(1500);
gotoxy(50,51); cout << " ";
gotoxy(50,53); cout << " ";
gotoxy(50,54); cout << " ";
gotoxy(50,56); cout << " ";
place_bet();
}
void Roulette::domain_error()
{
gotoxy(50,53); cout << "\aEntry does not fall within specified range. ";
Sleep(1500);
gotoxy(50,51); cout << " ";
gotoxy(50,53); cout << " ";
place_bet();
}
void Roulette::bet_error()
{
gotoxy(50,44); cout << "\aYou must place a bet before spinning the wheel! ";
Sleep(1500);
gotoxy(50,44); cout << " ";
prompt();
}
Bench commented: You aren't helping anyone by giving out complete homework solutions -1
WaltP 2,905 Posting Sage w/ dash of thyme Team Colleague
So Clinton, what was the purpose of your post? How does it help sneha_venky with figuring out a project to program?
zandiago 115 Nearly a Posting Maven Featured Poster
oookk then....what a long code....i won't even bother to compile the program...whats this game suppose to be? sneha_venky...try somrthing simple to start out with...how about writing a c++ game that asks the user to guess a number between 1 and a 100. If you guessed correctly, it will say you win. If your too high or too low it will also let you know. i've done this program before, so i can help you with it. If you try your best, we'll help you along. Additionally, the code above has several syntax errors. Have a good day.
ithelp 757 Posting Virtuoso Banned
Download minimine from sourceforge.net , hope you do not get caught for submitting it as your project assignment .
sneha_venky 0 Unverified User
to zandiago . . . thanks ....... but i seriously think that too simple for words ......
not that i need a difficult one ........ i have done hangman & cows and bulls ......... i need something like that ............. thanks for helping anyway !!! :)
zandiago 115 Nearly a Posting Maven Featured Poster
Your welcome. Sorry i couldn't help any further, Another cool game is deal or no deal, you could try that or tic tac toe. Also visit: http://www.cplusplus.com/articles/Sacha1.html
vijayan121 1,152 Posting Virtuoso
here is a very old game, which requires only text input or output, is simple, and is interesting to program. http://en.wikipedia.org/wiki/Nim
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.