
18.03.2010, 23:35
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
вызвать функцию  все варианты естественно включают и одинаковые .....
варианты хода считаются разными на том основании что ходы делаются в разное время (что в теории игр не означает эквивалентными вариантами)
Код:
int a[3][3];
int step(int mode)
{
int i,j,fl;
for(i=0,fl=0;i<3;i++)
for(j=0;j<3;j++)
{
if(a[i][j]==0)
{
a[i][j]=mode;
step(mode*(-1));
a[i][j]=0;
fl=1;
}
}
if(fl==0)
{
printf("\r\n===================\r\n");
for(i=0;i<3;i++)
{
printf("*---*---*---*\r\n");
for(j=0;j<3;j++)
{
switch(a[i][j])
{
case 0:
printf("| ");
break;
case 1:
printf("| X ");
break;
case -1:
printf("| O ");
break;
}
}
printf("|\r\n");
}
printf("*---*---*---*\r\n");
}
return 0;
}
а если тебе нужны все варианты ... то эта задача к теории игр вооообще не относится
представь себе что имеешь 10 битовое число ,то тебе нужно всего лишь выбрать все комбинации где количество битов 1 равно количеству 0 .... это заваулированное условие твоей задачи ...
Последний раз редактировалось Delimiter; 18.03.2010 в 23:42..
|
|
|