SEKİZ (8) VEZİR OYUNUNUN C++ TA GERÇEKLENMESİ

SEKİZ VEZİR,SATRANÇ TAHTASI ÜZERİNDE HİÇ BİR VEZİRİN BİRBİRLERİNİ TEHDİT ETMEYECEK ŞEKİLDE 8*8 LİK BİR MATRİS ÜZERİNDE DİZİLMESİYLE GERÇEKLENEN BİR OYUNDUR BURDA BEN RANDOM OLARAK YER BULMAYA ÇALIŞTIĞIM İÇİN BAZEN SONUÇ ÇIKMAYABİLİR BUNUN İÇİN BİR KAÇ DEFA KOŞTURULMASI GEREKEBİLİR.ANLAŞILMAYAN YERLERİ SORABİLİRSİNİZ.

#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;

char p[8][8];

void isaretle(int a,int b)
{
    int c=b;
    if(a==7)
     return;
    
     if(b==0&&a<7)
     {
        for(int i=a+1;i<8;i++)
           p[i][++b]=’,’;            
     for(int i=a+1;i<8;i++)
        p[i][0]=’,’;   
     }
     else if(b==7&&a<7)
     {
       for(int i=a+1;i<8;i++)
           p[i][–b]=’,’;     
        for(int i=a+1;i<8;i++)
        p[i][7]=’,’;   
     }
     else if(b!=0&&b!=7&&a<7)
     {
          for(int i=a+1;i<8;i++)
          {
           b++;      
           if(b<8)      
           p[i][b]=’,’;    
           else
           break;
           }
          b=c;
         for(int i=a+1;i<8;i++)
           p[i][b]=’,’;
           b=c;
         for(int i=a+1;i<8;i++)
         {
            b–;    
           if(b>=0)     
           p[i][b]=’,’;   
           else
           break;
           }
     }  
}

void deveci()
{
           for(int i=0;i<8;i++)
           for(int j=0;j<8;j++)        
           p[i][j]=’.’;    
}

bool okay(int a)
{
     int count=0;
     for(int j=0;j<8;j++)
     if(p[a][j]==’.’)
     count++;
    
     if(count==0)
     return false;
     else
     return true;   
}

void start()
{
     int y,count=0;

     for(int i=0;i<8;i++)
     {
        y:    
          int x=rand()%8;
             if(p[i][x]!=’.’)
                goto y;
         
          if(okay(i)==true)
          {    
           p[i][x]=’V’;
            isaretle(i,x);    
          }
          else
          {
          count++;
          break;
          }
     }    

}

void print()
{
    for(int i=0;i<8;i++)
    {
       for(int j=0;j<8;j++)           
        cout<<p[i][j]<<”  “;
        cout<<endl<<endl;   
    }  
    
}

main()
{
      srand(time(NULL));
      deveci();
      start();
      print();
     
     
     
system (“pause”);     
}

MEHMET SALİH DEVECİ

YAZILIM MÜHENDİSİ

Mehmet Salih Deveci

I am Founder of IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience. I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource. I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks. I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients. If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress mehmetsalih.deveci@outlook.com. -                                                                                                                                                                                                                                                 - Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  mehmetsalih.deveci@outlook.com a mail atabilirsiniz.

