Beruflich Dokumente
Kultur Dokumente
#include <fstream>
#include <cstdio>
#include <string>
#include <string.h>
#include <cstdlib>
#include <cstring>
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <allegro5/allegro_primitives.h>
string nume;
int n,*v,sol;
char s[3];
ofstream out("sah.out");
void bk(int k)
{
for (int i=1;i<=n;i++)
{
*(v+k)=i;
if (valid(k)==1)
{
if (solutie(k)==1)
afisare();
else
bk(k+1);
}
}
}
int valid(int k)
{
int i;
for (i=1;i<=k-1;i++)
if (*(v+i)==*(v+k)||(abs(*(v+k)-*(v+i))==(k-i)))
return 0;
return 1;
}
int solutie(int k)
{
if (k==n)
return 1;
return 0;
}
void afisare()
{
int i,j;
sol++;
out<<"\n Solutia: "<<sol<<'\n';
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
if (strcmp(s,"da")==0)
{
if( (i+j)%2 == 0)
al_draw_filled_rectangle( (i-1)*latura_patrat, (j-
1)*latura_patrat, i*latura_patrat, j*latura_patrat, white);
else
al_draw_filled_rectangle( (i-1)*latura_patrat, (j-
1)*latura_patrat, i*latura_patrat, j*latura_patrat, black);
}
if (*(v+i)==j)
{
out<<"R ";
if (strcmp(s,"da")==0)
al_draw_bitmap( regina, (i-1)*latura_patrat, (j-
1)*latura_patrat, 0);
}
else
out<<"_ ";
}
out<<'\n';
}
if (strcmp(s,"da")==0)
{
nume = "Solutie";
nume += std::to_string( sol);
nume += ".bmp";
al_flip_display();
}
}
if (strcmp(s,"da")==0)
{
al_init();
al_init_image_addon();
al_init_primitives_addon();
white = al_map_rgb(255,255,255);
black = al_map_rgb( 0, 0, 0);
}
bk(1);
return 0;
}