#include <iostream>
#include <string>
#include <time.h>
#include <fstream>
using namespace std;
// funktion för utskrift av vinnaren
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!"<<endl;
}
print1.close();
}
// funktion för initierande utav arrayerna
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;
}
}
// funktion för random
int random(){
int random1=1+rand() % 52;
return random1;
}
int main(){
// alla variabler
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));// för att random ska fungera
arrayfill(names, deck, picked);
while(sum1<22 && sum2<22 && isActive){
if(player1no==false){
cout<<endl<<names[0]<<" you've got a total sum of "<<sum1<<" do you want another card? y/n ";
cin>>yesno;// visar hur mycket poäng spelare 1 har och frågar om han vill ha en ny hand
if(yesno=="Y" || yesno=="y"){
rand=random();
rand=rand%13+1;
sum1=sum1+rand;
cout<<endl<<names[0]<<" you got "<<rand<<" and a total sum of "<<sum1<<endl;
}else{
player1no=true;// ger spelaren en random-poäng, alltså kort
}
}
if(player2no==false && sum1<22){
cout<<endl<<names[1]<<" you've got a total of "<<sum2<<" do you want another card? y/n ";
cin>>yesno;// antal poäng och frågar om spelare 2 vill ha en ny hand
if(yesno=="Y" || yesno=="y"){
rand=random();
rand=rand%13+1;
sum2=sum2+rand;
cout<<endl<<names[1]<<" you got "<<rand<<" and a total sum of "<<sum2<<endl;
}else{
player2no=true;// ger spelaren en random-poäng
}
}
if(player1no && player2no){
isActive=false;//vill ingen spelare ha fler kort så är spelet över
}
}
if(sum1>21){
cout<<endl<<names[0]<<" got fat! "<<endl;
cout<<endl<<names[1]<<" is the winner!"<<endl;
player2win=true;// gör så att den spelaren som "blir fet" förlorar, i detta fall spelare 1
}
if(sum2>21){
cout<<endl<<names[1]<<" got fat! "<<endl;
cout<<endl<<names[0]<<" is the winner!"<<endl;
player1win=true;// gör så att den spelaren som "blir fet" förlorar, i detta fall spelare 2
}
if(isActive==false){
if(sum1>sum2){
cout<<endl<<names[0]<<" is the winner!"<<endl;
player1win=true;// gör så att om spelare ett har högre summa än spelare 2 vinner denna
}else if(sum2>sum1){
cout<<endl<<names[1]<<" is the winner!"<<endl;
player2win=true;// samma sak som tidigare, fast för spelare 2
}else{
cout<<endl<<"nobody won!"<<endl;// om de har samma poäng vinner ingen
}
}
cout<<endl<<"do you want to play again? Y/N: ";
cin>>playagain;// frågar om man vill spela igen
print(player1win, player2win, names);
if(playagain=="Y" || playagain=="y"){// y= spela igen, annars avslutas spelet
cin.ignore();
main();
}
return 0;
}