25 thoughts on “SEKİZ (8) VEZİR OYUNUNUN C++ TA GERÇEKLENMESİ

  • December 23, 2010 at 5:27 pm
    Permalink

    Merhaba çok güzel bir konu teşekkürler..;)

    Benim bir sorum olucaktı? C#’Da console ekranında yazmak istiyorum yardımcı olursanız sevinirim.. :/

    Reply
    • December 23, 2010 at 9:18 pm
      Permalink

      Aslında kodların tamamını C# ekranına entegre etmeniz çok kolaydır…zaten bu kod genel anlamda programlanmıştır bu yüzden C# a entegresi çok kolaydır sanırım kısa sürede gerçekleştirebilirsiniz.

      Reply
  • December 30, 2010 at 3:43 pm
    Permalink

    bu s,stemi console uygulamasına aktaramadım c# kullanıyorum . Bu konuda yardımcı olursanız çok sevinirim. Benim için önemli bir ödev

    Reply
    • December 30, 2010 at 4:00 pm
      Permalink

      nerede hata alıyorsunuz söylerseniz yardımcı olurum yada hatanın adı nedir???

      Reply
  • January 10, 2011 at 4:29 pm
    Permalink

    bu sanırım c++ da yazılmış. bunu c# a nasıl geçirebiliriz acaba.bilmediğim cok terim var ondan sanırım yardımcı olabilirseniz çok sevinirim yada bir iletişim bilgisi verirseniz size ulsassam

    Reply
  • February 17, 2011 at 8:28 am
    Permalink

    Ya benim bunu C de yazmam lazım :S C++ değil 🙂 ama nasıl yapıcamı bi türlü çözemedim yani mantığını anlamadım :SYardım ederseniz çok sevinicem :S

    Reply
    • February 17, 2011 at 1:23 pm
      Permalink

      Merhaba merve hanım….Sadece bu uygulama için konuşuyorum Bu uygulama için yazdığım kod içerisinde sadece cout ve cin için printf ve scanf kullanmanız bununla beraber kütüphane olarak ise #include yerine #include ve #include kullanmanız yeterlidir…Bu değişiklikleri yaptıktan sonra ortaya çıkacak kod C ile yazılmış bir 8 vezir oyunu olmuş olacaktır…

      Reply
      • February 24, 2011 at 1:14 pm
        Permalink

        Çok faydalı bir paylaşım teşekkür ederiz…

        Reply
        • February 24, 2011 at 2:52 pm
          Permalink

          Önemli deil Fatih bey…

          Reply
  • March 8, 2011 at 3:01 pm
    Permalink

    1 aydır c# da ugraşıyorum ve yapamadım artık aptal olduguma inanmaya başladım :S
    ne yaptıysam olmuyor ..

    Reply
    • March 8, 2011 at 4:42 pm
      Permalink

      Estafirullah Yusuf bey…Öncellikle şunu söyliyeyim 8 vezir in C# lık tarafı pek yok çünkü algoritmik bir problemdir…O yüzden öncellikle problemin algoritmasını çıkarıp ardından kodlasanız iyi olur…

      Reply
  • March 9, 2011 at 8:48 pm
    Permalink

    abi yok ya bıktırdı beni artık ..ama ugraşıyorum yinede neden ugraşıyorsam..bir gün biiznillah bu soruyu cözücem cok yakında ..c# da yeni başladım belki bir türlü o yüzden cözemiyorum ama bilmiyorum artık kafayı yetirdi abi..

    Reply
    • March 9, 2011 at 8:55 pm
      Permalink

      Dostum sen algoritmayımı çözemedin yoksa C# tarafındamı problem yaşıyosun???

      Reply
  • March 9, 2011 at 10:06 pm
    Permalink

    algoritmayı cözemedim galiba eger genelde tek algoritmamı kullanılır ? tam olarak bir bilgim yok mehmet abi bu arada meslek lisesi okuyorum..

    Reply
    • March 9, 2011 at 10:07 pm
      Permalink

      meslek lisesi okuyorum dememin sebepi algoritmalar ve sayre konusu işlemedik abi daha yeni yeni yazılıma girdik .. acaba bu soruyu cözmek icin bir algoritmamı bilmek lazım..

      Reply
      • March 10, 2011 at 11:47 am
        Permalink

        EEE yusuf tabiki bu problem sadece algoritmik bir problemdir..İşin matematiğini algoritmasını çözdükten sonra programlaman iyise 1-2 saatte kodlarsın bu problemi…Zaten bu problemdeki en büyük şey Algoritmadır…

        Reply
  • March 10, 2011 at 6:50 pm
    Permalink

    ilk veziri koydugum yere göre bazen 8 tane vezir diziyor bazen de sıkışıyor 7 tane yada daha sacma birşey cıkartıyor acaba nasıl bir algoritma izlemeliyim cözüm icin abi ?

    Reply
  • March 10, 2011 at 7:52 pm
    Permalink

    tmm rabbime cok şükür yaptım..:) bir count degişkeni ile 8 vezirden fazla vezir varsa bir daha random üretiyor.bu sefer başarılı olunuyor : )

    Reply
    • March 10, 2011 at 9:50 pm
      Permalink

      Tebrikler Yusuf :))) işte bu kadarmış:)))

      Reply
  • March 11, 2011 at 8:55 am
    Permalink

    rabbe hamd-ü senalar olsun diyelim..bu arada sen bende eklisin ama hic acmıyorsun abi : ) haberin olsun..

    Reply
    • March 11, 2011 at 9:46 am
      Permalink

      neyi hiç açmıyorum Face imi Msn imi??? Msn i ben nerdeyse hiç kullanmıyom ama face sürekli açık…

      Reply
  • November 28, 2011 at 12:00 pm
    Permalink

    iyi günler 8 vezir problemi konusunda sormam gereken bazı seyler var yardımcı olabilirseniz cok sevinirim

    Reply
  • December 12, 2016 at 11:41 am
    Permalink

    ” SİSTEM BELİRTİLEN DOSYAYI BULAMADI ” HATASI ALIYORUM NE YAPMAM LAZIM 🙁

    Reply
  • May 23, 2019 at 4:28 am
    Permalink

    There are some attention-grabbing cut-off dates in this article but I don’t know if I see all of them heart to heart. There’s some validity but I’ll take hold opinion till I look into it further. Good article , thanks and we would like extra! Added to FeedBurner as properly

    Reply