porfavor ayudenme!!!
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
saludos
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
(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