#include<iostream>
#include<string>
#include<Windows.h>
#include<random>
#include<time.h>
#include<algorithm>
#define SIZE 13
using namespace std;
void printintro();
void printcardgame(int card[][SIZE], int col, int row, int* user_sum, int* dealer_sum);
void printdealer();
void printchoice(string *choice);
void cardline_up(int card[][SIZE], int col, int row);
int main(void)
{
srand(time(0));
string choice;
string symbol;
int select;
int user_sum = 0;
int dealer_sum = 0;
int card[4][13] = { };
int dealer_win = 1;
int user_win = 0;
int col = sizeof(card[0]) / sizeof(int);
int row = sizeof(card) / sizeof(card[0]);
int user_Cnum0 = rand() % 4;
int user_Cnum1 = rand() % 13;
cardline_up(card, col, row);
printintro();
printcardgame(card, col, row, &user_sum, &dealer_sum);
printdealer();
// cout << "딜러의 카드 : " << card[dealer_Cnum0][dealer_Cnum1] << endl << endl;
printchoice(&choice);
if (choice == "hit")
{
printintro();
printcardgame(card, col, row ,& user_sum, &dealer_sum);
printdealer();
while (user_sum <= 21)
{
printchoice(&choice);
printintro();
printcardgame(card, col, row, &user_sum, &dealer_sum);
printdealer();
if (choice == "hit")
{
if (user_sum > 21)
{
cout << "딜러의 카드의 총 합 : " << dealer_sum << endl;
cout << "딜러가 승리하였습니다." << endl;
}
else if (user_sum == 21)
{
cout << "플레이어가 승리하였습니다." << endl;
}
}
if (choice == "stand")
{
if(user_sum < 21)
{
if (user_sum > dealer_sum)
{
cout << "플레이어가 승리하였습니다." << endl;
break;
}
else
{
cout << "딜러가 승리하였습니다." << endl;
break;
}
}
else
{
if (user_sum > 21)
{
cout << "딜러가 승리하였습니다." << endl;
break;
}
else if (user_sum == 21)
{
cout << "플레이어가 승리하였습니다." << endl;
break;
}
}
}
}
}
else if (choice == "stand")
{
if (user_sum > dealer_sum)
{
cout << "플레이어가 승리하였습니다." << endl;
}
else
{
cout << "딜러가 승리하였습니다." << endl;
}
}
return 0;
}
void cardline_up(int card[][SIZE], int col, int row)
{
for (int j = 0; j < 4; j++)
{
for (int i = 0; i < 13; i++)
{
card[j][i] = i + 1;
cout << card[j][i] << " ";
}
cout << "\n";
}
}
void printintro()
{
cout << "블랙잭 게임을 시작합니다 \n\n";
Sleep(600);
cout << "카드 셔플 중 입니다. \n\n";
Sleep(600);
cout << ".\n";
Sleep(600);
cout << ".\n";
Sleep(600);
cout << ".\n";
Sleep(600);
system("cls");
cout << "카드를 분배 중 입니다\n\n";
Sleep(300);
cout << ".\n";
Sleep(600);
cout << ".\n";
Sleep(600);
cout << ".\n";
}
void printcardgame(int card[][SIZE], int col, int row, int *user_sum, int *dealer_sum)
{
int user_Cnum0 = rand() % 4;
int user_Cnum1 = rand() % 13;
*user_sum += card[user_Cnum0][user_Cnum1];
cout << "플레이어의 카드 : " << card[user_Cnum0][user_Cnum1] << endl << endl;
cout << "플레이어 카드의 총합 : " << *user_sum << endl;
int dealer_Cnum0 = rand() % 4;
int dealer_Cnum1 = rand() % 13;
*dealer_sum += card[dealer_Cnum0][dealer_Cnum1];
}
void printdealer()
{
cout << "딜러의 카드 : ";
Sleep(600);
cout << "? ";
Sleep(600);
cout << "? ";
Sleep(600);
cout << "?" << endl << endl;
}
void printchoice(string *choice)
{
cout << "카드를 뽑으시려면 hit 를, 카드 뽑기를 멈추려면 stand 를 입력해주세요.\n\n";
cout << "hit 와 stand 중에 선택하여 입력해주세요. \n\n";
cin >> *choice;
system("cls");
}
'콘솔창 & 윈도우창 > 코딩 테스트' 카테고리의 다른 글
Anagram문제 (0) | 2024.04.11 |
---|---|
백준 - 괄호 9012 (0) | 2024.01.29 |
프로그래머스 lv1 덧칠하기 (0) | 2023.11.17 |
프로그래머스 lv2 최댓값과 최솟값 c++ (0) | 2023.10.24 |
백준 A : 특식 배부 C언어 (0) | 2023.01.08 |