okul da ödev için yapmıştım bunu belki lazım olan kişiler olabilir : )
oyunu daha çok fonksiyonlara döküp 2 boyutlu kart dizisi kullansam epey daha az koddan oluşurdu ama mühim olan bir an önce yapmamdı ödevi o sebeple kod optimizesine hiç vakit ayıramadım ...

programın çalışan halini : www.saho.in/samples/cpp-pisti.zip adresinden indirebilirsiniz
sorularınız için r10 u ve http://www.saho.in/c-ile-consolda-pisti-oyunu/ adresini kullanabilirsiniz

#include <cstdlib>
#include <iostream>

using namespace std;
int atilanlarCpu[5] = {0};
int atilanlarKisi[5] = {0};
    int karo[14] = {0};
    int maca[14] = {0};
    int sinek[14] = {0};
    int kupa[14] = {0};
    

            
int cpuElKart[5] = {0};
int cpuElTip[5] = {0};
int kisiElKart[5] = {0};
int kisiElTip[5] = {0};
int yerElKart[54] = {0};
int yerElTip[54] = {0};
void kartlariGoster(int);
void tipx(int);
void kartx(int);
int puanx(int,int);
int kartVer(int);
int karistir(int);
int main(int argc, char *argv[])
{

            int skorBilgisayarToplam = 0,skorKisiToplam = 0;
    char ad[50];
   cout<<"Adinizi Giriniz : "; 
   gets(ad);
   oyunbaslangic:
                       for(int i = 1; i<=13; i++)  // kartlar olusturuluyor ve daha once kimseye  verilmedigi 1 e kurarak ile tescilleniyor
    {
            karo[i] = 1;
            maca[i] = 1;
            sinek[i] = 1;
            kupa[i] = 1;
            }
int skorKisi =  0,skorBilgisayar = 0;
                 int eldonus =  1;
    cout<<"Bir kart cekiniz ( buyuk kart ceken oyuna ilk baslar )\n";
    system("PAUSE");
    
    srand(time(NULL));
    karistir:
    int karisikKart =  karistir(13);
    int karisikTip =  karistir(4);
    cout<<"Bilgisisayar ";
    tipx(karisikTip);
    cout<<" - ";
    kartx(karisikKart);
    cout<<" Cekti\n";
    system("PAUSE");
    
    int karisikKartx =  karistir(13);
    int karisikTipx =  karistir(4);
    cout<<"Sizin kartiniz ";
    tipx(karisikTipx);
    cout<<" - ";
    kartx(karisikKartx);
    cout<<" ...\n";
    int basla;
    if(karisikKart > karisikKartx)
    {
              basla = 0;
              cout<<"Bilgisayar basliyor";
              }
              else if (karisikKart <  karisikKartx)
              {
                   basla = 1;
                   cout<<"Siz basliyorsunuz\n";
                   }
                   else {
                       cout<<"Kartlariniz aynı yeniden cekiliyor\n";
                       goto karistir;
                       } 
                            
   


   cout<<"\nKartlar karildi ve yerde 4 kart  duruyor\n";
   /*kartVer(1);
   kartlariGoster(1);
   int atilan;
   while(1)
   {
           cin>>atilan;
           tipx(kisiElTip[atilan]);
           cout<<" - ";
           kartx(kisiElKart[atilan]);
           cout<<endl;
           }
   */
 kartVer(2);
 int atilan =  0,tipf,kartf,yer = 4;
 oyun:
      int sayacf =  1,suan = 0,suanx =  0,puan = 0,kagitCpu =  0,kagitKisi = 0;
kartVer(1);
kartVer(0);
   cout<<"Sizin kartlariniz : ";
   kartlariGoster(1);           
   cout<<endl;
 /*cout<<"Pc kartlari : ";
   kartlariGoster(0);           
   cout<<endl;
 cout<<"Yer kartlari : ";
   kartlariGoster(2);           
   cout<<endl;*/
  
   tipx(yerElTip[yer]);
   cout<<" - ";
   kartx(yerElKart[yer]);
   cout<<endl;
   while(1)
   {
   if(basla == 1)  // kullanıcı kart atıyor
   {
           yenidenAt:
               cout<<"Atmak istediginiz kartin rakamina basiniz : ";
           cin>>atilan;
           if(atilan<1 && atilan>4)
           {
                       cout<<"\nHatalı bir secim yaptiniz!\n";
                       goto yenidenAt;
                       }
                       else
                       {
                               for(int b=1;b<=4;b++)
            {
                    if(atilanlarKisi[b] ==  atilan)
                    {
                                       cout<<"\nHata  : "<<atilan<<" daha once atilmis!\n";
                                    goto  yenidenAt;
                                    }
                    }
                    suanx++;
                    atilanlarKisi[suanx] = atilan;
                           
                           }
                           
                       cout<<"\nSen : ";
             tipx(kisiElTip[atilan]);  
            cout<<" - ";
          kartx(kisiElKart[atilan]);
            cout<<" Attin.";
            
            if( (yerElKart[yer]==kisiElKart[atilan] )  || ( kisiElKart[atilan] ==  11 && yerElKart[yer]!=0) )
            {
                if(yer  == 1)
                { 
                       if(yerElKart[yer] ==  11)
                       {
                                         cout<<"\n(Pisti  X Pisti Yaptin)\n";  
                       skorKisi+=20;
                       }
                       else if(kisiElKart[atilan] !=  11)
                       {
                           cout<<"\n(Pisti  Yaptin)\n"; 
                           skorKisi+=10;
                           }
                           else
                           {
                               
                             cout<<"\n(ALDIN)\n";
                             }
                       }
                       else 
                       {
                            cout<<"\n(ALDIN)\n";
                            }
                               yer++;
                                  yerElTip[yer] = kisiElTip[atilan];
                                  yerElKart[yer] = kisiElKart[atilan];
          cout<<"\nAldiginiz kartlar : ";
              for(int g = 1;g<=54;g++)  
              {
                      
          if(g<=yer)
          {
                     kagitKisi++;
                    tipx(yerElTip[g]); cout<<" - "; kartx(yerElKart[g]);  if(g!=yer) cout<<", ";
                    puan = puanx(yerElTip[g],yerElKart[g]);
                    skorKisi+=puan;
                    }
                yerElKart[g]  = 0;
                yerElTip[g]  = 0;                 
                    }
                        yer = 0;
                             }
                             else 
                             {
                                
                           yer++;
                                  yerElTip[yer] = kisiElTip[atilan];
                                  yerElKart[yer] = kisiElKart[atilan];
                                //  cout<<"sen  alamadin devam";
                                  }
                                 
            basla = 0;
            } else { /// cpu kart atıyor
                   yenidenSec:
            atilan = karistir(4);
            for(int h=1;h<=4;h++)
            {
                    if(atilanlarCpu[h] ==  atilan)
                    {
                                    goto  yenidenSec;
                                    }
                    }
                    suan++;
                    atilanlarCpu[suan] = atilan;
            cout<<"Pc  : ";
           tipx(cpuElTip[atilan]);  
            cout<<" - ";
            kartx(cpuElKart[atilan]);
            cout<<" Atti.";
            if( (yerElKart[yer]==cpuElKart[atilan] )  || (cpuElKart[atilan] ==  11 && yerElKart[yer]!=0) )
            {
                 if(yer  == 1)  
                 {
                        ////////
                                  if(yerElKart[yer] == 11)
                       {
                                         cout<<"\n(Pisti  X Pisti Yapti)\n";  
                       skorBilgisayar+=20;
                       }
                       else if(cpuElKart[atilan] !=  11)
                       {
                           cout<<"\n(Pisti  Yapti)\n"; 
                           skorBilgisayar+=10;
                           }
                           else
                           {
                               
                             cout<<"\n(ALDI)\n";
                               }
                        ///////////
                        }
                        else 
                        {
                             cout<<"\n(ALDI)\n";
                             }
            yer++;
                                  yerElTip[yer] = cpuElTip[atilan];
                                  yerElKart[yer] = cpuElKart[atilan];
                 for(int g = 1;g<=54;g++)  
              {
                           if(g<=yer)
          {
                    kagitCpu++;
                    puan = puanx(yerElTip[g],yerElKart[g]);
                    skorBilgisayar+=puan;
                    }
                      yerElKart[g] = 0;
                yerElTip[g]  = 0;                 
                    }
                      yer = 0;
                             }
                             else 
                             {
                       yer++;
                                  yerElTip[yer] = cpuElTip[atilan];
                                  yerElKart[yer] = cpuElKart[atilan];
                        
                                 // cout<<"pc  alamadi devam";
                                  }
            basla = 1;
            }
          /*  cout<<"\n yerdeki kartlar = ";
            kartlariGoster(2);
            */ cout<<endl;
sayacf++;
   if(sayacf==9)
   {
                eldonus++;
                if(eldonus  == 7)
                {
                           break;
                           }
                           else 
                           {
                           
               goto oyun;
               }
                }
}
cout<<"\nKartlar bitti... Sayim  yapiliyor....";
if(kagitKisi > kagitCpu)
{
             skorKisi+=3;
             }
             else if(kagitKisi < kagitCpu)
             {
                  skorBilgisayar+=3;
                  }
                  else
                  {
                      // kagit sayisi esit bir sey  yapmiyoruz.
                  }
cout<<"\nBilgisayar : "<<skorBilgisayar<<", "<<ad<<" : "<<skorKisi;
skorBilgisayarToplam +=  skorBilgisayar;
skorKisiToplam +=  skorKisi;
cout<<endl;
int giris;
cout<<"Devam etmek istiyor musunuz? (Devam : 1 / Bitir : 2)";
cin>>giris;

if(giris == 1)
{
         goto oyunbaslangic;
         
         }
         else
         {
             /////
cout<<"\nToplam; Bilgisayar : "<<skorBilgisayarToplam<<", "<<ad<<" : "<<skorKisiToplam;
cout<<endl;
if(  skorBilgisayarToplam > skorKisiToplam)
{
    cout<<"Bilgisayar Kazandi!";
}
else if( skorBilgisayarToplam <  skorKisiToplam )
{
     cout<<ad<<" Tebrikler Kazandiniz!";
     }
     else
     {
         cout<<"Berabere kaldiniz";
         } 
         }
    cout<<endl;
    system("PAUSE");

    return EXIT_SUCCESS;
}
int puanx(int tip,int kart)
{
    int puanTemp = 0;
 if(kart == 1 || kart == 11)// as ve vale ise 1 puan
 {
         puanTemp = 1;
         }
         else if(tip == 1 &&  kart == 10)
         {
              
              puanTemp = 3; // tip =1 yani karo ve 10 luysa 3  puan 
              }
              else if(tip == 3  && kart ==2)//  sinek 2 ise 2 puan
              {
                   puanTemp = 2;
                   }
    return puanTemp;
}
void kartx(int id)
{
     switch(id)
     {
               case 1:  cout<<"As"; break;
     case 11: cout<<"Vale"; break;
     case 12: cout<<"Kiz"; break;
     case 13: cout<<"Papaz"; break;
     default: cout<<id; break;
     
     } 
     }
