ورود

نسخه کامل مشاهده نسخه کامل : مسئله n وزیر



mo.mo
22-05-2009, 11:39
سلام دوستان.
من دنبال الگریتم مسئله n وزیر میگردم. چون به نظر من پیچیده میاد دنبال یه توضیح ویه کدساده از این برنامه میگردم تا بتونم خودم بنویسمش.
در ضمن باید به روش عقبگرد هم باشه.

فاطـمه
22-05-2009, 15:32
سلام
این کد برای 8وزیره
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
و این:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فاطـمه
22-05-2009, 15:37
این سایتم جالبه:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

mo.mo
23-05-2009, 10:25
از کمکتون ممنون.
ولی میشه این کد رو با vcpp هم قرار بدین.

farshidshd
24-05-2009, 20:21
سلام
این کد وزیر ها رو سطر به سطر جا به جا میکنه
واسه اینکه بخوایم ستون به ستون تست کنه چی کار باد کنیم؟؟؟

فاطـمه
25-05-2009, 10:50
سلام
این کد وزیر ها رو سطر به سطر جا به جا میکنه
واسه اینکه بخوایم ستون به ستون تست کنه چی کار باد کنیم؟؟؟
سلام
منظورتون چیه؟
ما تو مسئله nوزیر توی هر سطر تنها می تونیم یه وزیر داشته باشیم
پس فقط اونا رو تو ستونا جابه جا می کنیم:20:

mo.mo
25-05-2009, 10:59
کدی که شما نوشتین توش با کلاس ها کار شده ولی من دنبال یه کد با روش عقب گرد میگردم که هم ساده تر باشه و هم منم بتونم یه چیزلیی لزش بفهمم.
ممنون.

farshidshd
25-05-2009, 20:10
سلام
منظورتون چیه؟
ما تو مسئله nوزیر توی هر سطر تنها می تونیم یه وزیر داشته باشیم
پس فقط اونا رو تو ستونا جابه جا می کنیم:20:

وزیر ها سطر به سطر جا به جا میشن
من میخوام ستون به ستون تست کنه و جابه جا کنه
یعنی به جای اینکه توی سطر یه وزیر داشته باشیم
توی ستون یه وزیر باشه فقط

فاطـمه
27-05-2009, 09:58
سلام اینم یکم ساده تر

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

farshidshd
27-05-2009, 10:12
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


این چیه فاطمه؟؟×!!

فاطـمه
27-05-2009, 10:33
چرا این جوری شده؟!

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

farshidshd
28-05-2009, 10:34
این الان ستونی جا به جا میکنه؟؟؟
این کد رو خودت دادی بهم اجراش کن
متوجه میشی که سطری جا به جا میکنه
من میخوام همین ستونی جابه جا بشه
یعنی تو هر ستون یه وزیر که همدیگر رو گارد نکنه...


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فاطـمه
31-05-2009, 18:10
خب نهایتا جای I, j عوض می شه تو آرایه
چه لزومی داره این کار رو بکنید؟

farshidshd
31-05-2009, 19:29
خب نهایتا جای I, j عوض می شه تو آرایه
چه لزومی داره این کار رو بکنید؟


استاد خواسته بود
ممنونم
درستش کردم

محمد پاكدل
19-06-2009, 16:09
in proje 8 vazer baray fatemeh and farshid
//gives a start home adress & cheks if 8 vazir could be placed by that start home.
#include<iostream.h>
#include<conio.h>

void place(int,int,int [][8],int [][8]);
void print(int,int,int [][8],int [][8]);

int main( )
{
clrscr( );
int const k=8;
int p[k][k];
int placed[k][k];
int a,b;
for(a=1;a<=8;a++)
{for(b=1;b<=8;b++)
{p[a][b]=1;
placed[a][b]=0;
}
}
for(a=1;a<=8;a++)
{ for(b=1;b<=8;b++)
{
place(a,b,p,placed);
print(a,b,p,placed);
}
}
getch( );
return(0);
}

void place(int i,int j,int p[][8],int placed[][8])
{
placed[i][j]=1;
int a,b,k;
for(k=1;k<=8;k++)
{ p[i][k]=0;
p[k][j]=0;
if(k+i<=8 && k+j<=8) {p[k+i][k+j]=0;}
if(k+i<=8 && j-k>=1) {p[k+i][j-k]=0;}
if(i-k>=1 && k+j<=8) {p[i-k][k+j]=0;}
if(i-k>=1 && j-k>=1) {p[i-k][j-k]=0;}
}
for(a=1;a<=8;a++)
{ for(b=1;b<=8;b++)
{ if(p[a][b]==1) place(a,b,p,placed);
}
}
}

void print(int i,int j,int p[][8],int placed[][8])
{
int a,b;
int c=0;
for(a=1;a<=8;a++)
{for(b=1;b<=8;b++)
{if(placed[a][b]==0) cout<<"_";
if(placed[a][b]==1)
{ c++; cout<<"v";
}
}cout<<"\n";
}
if(c!=8)cout<<"could not place all 8 vazir"
<<"for the start home("<<i<<","<<j
<<")!press any key to continue:\n\n\n";
if(c==8)
{cout<<"****all 8 vazir placed with starthome("<<i<<","
<<j<<")!****\n\n\n";
}

for(a=1;a<=8;a++)
{ for(b=1;b<=8;b++)
{ p[a][b]=1;
placed[a][b]=0;
}
}
getch( );
}

محمد پاكدل
19-06-2009, 16:14
age on moshkel dareh pas az in poroje estefadeh koned
#include <iostream.h>
#include <conio.h>
#include <_defs.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;
}

mehazirak
22-06-2009, 14:33
سلام
من تابع اون رو توی c# نوشتم
ب

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

bozgoord
22-11-2009, 11:23
کدوم یکی ابتدایی تره و میشه به Nوزیر تبدیلش کرد