
06.06.2008, 15:05
|
|
Новичок
Регистрация: 04.06.2008
Сообщений: 6
С нами:
9439235
Репутация:
1
|
|
Сообщение от Delimiter
хммм .... классы тут как-то боком!
их придется впихивать совсем без их преимуществ
давай набросаю суть а ты ее засунешь хоть в классы , хоть в мусорку!
будем обозначать символами
a-кресло(arm chair)
c-стул(chair)
t-стол(table)
s-шкаф(shelves)
Код:
#defane MAX_STEPS 50
char a[3][3]; //третий ряд забит нулями
char steps[MAX_STEPS][7];
char rez[3][3];
int abs(int numb)
{
if(numb<0)
return numb*(-1);
else
return numb;
}
void step(int step,int pusto_x,int pusto_y)
{
int i,j,k;
if(steps<MAX_STEPS-1)
{
for(i=0;i<2;i++)
for(j=0;j<3;j++)
if(i!=pusto_y || j!=pusto_x)
if(i==pusto_y || j==pusto_x)
if(abs(pusto_x-j)==1)
{
// могем менять местами
a[pusto_y][pusto_x]=a[i][j];
a[i][j]=' ';
for(k=0,fl=0;k<MAX_STEPS && strlen((char *)&steps[k][0])>6 && fl==0;k++)
if(strcmp(a,rez)==0)
fl=1;
if(strcmp(a,rez)==0)
{
// вываливай весь steps
// хоть в файл хоть на печать
fl=1;
}
if(fl==0)
{
strcpy((char *)&steps[k][0],a);
step(step+1,j,i);
strcpy((char *)&steps[k][0],"");
}
a[i][j]=a[pusto_y][pusto_x];
a[pusto_y][pusto_x]=' ';
}
}
else
return ;
}
void main()
{
int i,j;
// подготавливаем массивы
for(i=0;i<MAX_STEPS;i++)
strcpy((char *)&steps[i][0],"");
a[0][0]='t'; // исходный массив
a[0][1]='c';
a[0][2]='s';
a[1][0]='c';
a[1][1]=' ';
a[1][2]='a';
a[2][0]=0; // забиваем нулями для того чтобы
a[2][1]=0; // сформировалась идентифицирующая строка
a[2][2]=0;
rez[0][0]='t'; // массив который нужно получить
rez[0][1]='c';
rez[0][2]='a';
rez[1][0]='c';
rez[1][1]=' ';
rez[1][2]='s';
rez[2][0]=0; // забиваем нулями с целью как и
rez[2][1]=0; // для массива a
rez[2][2]=0;
steps(0,1,1);
}
КОД НЕ ПРОВЕРЯЛ!!! БИЛ ПРЯМО В ОКНО СООБЩЕНИЙ!
ну мне простительно у меня репутация маленькая 
да и решение таких задач тут дешево стоит!
Спасибо большущее!!!...но все же...пожалуйста...можно и эту программу тоже поподробнее..нам давали только теорию практически...примеров совсем мало...на классы дали только пример класса комплексного числа...я сам понимаю, что в принципе там классы ни к чему...но надо чтобы прога была обязательно с ними...
я с классами совсем пока не дружу...а задачу надо в понедельник сдать...
Заранее спасибо!
|
|
|