#include <iostream.h>
#include <string.h>
#include <windows.h>
#include <ctime> 
#include <cstdlib>
#include <stdlib.h>
//using namespace std;

// ----------------------------------------
// Ventti -korttipeli (versio 3.0)
// Keravan ammattiopiston koulutehtävä
// Toisen vuoden ohjelmoinninkurssille.
// - Tehnyt: Karko
// ----------------------------------------

int main()
{

    valikko:

// ----------
// Päävalikko
// ----------

cout << "" << endl;
cout << "       Ventti " << endl;
cout << "      ========" << endl;
cout << "" << endl;
cout << "Pelin idea on saada 21." << endl;
cout << "Jos korttiesi lukumaara" << endl;
cout << "menee yli 21, haviat." << endl;
cout << "Toinen tapa voittaa, on" << endl;
cout << "saada lahemmaksi venttia" << endl;
cout << "kuin tietokone, eika menna" << endl;
cout << "yli ventista. Assa = 1." << endl;
cout << "Voit nostaa max 5 korttia." << endl;
cout << "" << endl;
cout << "       ___________" << endl;
cout << "      /          /" << endl;
cout << "     /          / " << endl;
cout << "    /          /  " << endl;
cout << "   /    21    /   " << endl;
cout << "  /          /    " << endl;
cout << " /          /     " << endl;
cout << "/__________/      " << endl;
cout << "" << endl;
cout << "" << endl;
cout << "" << endl;

// -----------
// Määritykset
// -----------

int omakasi = 0;
int konekasi = 0;
int ventti = 21;
int kaytto = 1;
int jatko;
int uusiko;

// -----------------------
// Tietokoneen
// Korttigeneraattori 1-13
// -----------------------

int kortti2 = 0;
int kortti2a = 0;
int kortti2b = 0;

srand((unsigned)time(0));
for (int i = 0; i<1;i++){
kortti2a = rand()%24;
}

srand((unsigned)time(0));
for (int ii = 0; ii<1;ii++){
kortti2b = rand()%24;
}

kortti2 = kortti2a + kortti2b;

if (kortti2 > 30){
kortti2 = kortti2 / 2;
}

if (kortti2 < 10){
kortti2 = kortti2 * 2;
}


// -----------------------
// Pelaajan
// Korttigeneraattori 1-13
// -----------------------

int kortti = 0;

int kortti1a = 0;
int kortti1b = 0;
int kortti1c = 0;
int kortti1d = 0;
int kortti1e = 0;

//Jako 1.
srand((unsigned)time(0));
for (int e1 = 0; e1<1;e1++){
kortti1a = rand()%13;
}

//Jako 2.
srand((unsigned)time(0));
for (int e2 = 0; e2<2;e2++){
kortti1b = rand()%13;
}

//Jako 3.
srand((unsigned)time(0));
for (int e3 = 0; e3<3;e3++){
kortti1c = rand()%13;
}

//Jako 4.
srand((unsigned)time(0));
for (int e4 = 0; e4<4;e4++){
kortti1d = rand()%13;
}

//Jako 5.
srand((unsigned)time(0));
for (int e5 = 0; e5<5;e5++){
kortti1e = rand()%13;
}

kortti = kortti1a;

// -------
// Aloitus
// -------

int alku;

cout << "Aloitetaanko peli?" << endl;
cout << "Kylla = 1 / Ei = 0 ...> ";
cin >> alku;
cout << "" << endl;

if (alku != 1)
{
system("cls");
goto lopetus;
}

// ------------------------
// *** Peli osuus alkaa ***
// ------------------------
konekasi = kortti2;
omakasi = 0;

   peliosuus:

kaytto = kaytto + 1;
// ----------------------
// Korttitilanne ja nosto
// ----------------------
omakasi = kortti;

//Ensimmäisen kortin nosto
cout << "" << endl;
cout << "Nostit kortin, tuloksesi on nyt: " << omakasi << endl;
cout << "Otatko uuden kortin?" << endl;
cout << " Kylla = 1 / Ei = 0 ..> ";
cin >> jatko;

if (jatko != 1)
{
cout << "Lopetit summaan: " << omakasi << endl;
cout << "Tietokone sai: " << konekasi << endl;
goto saldo;
}

//Jatketaan --->

if (kaytto == 1){
kortti = kortti1a;
goto peliosuus;
}

if (kaytto == 2){
kortti = kortti + kortti1b;
goto peliosuus;
}

if (kaytto == 3){
kortti = kortti + kortti1c;
goto peliosuus;
}

if (kaytto == 4){
kortti = kortti + kortti1d;
goto peliosuus;
}

if (kaytto == 5){
kortti = kortti + kortti1e;
goto peliosuus;
}

if (kaytto == 6 || kaytto > 6){
cout << "Et voi nostaa enempaa kortteja." << endl;
goto saldo;
}

// -----------------------------
// *** Tarkistus osuus alkaa ***
// -----------------------------

        saldo:
//Korttien loppusaldo
cout << "" << endl;
cout << "Sait tulokseksi: " << omakasi << endl;
cout << "Tietokoneen tulos: " << konekasi << endl;


//Loppusaldo tarkistuksia

//Ventti
if (omakasi == ventti)
{
cout << "" << endl;
cout << "Tuloksesi on ventti! Voitit." << endl;
cout << "" << endl;
}

//Suurempi kuin kone, ei venttia
if (omakasi > konekasi && omakasi < ventti)
{
cout << "" << endl;
cout << "Tuloksesi oli suurempi kuin tietokoneen." << endl;
cout << "Voitit tietokoneen tuloksen, muttet saanut venttia." << endl;
cout << "" << endl;
}

//Suurempi kuin kone, yli ventin
if (omakasi > konekasi && omakasi > ventti)
{
cout << "" << endl;
cout << "Havisit, vaikka tuloksesi oli suurempi kuin" << endl;
cout << "tietokoneella, koska menit yli ventista." << endl;
cout << "" << endl;
}

//Pienempi kuin kone, ei venttia
if (konekasi > omakasi && omakasi > ventti)
{
cout << "" << endl;
cout << "Havisit. Tuloksesi oli joko pienempi kuin" << endl;
cout << "tietokoneella, tai menit yli ventista." << endl;
cout << "" << endl;
}

//Molemmille venttitasapeli
if (konekasi == ventti && omakasi == ventti)
{
cout << "" << endl;
cout << "Sina, seka tietokone saitte ventin. Tasapeli." << endl;
cout << "" << endl;
}

//Tasapeli, muttei ventti
if (konekasi == omakasi && konekasi != ventti && omakasi != ventti)
{
cout << "" << endl;
cout << "Molemmat saitte saman tuloksen, muttette venttia. Ei voittoa." << endl;
cout << "" << endl;
}

     uusi:
// ----------
// Uudelleen?
// ----------
cout << "" << endl;
cout << "Haluatko pelata uudelleen?" << endl;
cout << "Kylla = 1 / Ei = 0 ..> ";
cin >> uusiko;

if (uusiko == 1)
{
system("cls");
goto valikko;
}

if (uusiko != 1)
{
goto lopetus;
}


// -----
// Loppu
// -----

   lopetus:
      system("cls");

// Loppu ascii

cout << "" << endl;
cout << "////////////////////////" << endl;
cout << "|                      |" << endl;
cout << "|           Ventti     |" << endl;
cout << "|     21.              |" << endl;
cout << "|                      |" << endl;
cout << "////////////////////////" << endl;
cout << "" << endl;

      system("PAUSE");
      return 0;
}
