porfavor ayudenme!!!

shapii
30 de Enero del 2006
Hola necesito un programa en C++ que me imprimar la posicion de 8 reinas en un tablero de ajedrez sin que se coman entre sii...tambien necesito yn programa que imprima la posicion en que se mueve un alfil en un tableroque imprima con asteriscos las diagonales en las que se desplaza e imprima una B donde es casilla blanca y una N donde es negra y una A el alfil....porfavor ayudanme..te lo agradecere muchoote..porfavor lo mas rapiido posible :D

saludos

Noel Solw
30 de Enero del 2006
Te envio el programa con el problema de N reinas
(en nuestro caso N = 8).
Lo del alfil no lo entendi.
Si necesitas tengo el recorrido del caballo.


// program k7c5 - page 137
// recursive queen's arrange.
// 8/2/2002
// written in Borland CPP ver 3.1

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <dos.h>

#define N 8
#define D 2*N - 1
#define OF N - 1
#define dx 5
#define dy 2
#define xo (80 - N*dx)/2
#define yo (25 - N*dy)/2

int a[N],d1[D],d2[D];

void Init()
{
for(int i = 0;i < N;i++)
a[i] = 0;
for(i = 0;i < D;i++)
d1[i] = d2[i] = 0;
} // INIT

void Board()
{
int x;
clrscr();
gotoxy(xo+6,2);
cout << "recursive queen's arrange";
for(int y = yo;y <= yo + N*dy;y += dy)
{
x = xo;
gotoxy(x,y);
for(;x < xo+N*dx;)
{
cout << "+";
x++;
for(int i = 0;i < 4;i++)
{
cout << "-";
x++;
}
}
cout << "+";
}
for(y = yo+1;y < yo + N*dy;y += dy)
for(x = xo;x <= xo+N*dx;x+=dx)
{
gotoxy(x,y);
cout << "|";
}
} // BOARD

void ShowQueen(int i,int j)
{
gotoxy(xo+j*dx+2,yo+i*dy+1);
cout << "<>";
delay(300);
} // SHOW QUEEN

int Process(int i,int j)
{
if(i == N)
return 1;
if(a[j] || d1[OF+j-i] || d2[j+i])
return 0;
a[j]++;
d1[OF+j-i]++;
d2[i+j]++;
for(int k = 0;k < N;k++)
if(Process(i+1,k))
{
ShowQueen(i,j);
return 1;
}
a[j] = d1[OF+j-i] = d2[i+j] = 0;
return 0;
} // PROCESS

void main()
{
textmode(BW80);
_setcursortype(_NOCURSOR);
char a = '*';
for(int j = 0;j < N && a != 27;j++)
{
Init();
Board();
Process(0,j);
gotoxy(xo+5,23);
cout << "press any key - ESC for exitn";
a = getch();
}
gotoxy(xo+5,23);
cout << "end of program - good bye ! ! !n";
getch();
_setcursortype(_NORMALCURSOR);
} // MAIN