Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.44 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // Deal or No Deal
  4. //
  5. // Created by Hunter Robinson on 12/2/15.
  6. // Copyright © 2015 Hunter Robinson. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. #include <vector>
  11. using namespace std;
  12. class person{
  13. private:
  14. string name;
  15. float money;
  16. int case_number;
  17. public:
  18. string get_name(){
  19. return name;
  20. }
  21. float get_money(){
  22. return money;
  23. }
  24. int get_casenumber(){
  25. return case_number;
  26. }
  27. void set_casenumber(int case_numbers){
  28. case_number=case_numbers;
  29. }
  30. person(string sname, float moneys, int case_numbers):name(sname),money(moneys),case_number(case_numbers){}
  31. };
  32. bool money_used_false(bool money_used[]){
  33. for (int i=0; i<26; i++) {
  34. if (money_used[i]==false) {
  35. return false;
  36. }
  37. }
  38. return true;
  39. }
  40. void errorcheck(int pick,bool money_used[]){
  41. cin>>pick;
  42. while (!cin.good() || (pick)<1 || (pick)>27 || money_used[pick-1]==false) {
  43. cin.clear();
  44. cin.sync();
  45. fpurge(stdin);
  46. cout<<"Incorrect input. Please enter a correct value.\n";
  47. cin>>pick;
  48. pick--;
  49. }
  50. money_used[pick-1]=false;
  51. }
  52. void case_print(bool money_used[],person player){
  53. cout<<"_";
  54. for (int i=0; i<26; i++) {
  55. if (money_used[i]==true) {
  56. cout<<"_"<<i+1<<"_";
  57. }
  58. else cout<<"___";
  59. }
  60. cout<<"_\n";
  61. 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};
  62. for (int i=0; i<13; i++) {
  63. if (money_used[i]==true || moneys[i]==player.get_casenumber()) {
  64. cout<<moneys[i]<<"\t";
  65. }
  66. else cout<<"Used\t";
  67. if (money_used[i+13]==true || moneys[i]==player.get_casenumber()) {
  68. cout<<moneys[i+13]<<"\n";
  69. }
  70. else cout<<"Used\n";
  71. }
  72. }
  73. int banker(bool money_used[], float case_remaining, int cases_left, int pick, bool isRunning, person player, float case_money[]){
  74. for (int i=0; i<26; i++) {
  75. if (money_used[i]==false) {
  76. case_remaining+=case_money[i];
  77. cases_left++;
  78. }
  79. }
  80. case_remaining=case_remaining/cases_left;
  81. cout<<"The bankers offer is "<<case_remaining<<"\nDo you wish to take the offer? 1 for yes. 2 for no.";
  82. cin>>pick;
  83. while (!cin.good() || pick<0 || pick>2) {
  84. cin.clear();
  85. cin.sync();
  86. fpurge(stdin);
  87. cout<<"Incorrect input. Please enter a correct value.\n";
  88. cin>>pick;
  89. }
  90. if (pick==1) {
  91. cout<<"You have chosen to take the bankers offer of "<<case_remaining<<"\n";
  92. cout<<"You had "<<player.get_money()<<" in your case number "<<player.get_casenumber()+1<<".\n";
  93. if (player.get_money()<case_remaining) {
  94. cout<<"You beat the banker! Congrats!\n";
  95. return 0;
  96. }
  97. else if (player.get_money()>case_remaining){
  98. cout<<"You had more money in your case. Bad choice.\n";
  99. return 0;
  100. }
  101. }
  102. return 1;
  103. }
  104. void randomize(bool money_used[], float case_money[]){
  105. for (int i=0; money_used_false(money_used)==false;) {
  106. int ran=0;
  107. ran = rand()%26;
  108. if (money_used[ran]==true) {
  109. continue;
  110. }
  111. switch (ran) {
  112. case 0:
  113. case_money[i]=0.1;
  114. i++;
  115. money_used[ran]=true;
  116. break;
  117. case 1:
  118. case_money[i]=1;
  119. i++;
  120. money_used[ran]=true;
  121. break;
  122. case 2:
  123. case_money[i]=5;
  124. i++;
  125. money_used[ran]=true;
  126. break;
  127. case 3:
  128. case_money[i]=10;
  129. i++;
  130. money_used[ran]=true;
  131. break;
  132. case 4:
  133. case_money[i]=25;
  134. i++;
  135. money_used[ran]=true;
  136. break;
  137. case 5:
  138. case_money[i]=50;
  139. i++;
  140. money_used[ran]=true;
  141. break;
  142. case 6:
  143. case_money[i]=75;
  144. i++;
  145. money_used[ran]=true;
  146. break;
  147. case 7:
  148. case_money[i]=100;
  149. i++;
  150. money_used[ran]=true;
  151. break;
  152. case 8:
  153. case_money[i]=200;
  154. i++;
  155. money_used[ran]=true;
  156. break;
  157. case 9:
  158. case_money[i]=300;
  159. i++;
  160. money_used[ran]=true;
  161. break;
  162. case 10:
  163. case_money[i]=400;
  164. i++;
  165. money_used[ran]=true;
  166. break;
  167. case 11:
  168. case_money[i]=500;
  169. i++;
  170. money_used[ran]=true;
  171. break;
  172. case 12:
  173. case_money[i]=750;
  174. i++;
  175. money_used[ran]=true;
  176. break;
  177. case 13:
  178. case_money[i]=1000;
  179. i++;
  180. money_used[ran]=true;
  181. break;
  182. case 14:
  183. case_money[i]=5000;
  184. i++;
  185. money_used[ran]=true;
  186. break;
  187. case 15:
  188. case_money[i]=10000;
  189. i++;
  190. money_used[ran]=true;
  191. break;
  192. case 16:
  193. case_money[i]=25000;
  194. i++;
  195. money_used[ran]=true;
  196. break;
  197. case 17:
  198. case_money[i]=50000;
  199. i++;
  200. money_used[ran]=true;
  201. break;
  202. case 18:
  203. case_money[i]=75000;
  204. i++;
  205. money_used[ran]=true;
  206. break;
  207. case 19:
  208. case_money[i]=100000;
  209. i++;
  210. money_used[ran]=true;
  211. break;
  212. case 20:
  213. case_money[i]=200000;
  214. i++;
  215. money_used[ran]=true;
  216. break;
  217. case 21:
  218. case_money[i]=300000;
  219. i++;
  220. money_used[ran]=true;
  221. break;
  222. case 22:
  223. case_money[i]=400000;
  224. i++;
  225. money_used[ran]=true;
  226. break;
  227. case 23:
  228. case_money[i]=500000;
  229. i++;
  230. money_used[ran]=true;
  231. break;
  232. case 24:
  233. case_money[i]=750000;
  234. i++;
  235. money_used[ran]=true;
  236. break;
  237. case 25:
  238. case_money[i]=1000000;
  239. i++;
  240. money_used[ran]=true;
  241. break;
  242. }
  243. if (i>26) {
  244. i=0;
  245. }
  246. }
  247. }
  248.  
  249.  
  250. int main() {
  251. srand(time(0));
  252. bool isRunning = true;
  253. float case_money[26]={0};
  254. int pick;
  255. string sname;
  256. bool money_used[26]={false};
  257. float case_remaining=0;
  258. int cases_left = 0;
  259. while (isRunning==true) {
  260. randomize(money_used,case_money);
  261. fpurge(stdin);
  262. cout<<"Welcome to Deal or No Deal!\n";
  263. cout<<"Please enter your name.\n";
  264. getline(cin, sname);
  265. fpurge(stdin);
  266. cout<<"Welcome "<<sname<<"!\n";
  267. cout<<"_";
  268. for (int i=1; i<27; i++) {
  269. cout<<"_"<<i<<"_";
  270. }
  271. cout<<"\nPlease pick a case to begin.\n";
  272. errorcheck(pick, money_used);
  273. person bob = *new person(sname,case_money[pick],pick);
  274. person player(sname,case_money[pick] , pick);
  275. sname.clear();
  276. cout<<"For the first round you will be picking 6 of the remaining cases.\n";
  277. case_print(money_used,player);
  278. for (int i=0; i<6; i++) {
  279. errorcheck(pick, money_used);
  280. }
  281. fpurge(stdin);
  282. int x = banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  283. if (x==0) {
  284. goto end;
  285. }
  286. cout<<"Lets continue. For this round you will be picking 5 of the remaining cases.\n";
  287. case_print(money_used,player);
  288. for (int i=0; i<5; i++) {
  289. errorcheck(pick, money_used);
  290. }
  291. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  292. if (x==0) {
  293. goto end;
  294. }
  295. cout<<"For the next round you will be picking 4 of the remaining cases.\n";
  296. case_print(money_used,player);
  297. for (int i=0; i<4; i++) {
  298. errorcheck(pick, money_used);
  299. }
  300. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  301. if (x==0) {
  302. goto end;
  303. }
  304. cout<<"This round you will pick 3 of the remaining cases.\n";
  305. case_print(money_used,player);
  306. for (int i=0; i<3; i++) {
  307. errorcheck(pick, money_used);
  308. }
  309. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  310. if (x==0) {
  311. goto end;
  312. }
  313. cout<<"For round 5 you will pick 2 of the remaining cases.\n";
  314. case_print(money_used,player);
  315. for (int i=0; i<2; i++) {
  316. errorcheck(pick, money_used);
  317. }
  318. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  319. if (x==0) {
  320. goto end;
  321. }
  322. cout<<"For this round you will pick 1 of the remaining cases. From here on out you will only be picking 1 case.\n";
  323. case_print(money_used,player);
  324. errorcheck(pick,money_used);
  325. money_used[pick]=false;
  326. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  327. if (x==0) {
  328. goto end;
  329. }
  330. cout<<"Please pick a case.\n";
  331. case_print(money_used,player);
  332. errorcheck(pick,money_used);
  333. money_used[pick]=false;
  334. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  335. if (x==0) {
  336. goto end;
  337. }
  338. cout<<"Please pick a case.\n";
  339. case_print(money_used,player);
  340. errorcheck(pick,money_used);
  341. money_used[pick]=false;
  342. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  343. if (x==0) {
  344. goto end;
  345. }
  346. cout<<"Please pick a case.\n";
  347. case_print(money_used,player);
  348. errorcheck(pick,money_used);
  349. money_used[pick]=false;
  350. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  351. if (x==0) {
  352. goto end;
  353. }
  354. cout<<"This is the last round.\n";
  355. case_print(money_used,player);
  356. errorcheck(pick,money_used);
  357. money_used[pick]=false;
  358. x=banker(money_used,case_remaining,cases_left,pick,isRunning,player,case_money);
  359. if (x==0) {
  360. goto end;
  361. }
  362. cout<<"You had "<<player.get_money()<<" in your case number "<<player.get_casenumber()<<".\n";
  363. end:
  364. cout<<"Do you wish to play again 1 for yes 2 for no.\n";
  365. cin>>pick;
  366. if (pick==0) {
  367. isRunning=false;
  368. }
  369. }
  370. return 0;
  371. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement