Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // Deal or No Deal
- //
- // Created by Hunter Robinson on 12/2/15.
- // Copyright © 2015 Hunter Robinson. All rights reserved.
- //
- #include <iostream>
- #include <vector>
- using namespace std;
- class person{
- private:
- string name;
- float money;
- int case_number;
- public:
- string get_name(){
- return name;
- }
- float get_money(){
- return money;
- }
- int get_casenumber(){
- return case_number;
- }
- void set_casenumber(int case_numbers){
- case_number=case_numbers;
- }
- person(string sname, float moneys, int case_numbers):name(sname),money(moneys),case_number(case_numbers){}
- };
- bool money_used_false(bool money_used[]){
- for (int i=0; i<26; i++) {
- if (money_used[i]==false) {
- return false;
- }
- }
- return true;
- }
- void errorcheck(int pick,bool money_used[]){
- cin>>pick;
- while (!cin.good() || (pick)<1 || (pick)>27 || money_used[pick-1]==false) {
- cin.clear();
- cin.sync();
- fpurge(stdin);
- cout<<"Incorrect input. Please enter a correct value.\n";
- cin>>pick;
- pick--;
- }
- money_used[pick-1]=false;
- }
- void case_print(bool money_used[],person player){
- cout<<"_";
- for (int i=0; i<26; i++) {
- if (money_used[i]==true) {
- cout<<"_"<<i+1<<"_";
- }
- else cout<<"___";
- }
- cout<<"_\n";
- float moneys[26]={0.1,1,5,10,25,50,75,100,200,300,400,500,750,1000,5000,10000,25000,50000,75000,100000,200000,300000,400000,500000,750000,1000000};
- for (int i=0; i<13; i++) {
- if (money_used[i]==true || moneys[i]==player.get_casenumber()) {
- cout<<moneys[i]<<"\t";
- }
- else cout<<"Used\t";
- if (money_used[i+13]==true || moneys[i]==player.get_casenumber()) {
- cout<<moneys[i+13]<<"\n";
- }
- else cout<<"Used\n";
- }
- }
- int banker(bool money_used[], float case_remaining, int cases_left, int pick, bool isRunning, person player, float case_money[]){
- for (int i=0; i<26; i++) {
- if (money_used[i]==false) {
- case_remaining+=case_money[i];
- cases_left++;
- }
- }
- case_remaining=case_remaining/cases_left;
- cout<<"The bankers offer is "<<case_remaining<<"\nDo you wish to take the offer? 1 for yes. 2 for no.";
- cin>>pick;
- while (!cin.good() || pick<0 || pick>2) {
- cin.clear();
- cin.sync();
- fpurge(stdin);
- cout<<"Incorrect input. Please enter a correct value.\n";
- cin>>pick;
- }
- if (pick==1) {
- cout<<"You have chosen to take the bankers offer of "<<case_remaining<<"\n";
- cout<<"You had "<<player.get_money()<<" in your case number "<<player.get_casenumber()+1<<".\n";
- if (player.get_money()<case_remaining) {
- cout<<"You beat the banker! Congrats!\n";
- return 0;
- }
- else if (player.get_money()>case_remaining){
- cout<<"You had more money in your case. Bad choice.\n";
- return 0;
- }
- }
- return 1;
- }
- void randomize(bool money_used[], float case_money[]){
- for (int i=0; money_used_false(money_used)==false;) {
- int ran=0;
- ran = rand()%26;
- if (money_used[ran]==true) {
- continue;
- }
- switch (ran) {
- case 0:
- case_money[i]=0.1;
- i++;
- money_used[ran]=true;
- break;
- case 1:
- case_money[i]=1;
- i++;
- money_used[ran]=true;
- break;
- case 2:
- case_money[i]=5;
- i++;
- money_used[ran]=true;
- break;
- case 3:
- case_money[i]=10;
- i++;
- money_used[ran]=true;
- break;
- case 4:
- case_money[i]=25;
- i++;
- money_used[ran]=true;
- break;
- case 5:
- case_money[i]=50;
- i++;
- money_used[ran]=true;
- break;
- case 6:
- case_money[i]=75;
- i++;
- money_used[ran]=true;
- break;
- case 7:
- case_money[i]=100;
- i++;
- money_used[ran]=true;
- break;
- case 8:
- case_money[i]=200;
- i++;
- money_used[ran]=true;
- break;
- case 9:
- case_money[i]=300;
- i++;
- money_used[ran]=true;
- break;
- case 10:
- case_money[i]=400;
- i++;
- money_used[ran]=true;
- break;
- case 11:
- case_money[i]=500;
- i++;
- money_used[ran]=true;
- break;
- case 12:
- case_money[i]=750;
- i++;
- money_used[ran]=true;
- break;
- case 13:
- case_money[i]=1000;
- i++;
- money_used[ran]=true;
- break;
- case 14:
- case_money[i]=5000;
- i++;
- money_used[ran]=true;
- break;
- case 15:
- case_money[i]=10000;
- i++;
- money_used[ran]=true;
- break;
- case 16:
- case_money[i]=25000;
- i++;
- money_used[ran]=true;
- break;
- case 17:
- case_money[i]=50000;
- i++;
- money_used[ran]=true;
- break;
- case 18:
- case_money[i]=75000;
- i++;
- money_used[ran]=true;
- break;
- case 19:
- case_money[i]=100000;
- i++;
- money_used[ran]=true;
- break;
- case 20:
- case_money[i]=200000;
- i++;
- money_used[ran]=true;
- break;
- case 21:
- case_money[i]=300000;
- i++;
- money_used[ran]=true;
- break;
- case 22:
- case_money[i]=400000;
- i++;
- money_used[ran]=true;
- break;
- case 23:
- case_money[i]=500000;
- i++;
- money_used[ran]=true;
- break;
- case 24:
- case_money[i]=750000;
- i++;
- money_used[ran]=true;
- break;
- case 25:
- case_money[i]=1000000;
- i++;
- money_used[ran]=true;
- break;
- }
- if (i>26) {
- i=0;
- }
- }
- }
- int main() {
- srand(time(0));
- bool isRunning = true;
- float case_money[26]={0};
- int pick;
- string sname;
- bool money_used[26]={false};
- float case_remaining=0;
- int cases_left = 0;
- while (isRunning==true) {
- randomize(money_used,case_money);
- fpurge(stdin);
- cout<<"Welcome to Deal or No Deal!\n";
- cout<<"Please enter your name.\n";
- getline(cin, sname);
- fpurge(stdin);
- cout<<"Welcome "<<sname<<"!\n";
- cout<<"_";
- for (int i=1; i<27; i++) {
- cout<<"_"<<i<<"_";
- }
- cout<<"\nPlease pick a case to begin.\n";
- errorcheck(pick, money_used);
- person bob = *new person(sname,case_money[pick],pick);
- person player(sname,case_money[pick] , pick);
- sname.clear();
- cout<<"For the first round you will be picking 6 of the remaining cases.\n";
- case_print(money_used,player);
- for (int i=0; i<6; i++) {
- errorcheck(pick, money_used);
- }
- fpurge(stdin);
- int x = banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"Lets continue. For this round you will be picking 5 of the remaining cases.\n";
- case_print(money_used,player);
- for (int i=0; i<5; i++) {
- errorcheck(pick, money_used);
- }
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"For the next round you will be picking 4 of the remaining cases.\n";
- case_print(money_used,player);
- for (int i=0; i<4; i++) {
- errorcheck(pick, money_used);
- }
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"This round you will pick 3 of the remaining cases.\n";
- case_print(money_used,player);
- for (int i=0; i<3; i++) {
- errorcheck(pick, money_used);
- }
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"For round 5 you will pick 2 of the remaining cases.\n";
- case_print(money_used,player);
- for (int i=0; i<2; i++) {
- errorcheck(pick, money_used);
- }
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"For this round you will pick 1 of the remaining cases. From here on out you will only be picking 1 case.\n";
- case_print(money_used,player);
- errorcheck(pick,money_used);
- money_used[pick]=false;
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"Please pick a case.\n";
- case_print(money_used,player);
- errorcheck(pick,money_used);
- money_used[pick]=false;
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"Please pick a case.\n";
- case_print(money_used,player);
- errorcheck(pick,money_used);
- money_used[pick]=false;
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"Please pick a case.\n";
- case_print(money_used,player);
- errorcheck(pick,money_used);
- money_used[pick]=false;
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"This is the last round.\n";
- case_print(money_used,player);
- errorcheck(pick,money_used);
- money_used[pick]=false;
- x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
- if (x==0) {
- goto end;
- }
- cout<<"You had "<<player.get_money()<<" in your case number "<<player.get_casenumber()<<".\n";
- end:
- cout<<"Do you wish to play again 1 for yes 2 for no.\n";
- cin>>pick;
- if (pick==0) {
- isRunning=false;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement