Site icon IT Tutorial

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İ

Exit mobile version