Skip to content

Commit d000fc2

Browse files
committed
Added error handling to trading
1 parent 5477ac3 commit d000fc2

1 file changed

Lines changed: 28 additions & 2 deletions

File tree

monopoly.cpp

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,11 @@ bool financial_menue(player &p){
833833
std::cout<<"Wich do you choose?"<<std::endl;
834834
std::cin>>sel;
835835
if(sel !=99){
836+
if (p.money < (0.55*filteredTileListPlayer[sel].buyPrice)){
837+
displayGameBoard();
838+
std::cout<<"Not enough Money. 😢"<<std::endl;
839+
continue;
840+
}
836841
transferMoney(p, -1, (0.55*filteredTileListPlayer[sel].buyPrice));
837842
gameBoard[filteredTileListPlayer[sel].tileIndex].isMortgaged = false;
838843
filteredTileListPlayer.erase(filteredTileListPlayer.begin() + sel);
@@ -901,6 +906,11 @@ bool building_menue(player &p){
901906
std::cout<<"Wich do you choose?"<<std::endl;
902907
std::cin>>sel;
903908
if(sel !=99 && sel < filteredTileListPlayer.size()){
909+
if (p.money < gameBoard[filteredTileListPlayer[sel]].housePrice){
910+
displayGameBoard();
911+
std::cout<<"Not enough Money. 😢"<<std::endl;
912+
continue;
913+
}
904914
transferMoney(p, -1, gameBoard[filteredTileListPlayer[sel]].housePrice);
905915
gameBoard[filteredTileListPlayer[sel]].upgradeStage++;
906916
if(gameBoard[filteredTileListPlayer[sel]].upgradeStage == 5){
@@ -1012,7 +1022,15 @@ bool trading_menue(player &p){
10121022
displayGameBoard();
10131023
std::cout<<colorCodes[p.color].first << p.symbol << " " << p.name << RESET_COLOR <<" You have " <<p.money<<"$ in your account.\n"
10141024
<<"How Much money do you want to give " << colorCodes[players[otherplayers[sel]].color].first << players[otherplayers[sel]].symbol << " " << players[otherplayers[sel]].name << RESET_COLOR << "?" <<std::endl;
1015-
std::cin>>amount1;
1025+
while (true){
1026+
std::cin>>amount1;
1027+
if (amount1 <= p.money){
1028+
break;
1029+
}else{
1030+
std::cout<<"You don't have enough money! 😡"<<std::endl;
1031+
clearInputBuffer();
1032+
}
1033+
}
10161034

10171035
if(!p.ownedStreets.empty()){
10181036
int tilesel;
@@ -1045,7 +1063,15 @@ bool trading_menue(player &p){
10451063
displayGameBoard();
10461064
std::cout<<colorCodes[players[otherplayers[sel]].color].first << players[otherplayers[sel]].symbol << " " << players[otherplayers[sel]].name << RESET_COLOR <<" has " <<players[otherplayers[sel]].money<<"$ in their account.\n"
10471065
<<"How Much money do you want from " << colorCodes[players[otherplayers[sel]].color].first << players[otherplayers[sel]].symbol << " " << players[otherplayers[sel]].name << RESET_COLOR << "?" <<std::endl;
1048-
std::cin>>amount2;
1066+
while (true){
1067+
std::cin>>amount2;
1068+
if (amount2 <= players[otherplayers[sel]].money){
1069+
break;
1070+
}else{
1071+
std::cout<<"You don't have enough money! 😡"<<std::endl;
1072+
clearInputBuffer();
1073+
}
1074+
}
10491075

10501076
displayGameBoard();
10511077
if(!players[otherplayers[sel]].ownedStreets.empty()){

0 commit comments

Comments
 (0)