-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbetmessage.cpp
111 lines (100 loc) · 2.33 KB
/
betmessage.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/*
* kjs170430_Project4/betmessage.cpp
* Copyright 2017, Kristopher Sewell, All rights reserved.
*
* Course: CE1337 Section: 501 Project: 4
*/
#include "betmessage.hpp"
BetMessage::BetMessage() {
m_good = false;
m_betType = 0;
m_betValue = 0;
m_betWager = 0;
}
BetMessage::BetMessage(int betType, int betValue, int betWager) {
m_good = false;
setBetType(betType);
setBetValue(betValue);
setBetWager(betWager);
}
BetMessage::~BetMessage() {
//std::cout << "B.msg deleting\n";
}
void BetMessage::setBetType(int betType) {
if (betType >= 0 && betType <= 5) {
m_betType = betType;
} else {
std::cout << "Improper Betting Type\n";
}
}
void BetMessage::setBetValue(int betValue) {
switch (m_betType) {
case Single:
if (betValue >= 0 && betValue < 37) {
m_betValue = betValue;
}
break;
case Color:
if (betValue == Red || betValue == Black) {
m_betValue = betValue;
}
break;
case Modulo:
if (betValue == Even || betValue == Odd) {
m_betValue = betValue;
}
break;
case Group:
if (betValue == Lower || betValue == Middle || betValue == Upper) {
m_betValue = betValue;
}
break;
case Half:
if (betValue == Lower || betValue == Upper) {
m_betValue = betValue;
}
break;
case Column:
if (betValue == First || betValue == Second || betValue == Third) {
m_betValue = betValue;
}
break;
default:
m_good = false;
break;
}
}
void BetMessage::setBetWager(int betWager) {
if (betWager > 0) {
m_betWager = betWager;
} else {
std::cout << "Improper Bet Wager\n";
}
}
void BetMessage::checkMessage(Participant& p) {
/*
Check to see if the message has a valid wager and that the message isn't already well formed
If the message is in good format then check if the player has enough funds to cover the bet.
*/
if (m_betWager > 0 && !m_good) {
if (p.getBank() > m_betWager) {
m_good = true;
p.PayOut(m_betWager*-1);
} else {
//invalidate bet
m_betWager = 0;
}
}
}
int BetMessage::getType() const {
return m_betType;
}
int BetMessage::getValue() const{
return m_betValue;
}
int BetMessage::getWager() const {
return m_betWager;
}
bool BetMessage::good() const{
return m_good;
}