#include <iostream>
#include <windows.h>
#include <ctime>
#include <clocale>
#include <ctype.h>
using namespace std;
int menu(int pengar);
int insattning();
void visaPengar(int pengar);
int play(char a[3][3], int sats);
char random_sign();
void initsieraBoard(char * ptr);
int checkBoard(char a[3][3]);
int satsning(int pengar);
int main() {
//VARIABEL DEKLARATION
srand(time(0));
setlocale(LC_ALL, "swedish");
int pengar = 0;
int sats = 0;
int vinstEllerForlust = 0;
int val;
char board[3][3];
char * x = &board[0][0];
val = menu(pengar);
switch(val) {
case 1:
pengar = insattning();
break;
case 2:
exit(1);
}
while(1) {
visaPengar(pengar);
sats = satsning(pengar);
initsieraBoard(x);
vinstEllerForlust = play(board, sats);
if (vinstEllerForlust < 1)
pengar -= sats;
else
pengar += vinstEllerForlust;
}
fflush(stdin);
getchar();
return 0;
}
int satsning(int pengar) {
int sats = 0;
char val;
while (sats == 0 || sats > pengar) {
if (pengar == 0) {
cout << "Du har inga pengar kvar!\n";
Sleep(2000);
exit(1);
}
sats = 0;
cout << "Spela? [J/N]\n";
cout << "Val: ";
cin >> val;
if (val == 'j' || val == 'J') {
cout << "Hur mycket vill du satsa: ";
cin >> sats;
if (sats > pengar)
cout << "Du kan inte satsa så mycket!\n";
}
else
exit(1);
}
return sats;
}
//Spelet
int play(char a[3][3], int sats) {
int vinstGgr = 0;
for (int i = 0; i < 3 ; i++) {
for (int j = 0; j < 3; j++) {
cout <<"["<<a[i][j]<<"] ";
}
cout << "\n";
}
vinstGgr = checkBoard(a);
switch(vinstGgr) {
case 1:
sats *= 2;
break;
case 2:
sats *= 4;
break;
case 3:
sats *= 8;
break;
case 4:
sats *= 16;
break;
case 5:
sats *= 128;
break;
default :
sats = 0;
break;
}
return sats;
}
void visaPengar(int pengar) {
cout << "\nDu har: " << pengar << "kr!" << endl;
}
//Initsiera bräde
void initsieraBoard(char * ptr) {
for (int i = 0; i < 9 ; i++) {
*(ptr + i) = random_sign();
}
}
char random_sign() {
char sign;
int x = rand() % 3 + 1;
switch(x) {
case 1:
sign = 'X';
break;
case 2:
sign = 'P';
break;
case 3:
sign = 'O';
break;
}
return sign;
}
// Alltid visas först.
int menu(int pengar) {
int val;
cout << "---------------\n";
cout << "[1] Sätt in pengar.\n";
cout << "[2] Avsluta\n";
cout << "Val: ";
cin >> val;
return val;
}
int insattning() {
int val;
int insattning;
system("CLS");
cout << "Välj vad du ska sätta in.\n";
cout << "[1] 50kr\n";
cout << "[2] 100kr\n";
cout << "[3] 500kr\n";
cin >> val;
switch(val) {
case 1:
insattning = 50;
break;
case 2:
insattning = 100;
break;
case 3:
insattning = 500;
break;
default :
cout << "Felaktigt värde!\n";
break;
}
return insattning;
}
int checkBoard(char a[3][3]) {
int vinst = 0;
//Check diagonalen - Är båda ifyllda + 2, är bara 1 så +1
if (((a[0][0] == a[1][1]) && (a[0][0] == a[2][2])) && ((a[2][0] == a[1][1]) && (a[2][0] == a[0][2])))
vinst += 2;
else if (((a[0][0] == a[1][1]) && (a[0][0] == a[2][2])) || ((a[2][0] == a[1][1]) && (a[2][0] == a[0][2])))
vinst += 1;
//Horissontellt
if ((a[0][0] == a[0][1]) && (a[0][0] == a[0][2]))
vinst += 1;
if ((a[1][0] == a[1][1]) && (a[1][0] == a[1][2]))
vinst += 1;
if ((a[2][0] == a[2][1]) && (a[2][0] == a[2][2]))
vinst += 1;
//Lodrätt
if ((a[0][0] == a[1][0]) && (a[0][0] == a[2][0]))
vinst += 1;
if ((a[0][1] == a[1][1]) && (a[0][1] == a[2][1]))
vinst += 1;
if ((a[0][2] == a[1][2]) && (a[0][2] == a[2][2]))
vinst += 1;
return vinst;
}