LeaveNhA
Doçent
- Katılım
 - 4 Aralık 2011
 
- Mesajlar
 - 597
 
- Reaksiyon puanı
 - 5
 
- Puanları
 - 18
 
Bir satranç tahtasına sırasıyla 4 kale yerleştiriliyor, birbirini tehdit ettikleri taktirde yerleştirme işlemi baştan yapılıyor, birbirilerini tehdit etmicekleri şekilde bir konumlama sağlayan programı c/c++ ile yazınız...
ps: prosedürel ve global değişken kullanımı var...
nesne yönelimlisini ilk fırsatta yazıcam.
	
	
	
		
			
			ps: prosedürel ve global değişken kullanımı var...
nesne yönelimlisini ilk fırsatta yazıcam.
		PHP:
	
	#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
//srand( time(NULL) );
const int X_LIM = 8, Y_LIM = 8;
void sifirla( bool tahta_[X_LIM][Y_LIM], const int& x_lim_, const int& y_lim_ )
{
    for( int x_ = 0; x_ < x_lim_; x_++ )
        for( int y_ = 0; y_ < y_lim_; y_++ )
            tahta_[x_][y_] = false;
}
int& konumla( int& rkm_, int duzey_ )
{
    return (rkm_ = rand() % duzey_);
}
bool kontrol( bool tahta_[X_LIM][Y_LIM], int& x_, int& y_, const int& x_lim_, const int& y_lim_ )
{
    while( tahta_[x_][y_] )
        konumla( x_, x_lim_ ), konumla( y_, y_lim_ );
    tahta_[x_][y_] = true;
    cout << "bir kale " << x_ << " - " << y_ << " konumlarına konuşlandırılmış ve tehditler için kontrol ediliyor." << endl;
    for( int _x = 0; _x < x_lim_; _x++ )
        if( tahta_[_x][y_] && _x != x_ ) // bütün argümanların sınırlar içinde olduğunu konumlama fonksiyonunda doğrulamıştık !
            return true;
    for( int _y = 0; _y < y_lim_; _y++ )
        if( tahta_[x_][_y] && _y != y_ )
            return true;
    return false;
}
int main()
{
    bool tahta_[X_LIM][Y_LIM];
    bool deneme_ = true;
    int knm_x, knm_y;
    while( deneme_ )
    {
        deneme_ = false;
        sifirla( tahta_, X_LIM, Y_LIM );
        for( int at_ = 0; at_ < 4; at_++ )
        {
            konumla( knm_x, X_LIM ), konumla( knm_y, Y_LIM );
            if( kontrol( tahta_, knm_x, knm_y, X_LIM, Y_LIM ) )
                {
                    cout << "Çakışma var !" << endl;
                    deneme_ = true;
                    break;
                }
        }
    }
    cout << " writin' by Seçkin Kükrer !" << endl;
    system( "PAUSE" );
    return 0;
}