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;
}