void tipx(int id)
{
     
if(id == 1)
{
       cout<<"Karo";
}
else if(id == 2)
{
    
cout<<"Maca";    
}
else if(id ==3)
{
     cout<<"Sinek";
     }
     else if(id == 4)
     {
          cout<<"Kupa";
          }


}

void kartlariGoster(int kim)
{
 
   for(int k = 1; k<=4;k++)
   {
     if(kim == 0)
     {
            
            cout<<" ("<<k<<") ";
            tipx(cpuElTip[k]);
            cout<<" - ";
            kartx(cpuElKart[k]);
     
            }
            else if(kim == 1)
            {
                 
            cout<<" ("<<k<<") ";
            tipx(kisiElTip[k]);
            cout<<" - ";
            kartx(kisiElKart[k]);
                 }
                 else if(kim ==2)
                 {
                         cout<<" ("<<k<<") ";
            tipx(yerElTip[k]);
            cout<<" - ";
            kartx(yerElKart[k]);
                      }
                      if(k<4)       cout<<", ";
                 
}   
           
}
int karistir(int limit)
{
    int sayi = (rand() % limit )  + 1;
    return sayi;
    }
int kartVer(int kim)
{
    int el = 0,sayisi = 1,kart=0,tip=0,cikmismi=0;

        for(int h=1;h<=4;h++)
            {
                    if(kim  == 0 )
                    {
                           atilanlarCpu[h] = 0;
                           }
                            else if(kim ==  1) 
                           {
                                 atilanlarKisi[h] = 0;
                                 }
                    
                    }
         
 while(1)
 {
  kart = karistir(13);     
  tip = karistir(4);
  if(tip == 1 )
  {
         if(karo[kart] ==  1)
         {
                       cikmismi = 0;
                                         if(kim == 0)
{
                             
                       cpuElKart[sayisi] = kart;
                       cpuElTip[sayisi] = tip;
} 
else if (kim == 1)
{
          kisiElKart[sayisi]  = kart;
                       kisiElTip[sayisi] = tip;
} 
else if(kim == 2)
{
           yerElKart[sayisi]  = kart;
                       yerElTip[sayisi] = tip;   
       }
                       karo[kart] = 0;
                       sayisi++;
                       }
                       
                       } 
                       else if  (tip == 2)
                       {

  if(maca[kart] ==  1)
         {
                       cikmismi = 0;
                                            if(kim == 0)
{
                       cpuElKart[sayisi] = kart;
                       cpuElTip[sayisi] = tip;
} 
else if (kim == 1)
{
          kisiElKart[sayisi]  = kart;
                       kisiElTip[sayisi] = tip;
} 
else if(kim == 2)
{
           yerElKart[sayisi]  = kart;
                       yerElTip[sayisi] = tip;   
       }
                       maca[kart] = 0;
                       sayisi++;
                       }
}
   else if(tip == 3)
{
    if(sinek[kart] ==  1)
         {
                       cikmismi = 0;
                                          if(kim == 0)
{
                       cpuElKart[sayisi] = kart;
                       cpuElTip[sayisi] = tip;
} 
else if (kim == 1)
{
          kisiElKart[sayisi]  = kart;
                       kisiElTip[sayisi] = tip;
} 
else if(kim == 2)
{
           yerElKart[sayisi]  = kart;
                       yerElTip[sayisi] = tip;   
       }
                       sinek[kart] = 0;
                       sayisi++;
                       }
} 
else if(tip == 4)
{
       if(kupa[kart] ==  1)
         {
                       cikmismi = 0;
                       if(kim  == 0)
{
                       cpuElKart[sayisi] = kart;
                       cpuElTip[sayisi] = tip;
} 
else if (kim == 1)
{
          kisiElKart[sayisi]  = kart;
                       kisiElTip[sayisi] = tip;
} 
else if(kim == 2)
{
           yerElKart[sayisi]  = kart;
                       yerElTip[sayisi] = tip;   
       }
                       kupa[kart] = 0;
                       sayisi++;
                       }
       }


  if(sayisi == 5)
  {
            break;
            }
}
       
}