PDA

نسخه کامل مشاهده نسخه کامل : حل مساله n وزیر یا x-o با استفاده از گراف یا درخت



سارا نیکو
28-05-2009, 23:53
واسه درس هوش مصنوعی یه پروژه داده استادم که یکی از الگوریتمای n وزیر یا x-o یا مثل اینارو با استفاده از گراف یا درخت یا چیزایی که تو هوش مطرحه حل کنیم.
اگه میشه و کسی میتونه کمک کنه..
ممنونم:31::40:

DaneshD
29-05-2009, 13:19
بد نمیشه خدای نکرده شما یه کم زحمت برای درسای خودتونم بکشید! اینجا سایت حل تکالیف دانشجویی و دانش آموزی نیست! اینهم تقلب و دزدی محسوب میشه و باعث میشه پس از پایان درستون مهندس بیبسواد کامپیوتر سرهم کن بشید و آبروی مهندسای با استعداد کشورمون رو هم ببرید!

در ضمن، توی همین فروم، دقیقا چند سطر پایینتر "فاطمه" یک کد نمونه برای 8 وزیر گذاشته که قشنگ میتونه به هرکسی که بخواد inspiration بده که خودش برنامه رو بنویسه. شما حتی سعی نکردید دنبال جوابتون بگردید! شایدم پیداش کردید و دنبال یکی هستید که 100% براتون بنویسه!

سارا نیکو
30-05-2009, 21:55
خوبه که شما مسول کارای مملکتی نشدید....
من به اندازه ی خودم و خیلی بیشتر کارمو بلدم....الگوریتم n وزیرم واسه من کاری نداره....اونو چند ترم پیش تو طراحی الگوریتم باد گرفتم...
من ندیدم سما به همه اینجوری جواب بدید....
من هرچی پست دیدم همه در حد تمرینای مبانی برنامه نویسی بور و دوستان هم همه کمک کرده بودن...
حالا انقدر براتئن سخت بود که خیلی مودبانه بگید جولبی ندارید..
من شاغلم وگرنه انقدر اینا پیگیری نمیکردم...
شانس من بود که اینجارو انتخاب کردم..
sorry که مزاحم اوقاتتون شدم که این جوابو بدید.

فاطـمه
31-05-2009, 17:59
سلام دوست من
برنامه nوزیر رو با الگوریتم خاصی می خواین؟
من خودم چند تا برنامه از nqueen گذاشتم تو این سایت اونا کارتون رو راه ننداخت

محمد پاكدل
15-06-2009, 10:34
#include <iostream.h>
#include <conio.h>
int board[8][8]={0};
int value[8][8]={
{2,3,4,4,4,4,3,2},
{3,4,6,6,6,6,4,3},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{3,4,6,6,6,6,4,3},
{2,3,4,4,4,4,3,2}};
int row[8]= {-2,-2,-1,1,2,2,1,-1};
int col[]={-1 , 1 , 2 , 2 , 1 , -1 , -2 , -2 };
int satr,soton,count=0,min=8;
//************************************************** ***
void getfirstvalue();
void print();
void changevalue();
int move();
//************************************************** ***
int main()
{
getfirstvalue();
++count;
print();
while(move())
{
getch();
++count;
print();
}
getch();
return 0;
}
//************************************************** ***
void getfirstvalue()
{
cout<<"enter the satr and soton for start :\n";
do{
cout<<"enter satr : ";
cin>>satr;
}while(satr > 8 || satr < 1);
do{
cout<<"enter soton : ";
cin>>soton;
}while(soton > 8 || soton < 1);
board[(satr-1)][(soton-1)]=1;
value[satr-1][soton-1]=0;
changevalue();
}
//************************************************** ***
void print()
{
int i,j;
cout<<"satr : "<<satr<<"\t\tsoton"<<soton<<"\n";
for(i=0;i<8;i++){
for(j=0;j<8;j++){
cout<<" "<<board[i][j]<<" ";
}
cout<<"\n";
}
cout<<"-------------------------------------------------\n";
for(i=0;i<8;i++){
for(j=0;j<8;j++)
cout<<" "<<value[i][j]<<" ";
cout<<"\n";
}
}
//************************************************** ***
void changevalue()
{
int number,x[8],y[8];
for(number = 0; number < 8 ; number++){
x[number] = satr + row[number];
y[number] = soton + col[number];
if(x[number] > 0 && x[number] <= 8 && y[number] > 0 &&
y[number] <= 8 && board[(x[number]-1)][(y[number]-1)] != 1 )
value[x[number]-1][y[number]-1]--;
}
}
//************************************************** ***
int move()
{
int i,x[8],y[8],z,t;
min=8;
for(i=0;i<8;i++){
if(row[i]<-2)
row[i]+=1;
x[i]=satr+row[i];
y[i]=soton+col[i];
if( x[i] > 0 && x[i] <= 8 && y[i] > 0 && y[i] <= 8 &&
board[x[i]-1][y[i]-1] != 1)
if(value[x[i]-1][y[i]-1] <=min){
min=value[x[i]-1][y[i]-1];
z=x[i],t=y[i];
}
}
if(min > 7 || min < -1)
return 0;
if(z > 8 || z <= 0 || t > 8 || t <= 0 || board[z-1][t-1])
return 0;
satr=z;
soton=t;
board[z-1][t-1]=1;
value[z-1][t-1]=0;
changevalue();
return 1;
}