online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <chrono> #include <fstream> #include <iostream> #include <random> #include <stdlib.h> #include <thread> using namespace std; void bjDraw(int playerCard[2], int dealerCard[2], int &playerTotal, int &dealerTotal, mt19937 &seed) { uniform_int_distribution<int> card(2, 11); playerCard[0] = card(seed); playerCard[1] = card(seed); if (playerCard[0] == 11 && playerCard[1] == 11) { playerCard[0] = 1; } playerTotal = playerCard[0] + playerCard[1]; dealerCard[0] = card(seed); dealerCard[1] = card(seed); if (dealerCard[0] == 11 && dealerCard[1] == 11) { dealerCard[0] = 1; } dealerTotal = dealerCard[0] + dealerCard[1]; } void bjAction(int playerHit, int &playerTotal, mt19937 &seed, bool &fold, bool &playerBust, int playerCard[2]) { int menu = 0; uniform_int_distribution<int> card(2, 11); do { cout << "\nAction : \n 1. Hit \n 2. Fold \n 3. Stay \n"; cin >> menu; switch (menu) { case 1: playerHit = card(seed); if (playerHit == 11 && playerTotal + 11 > 21) { playerHit = 1; } if (playerCard[0] == 11 && playerTotal + playerHit > 21) { playerCard[0] = 1; playerTotal = playerCard[1] + 1; } if (playerCard[1] == 11 && playerTotal + playerHit > 21) { playerCard[1] = 1; playerTotal = playerCard[0] + 1; } playerTotal += playerHit; cout << "\nYou Hit For " << playerHit << "\nTotal : " << playerTotal << "\n"; break; case 2: fold = true; return; case 3: return; default: cout << "\nInvalid Choice\n"; break; } } while (playerTotal < 21); if (playerTotal > 21) { playerBust = true; } return; } void blackJack(int balance, mt19937 seed) { int playerCard[2]; int dealerCard[2]; int playerTotal; int dealerTotal; int playerHit; int dealerHit; bool fold = false; bool playerBust = false; bool dealerBust = false; int bet; int menu; cout << "\nPlay BlackJack?\n1. Play\n2. Quit\n"; cin >> menu; switch (menu) { case 1: cout << "\nMoney Left : " << balance << "\nInput Bet : "; cin >> bet; while (bet < 0 || bet > balance) { cout << "\nInvalid Bet\nMoney Left : " << balance << "\nInput Bet : "; cin >> bet; } bjDraw(playerCard, dealerCard, playerTotal, dealerTotal, seed); cout << "Your Hand : \n" << "1. " << playerCard[0] << "\n2. " << playerCard[1] << "\nTotal : " << playerTotal << "\nDealer Hand : \n" << "1. " << dealerCard[0] << "\n2. \n"; bjAction(playerHit, playerTotal, seed, fold, playerBust, playerCard); cout << "\nDealer Hand : \n" << "1. " << dealerCard[0] << "\n2. " << dealerCard[1] << "\nTotal : " << dealerTotal << "\n"; if (!fold && !playerBust) { while (dealerTotal <= 17) { uniform_int_distribution<int> card(2, 11); dealerHit = card(seed); if (dealerHit == 11 && dealerTotal + 11 > 21) { dealerHit = 1; } if (dealerCard[0] == 11 && dealerTotal + dealerHit > 21) { dealerCard[0] = 1; dealerTotal = dealerCard[1] + 1; } if (dealerCard[1] == 11 && dealerTotal + dealerHit > 21) { dealerCard[1] = 1; dealerTotal = dealerCard[1] + 1; } dealerTotal += dealerHit; cout << "\nDealer Hit For " << dealerHit << "\nTotal : " << dealerTotal << "\n"; } if (dealerTotal > 21) { dealerBust = true; } } if (fold == 1) { cout << "\nYou Folded\n"; bet = 0; } else if (playerBust == 1) { cout << "\nYou Busted\n"; bet = 0; } else if (dealerBust == 1) { cout << "\nDealer Busted\n"; balance += bet * 2; } else if (dealerTotal > playerTotal) { cout << "\nDealer Has The Bigger Hand\n"; bet = 0; } else if (dealerTotal < playerTotal) { cout << "\nYou Have The Bigger Hand\n"; balance += bet * 2; } else if (dealerTotal == playerTotal) { cout << "\nTie\n"; balance += bet; } break; case 2: return; break; default: cout << "\nInvalid Choice\n"; break; } return; } void slotMachine(int &balance, mt19937 &seed) { uniform_int_distribution<int> roll(1, 7); int number[3] = {0, 0, 0}; int bet; int menu; cout << "Play Slot Machine? \n3 Same Numbers = 2×Bet\n2 Same Numbers = " "Money Back\n1. Play\n2. Quit\n"; cin >> menu; switch (menu) { case 1: cout << "\nMoney Left : " << balance << "\nInput Bet : "; cin >> bet; while (bet < 0 || bet > balance) { cout << "\nInvalid Bet\nMoney Left : " << balance << "\nInput Bet : "; cin >> bet; } balance -= bet; cout << "\nBalance Now : " << balance << "\n"; for (int a = 1; a <= 10; a++) { for (int a = 0; a <= 2; a++) { number[a] = roll(seed); } system("clear"); for (int a = 0; a <= 2; a++) { cout << "| " << number[a] << " |"; } cout << "\n"; this_thread::sleep_for(chrono::milliseconds(600)); } if (number[0] == number[1] && number[1] == number[2]) { balance += bet * 2; cout << "\nYou Doubled Your Money\nYour Balance Now : " << balance << "\n"; } else if (number[0] == number[1] || number[0] == number[2] || number[1] == number[2]) { balance += bet; cout << "\nYou Got Your Money Back\nYour Balance Now : " << balance << "\n"; } else { cout << "\nYou Lost\n"; } break; case 2: return; } return; } void drawBoard(int fakeBoard[5][5]) { cout << "\n"; for (int a = 0; a <= 4; a++) { for (int b = 0; b <= 4; b++) { cout << "| " << fakeBoard[a][b] << " |"; } cout << "\n"; } } void setBoard(int board[5][5], int bombAmount, mt19937 &seed) { uniform_int_distribution<int> randomBomb(1, 5); int bombPlaced = 0; while (bombPlaced < bombAmount) { int bombRow = randomBomb(seed); int bombColumn = randomBomb(seed); if (board[bombRow - 1][bombColumn - 1] != 2) { board[bombRow - 1][bombColumn - 1] = 2; bombPlaced++; } } return; } void playerInput(int board[5][5], int fakeBoard[5][5], int &correctTile) { int column; int row; int menu = 0; while (menu != 2) { cout << "\nWhat Will You Do?\n1. Check A Tile\n2. Stop\n"; cin >> menu; while (menu > 2 || menu < 1) { cout << "Invalid input. Try again.\n1. Check A Tile\n2. Stop\n"; cin >> menu; } switch (menu) { case 1: cout << "\nInput Column(1-5) : "; cin >> column; cout << "Input Row(1-5) : "; cin >> row; if (column >= 1 && column <= 5 && row >= 1 && row <= 5 && board[row - 1][column - 1] != 1) { if (board[row - 1][column - 1] != 2) { board[row - 1][column - 1] = 1; fakeBoard[row - 1][column - 1] = 1; correctTile++; cout << "\nCorrect Tile : " << correctTile << "\n"; } else { cout << "\nYou Hit A Bomb\n"; correctTile = 0; drawBoard(board); return; } } else if (column < 1 || column > 5 || row < 1 || row > 5 || board[row - 1][column - 1] == 1) { cout << "Invalid input Or Already Filled. Try again.\n"; } drawBoard(fakeBoard); break; case 2: return; default: cout << "\nInvalid Input\n"; break; } } } void mineSweeper(int &balance, mt19937 &seed) { int board[5][5] = {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}; int fakeBoard[5][5] = {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}; int bet; int menu; int correctTile = 0; int bombAmount; do { for (int a = 0; a <= 4; a++) { for (int b = 0; b <= 4; b++) { board[a][b] = 0; fakeBoard[a][b] = 0; } } correctTile = 0; cout << "Play MineSweeper? \n0 = Undiscovered Tile\n1 = Discovered Tile\n2 " "= Bomb\n1. Play\n2. Quit\n"; cin >> menu; while (menu > 2 || menu < 1) { cout << "\nInvalid Option\n"; cout << "Play MineSweeper? \n0 = Undiscovered Tile\n1 = Discovered " "Tile\nn1. Play\n2. Quit\n"; cin >> menu; } switch (menu) { case 1: cout << "\nMoney Left : " << balance << "\nInput Bet : "; cin >> bet; while (bet < 0 || bet > balance) { cout << "\nInvalid Bet\nMoney Left : " << balance << "\nInput Bet : "; cin >> bet; }; balance -= bet; cout << "\nBalance Now : " << balance << "\nHow Many Bombs? (3-5) : "; cin >> bombAmount; while (bombAmount > 5 || bombAmount < 3) { cout << "\nInvalid Number!\nHow Many Bombs (3-5) : "; cin >> bombAmount; }; setBoard(board, bombAmount, seed); playerInput(board, fakeBoard, correctTile); bet = (bet / (8 - bombAmount)) * correctTile; cout << "\nYou Won " << bet << "\n"; balance += bet; break; case 2: break; default: cout << "\nInvalid Choice\n"; break; } } while (menu != 2); } void saveData(int balance, bool hasPlayed, string username) { ofstream outFile("data.txt"); if (outFile.is_open()) { outFile << balance << " " << hasPlayed << "\n" << username; outFile.close(); cout << "Data Written\n\n"; } else { cout << "Data Write Failed\n\n"; } return; } int main() { int menu; int balance = 1000; bool hasPlayed; string username; int bet; mt19937 seed(time(NULL)); ifstream inFile("data.txt"); if (inFile.is_open()) { inFile >> balance >> hasPlayed; getline(inFile, username); getline(inFile, username); inFile.close(); cout << "Data Read\n\n"; } else { cout << "Data Read Failed\n\n"; } if (!hasPlayed) { cout << "What is Your Name : "; getline(cin, username); hasPlayed = true; saveData(balance, hasPlayed, username); } do { cout << "Hi! " << username << "\nMoney Left : " << balance << "\n1. Play\n2. Quit\n"; cin >> menu; switch (menu) { case 1: do { cout << "\nWhich Game Do You Want To Play\n1. BlackJack\n2. Slot " "Machine\n3. Minesweeper\n4. Back\n "; cin >> menu; switch (menu) { case 1: blackJack(balance, seed); saveData(balance, hasPlayed, username); break; case 2: slotMachine(balance, seed); saveData(balance, hasPlayed, username); break; case 3: mineSweeper(balance, seed); saveData(balance, hasPlayed, username); break; case 4: cout << ""; break; default: cout << "\nInvalid Choice\n"; break; } } while (menu != 4); case 2: break; default: cout << "\nInvalid Choice\n"; break; } } while (menu != 2); saveData(balance, hasPlayed, username); }
1000 1 cryMise

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue