#include <iostream>
#include <string>
#include <time.h>
#include <fstream>
using namespace std;
void print(bool player1win, bool player2win, string *names){
ofstream print1;
print1.open("resultat.txt", ios::app);
if(player1win==true){
print1<<names[0]<<" winner!"<<endl;
}else if(player2win==true){
print1<<names[1]<<" winner!"<<endl;
}else{
print1<<"nobody won!";
}
print1.close();
}
void arrayfill(string *names, int *deck, bool *picked){
for(int i=0; i<52; i++){
deck[i]=i+1;
picked[i]=false;
}
string name;
for(int i=0; i<2; i++){
cout<<"player "<<i+1<<": ";
getline(cin, name);
names[i]=name;
}
}
int random(){
int random1=1+rand() % 52;
return random1;
}
int main(){
const int size=52, size2=2;
string names[size2], yesno, playagain;
int deck[size], sum1=0, sum2=0, rand;
bool picked[size], isActive=true, player1no=false, player2no=false, player1win=false, player2win=false;
srand(time(NULL));
arrayfill(names, deck, picked);
while(sum1<22 && sum2<22 && isActive){
if(player1no==false){
cout<<names[0]<<" you got "<<sum1<<" do you want another card? ";
cin>>yesno;
if(yesno=="Y" || yesno=="y"){
rand=random();
rand=rand%13+1;
sum1=sum1+rand;
cout<<names[0]<<" you got "<<rand<<" and a total sum of "<<sum1<<endl;
}else{
player1no=true;
}
}
if(player2no==false && sum1<22){
cout<<names[1]<<" you got "<<sum2<<" do you want another card? ";
cin>>yesno;
if(yesno=="Y" || yesno=="y"){
rand=random();
rand=rand%13+1;
sum2=sum2+rand;
cout<<names[1]<<" you got "<<rand<<" and a total sum of "<<sum2<<endl;
}else{
player2no=true;
}
}
if(player1no && player2no){
isActive=false;
}
}
if(sum2>21){
cout<<names[0]<<" is the winner!"<<endl;
player1win=true;
}
if(sum2>21){
cout<<names[1]<<" is the winner!"<<endl;
player2win=true;
}
if(isActive==false){
if(sum1>sum2){
cout<<names[0]<<" is the winner!"<<endl;
player1win=true;
}else if(sum2>sum1){
cout<<names[1]<<" is the winner!"<<endl;
player2win=true;
}else{
cout<<"nobody won!"<<endl;
}
}
cout<<"do you want to play again? Y/N: ";
cin>>playagain;
print(player1win, player2win, names);
if(playagain=="Y" || playagain=="y"){
cin.ignore();
main();
}
return 0;
}