Code:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;
const int cols=3;
void displayPartOne(int, double, int);
void displayPartTwo();
void displayPartThree();
void displayMoneyRemainingTable(double [][cols], const int);
void displayCaseTable(double[][cols], const int);
void isCaseNumberInRange(int [], int, int);
double calculateBankersOffer(double [][cols], const int, double);
void isCaseNumberReselected(int [], const int);
int main()
{
int i, t, x=1, z=0, cases=26;
int hidden, answer;
const int Size=6;
int TempArray[Size]={1,1,1,1,1,1};
double temp1, temp2, y=0.0;
const int rows=26;
double Cases[rows][cols];
ifstream fin;
srand(time(0));
// Opens text file and makes sure it works.
fin.open("amounts.txt");
if (fin.fail())
cout << "Error reading file. Please check for amounts.txt file." << endl;
for (i=0; i<rows; i++)
{
fin >> Cases[i][0];
fin >> Cases[i][1];
fin >> Cases[i][2];
}
for (int j=0; j<rows; j++)
{
i=0;
t=((i+1)+rand()%(cases-(i+1)));
temp1=Cases[j][0];
Cases[j][0]=Cases[t][0];
Cases[t][0]=temp1;
temp2=Cases[j][2];
Cases[j][2]=Cases[t][2];
Cases[t][2]=temp2;
i++;
}
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
cout << "Pick 1 case as the hidden case: (Pick case # between 1-26 and press Enter)" << endl;
cin >> hidden;
isCaseNumberInRange(TempArray, Size, hidden);
Cases[hidden-1][1]=-2;
z=hidden;
cout << "Please pick 6 cases for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
cin >> TempArray[1];
Cases[TempArray[1]-1][1]=-1;
Cases[TempArray[1]][2]=-1;
cin >> TempArray[2];
Cases[TempArray[2]-1][1]=-1;
Cases[TempArray[2]][2]=-1;
cin >> TempArray[3];
Cases[TempArray[3]-1][1]=-1;
Cases[TempArray[3]][2]=-1;
cin >> TempArray[4];
Cases[TempArray[4]-1][1]=-1;
Cases[TempArray[4]][2]=-1;
cin >> TempArray[5];
Cases[TempArray[5]-1][1]=-1;
Cases[TempArray[5]][2]=-1;
system ("cls");
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
cout << "Deal or no deal? (deal=1 / no deal=2, input 1 or 2 and press Enter)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << y << endl;
}
else
{
x++;
cout << "Please pick 5 cases for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
cin >> TempArray[1];
cin >> TempArray[2];
cin >> TempArray[3];
cin >> TempArray[4];
isCaseNumberReselected(TempArray, Size);
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
Cases[TempArray[1]-1][1]=-1;
Cases[TempArray[1]][2]=-1;
Cases[TempArray[2]-1][1]=-1;
Cases[TempArray[2]][2]=-1;
Cases[TempArray[3]-1][1]=-1;
Cases[TempArray[3]][2]=-1;
Cases[TempArray[4]-1][1]=-1;
Cases[TempArray[4]][2]=-1;
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
cout << "Deal or no deal? (deal=1 / no deal=2, input 1 or 2 and press Enter)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << y << endl;
}
else
{
x++;
cout << "Please pick 4 cases for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
cin >> TempArray[1];
cin >> TempArray[2];
cin >> TempArray[3];
isCaseNumberReselected(TempArray, Size);
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
Cases[TempArray[1]-1][1]=-1;
Cases[TempArray[1]][2]=-1;
Cases[TempArray[2]-1][1]=-1;
Cases[TempArray[2]][2]=-1;
Cases[TempArray[3]-1][1]=-1;
Cases[TempArray[3]][2]=-1;
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
cout << "Deal or no deal? (deal=1 / no deal=2, input 1 or 2 and press Enter)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << y << endl;
}
else
{
x++;
cout << "Please pick 3 cases for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
cin >> TempArray[1];
cin >> TempArray[2];
isCaseNumberReselected(TempArray, Size);
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
Cases[TempArray[1]-1][1]=-1;
Cases[TempArray[1]][2]=-1;
Cases[TempArray[2]-1][1]=-1;
Cases[TempArray[2]][2]=-1;
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
cout << "Deal or no deal? (deal=1 / no deal=2, input 1 or 2 and press Enter)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << y << endl;
}
else
{
x++;
cout << "Please pick 2 cases for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
cin >> TempArray[1];
isCaseNumberReselected(TempArray, Size);
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
Cases[TempArray[1]-1][1]=-1;
Cases[TempArray[1]][2]=-1;
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
cout << "Deal or no deal? (deal=1 / no deal=2, input 1 or 2 and press Enter)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << y << endl;
}
else
{
x++;
cout << "Please pick 1 case for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
isCaseNumberReselected(TempArray, Size);
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
cout << "Deal or no deal? (deal=1 / no deal=2, input 1 or 2 and press Enter)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << y << endl;
}
else
{
x++;
cout << "Please pick 1 case for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
isCaseNumberReselected(TempArray, Size);
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
cout << "Deal or no deal? (deal=1 / no deal=2, input 1 or 2 and press Enter)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << y << endl;
}
else
{
x++;
cout << "Please pick 1 case for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
isCaseNumberReselected(TempArray, Size);
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
cout << "Deal or no deal? (deal=1 / no deal=2, input 1 or 2 and press Enter)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << y << endl;
}
else
{
x++;
cout << "Please pick 1 case for this round: (Pick a case # and press Enter)" << endl;
cin >> TempArray[0];
isCaseNumberReselected(TempArray, Size);
Cases[TempArray[0]-1][1]=-1;
Cases[TempArray[0]][2]=-1;
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
{
system ("cls");
y=0;
y=calculateBankersOffer(Cases, rows, y);
displayPartOne(x, y, z);
displayMoneyRemainingTable(Cases, rows);
displayPartTwo();
displayCaseTable(Cases, rows);
displayPartThree();
}
cout << "Do you want to keep the case or switch with the remaining case(1=keep/2=switch)" << endl;
cin >> answer;
if (answer==1)
{
cout << "You win: $" << Cases[hidden][2] << endl;
}
else if (answer==2)
{
for (int i=0; i<rows; i++)
{
if ((Cases[i][2]!=-1)&&(Cases[i][1]!=-2))
cout <<"You win: $" << Cases[i][2] << endl;
}
}
return 0;
}
void displayPartOne(int x,double y, int z)
{
cout << "----------------------------------------------------------------------" << endl;
cout << "[[ Deal Or No Deal ]]" << endl;
cout << "----------------------------------------------------------------------" << endl;
cout << "Round: " << x << endl;
cout << "Banker Offer: $" << y << endl;
cout << "Hidden Case #: " << z << endl;
cout << "----------------------------------------------------------------------" << endl;
cout << "[ Money Remaining ]" << endl;
cout << "----------------------------------------------------------------------" << endl;
}
void displayPartTwo()
{
cout << "----------------------------------------------------------------------" << endl;
cout << "[ Cases ]" << endl;
cout << "----------------------------------------------------------------------" << endl;
}
void displayPartThree()
{
cout << "----------------------------------------------------------------------" << endl;
}
void displayMoneyRemainingTable(double Cases[][cols], int rows)
{
int f, p, q=2, value=0, value1=13;
for (int j=0; j<13; j++)
{
for (int i=0; i<rows; i++)
{
if (Cases[i][0]==value)
f=i;
if (Cases[i][0]==value1)
p=i;
}
if (Cases[f][2]==-1)
cout << "----" << " ";
else
cout << fixed << setprecision(q) << "$" << Cases[f][2]<< " ";
if (Cases[p][2]==-1)
cout << "----" << endl;
else
cout << setprecision(0) << "$" << Cases[p][2] << endl;
value++;
value1++;
q=0;
}
}
void displayCaseTable(double Cases[][cols], int rows)
{
for (int i=0; i<6; i++)
{
if (Cases[i][1]==-2)
cout << "(hidden)" << " ";
else if (Cases[i][1]==-1)
cout << "(picked)" << " ";
else
cout << "Case " << Cases[i][1] << " ";
}
cout << endl;
cout << setw(0);
for (int i=6; i<9; i++)
{
if (Cases[i][1]==-2)
cout << "(hidden)" << " ";
else if (Cases[i][1]==-1)
cout << "(picked)" << " ";
else
cout << "Case " << Cases[i][1] << " ";
}
for (int i=9; i<12; i++)
{
if (Cases[i][1]==-2)
cout << "(hidden)" << " ";
else if (Cases[i][1]==-1)
cout << "(picked)" << " ";
else
cout << "Case " << Cases[i][1] << " ";
}
cout << endl;
cout << setw(0);
for (int i=12; i<18; i++)
{
if (Cases[i][1]==-2)
cout << "(hidden)" << " ";
else if (Cases[i][1]==-1)
cout << "(picked)" << " ";
else
cout << "Case " << Cases[i][1] << " ";
}
cout << endl;
cout << setw(0);
for (int i=18; i<24; i++)
{
if (Cases[i][1]==-2)
cout << "(hidden)" << " ";
else if (Cases[i][1]==-1)
cout << "(picked)" << " ";
else
cout << "Case " << Cases[i][1] << " ";
}
cout << endl;
cout << setw(0);
for (int i=24; i<26; i++)
{
if (Cases[i][1]==-2)
cout << "(hidden)" << " ";
else if (Cases[i][1]==-1)
cout << "(picked)" << " ";
else
cout << "Case " << Cases[i][1] << " ";
}
cout << endl;
cout << setw(0);
}
void isCaseNumberInRange(int TempArray[], int Size, int hidden)
{
if ((hidden<0)||(hidden>26))
{
cout << "This Case is not in the range" << endl;
}
for (int i=0; i<6; i++)
{
if ((TempArray[i]<0)||(TempArray[i]>26))
cout << "This Case is not in the range." << endl;
}
}
double calculateBankersOffer(double Cases[][cols], int rows, double y)
{
double total=0, k=0;
int count=0;
for (int i=0; i<rows; i++)
if ((Cases[i][2]!=-1)&&(Cases[i][2]!=-2))
{
total+=Cases[i][2];
count++;
}
k=total/count;
return k;
}
void isCaseNumberReselected(int TempArray[], int Size)
{
for (int i=0; i<=5; i++)
if (TempArray[i]<0)
cout << "One of these cases has already been selected." << endl;
}