Problema celor NDame Presupune c ai 8 dame
Problema celor N-Dame • Presupune că ai 8 dame. . . • . . . şi o tablă de şah
Problema celor N-Dame Se pot amplasa cele 8 dame pe tabla de şah astfel încât oricare 2 dame să nu se atace ?
Problema celor N-Dame Două dame să nu fie amplasate pe acelaşi rând. . .
Problema celor N-Dame Două dame să nu fie amplasate pe acelaşi rând sau pe aceiaşi coloană. . .
Problema celor N-Dame Două dame să nu fie amplasate pe acelaşi rând sau pe aceiaşi coloană sau pe aceiaşi diagonală.
Problema celor N-Dame Numărul damelor şi dimensiunea tablei de şah poate varia. N râ nd ur i N coloane N dame
Problema celor N-Dame Vom scrie un program care va încerca să găsească soluţia de a plasa N regine pe N*N tablă de şah Dacă puteţi rularun ega or vga graphics, executaţi dublu click pe icoană
Cum lucrează programul Programul utilizează o stivă pentru a reţine poziţia fiecărei regine.
Cum lucrează programul De fiecare dată programul alege să aşeze o regină pe tablă, iar poziţia nouă este memorată într-o înregistrare care este aşezată în stivă R ND 1, COL 1
Cum lucrează programul Deasemenea vom avea şi o variabilă care săreţină câte rânduri au fost utilizate R ND 1, COL 1 1 OCUPATE
Cum lucrează programul De fiecare dată când vom încerca să aşezăm o nouă regină în rândul următor, vom începe prin a amplasa regina în prima coloană. . R ND 2, COL 1 R ND 1, COL 1 1 OCUPATE
Cum lucrează programul. . . dacă este un conflict cu o altă regină atunci aşezăm noua regină pe coloana următoare R ND 2, COL 2 R ND 1, COL 1 1 OCUPATE
Cum lucrează programul Dacă apare un nou conflict atunci regina va fi mutată pe următoarea poziţie la dreapta R ND 2, COL 3 R ND 1, COL 1 1 OCUPATE
Cum lucrează programul Dacă apare un nou conflict atunci regina va fi mutată pe următoarea poziţie la dreapta R ND 2, COL 3 R ND 1, COL 1 1 OCUPATE
Cum lucrează programul Să privim rândul nr. 3. Pe prima poziţie pe care o încercăm este conflict. . . R ND 3, COL 1 R ND 2, COL 3 R ND 1, COL 1 2 OCUPATE
Cum lucrează programul. . . Atunci trecem pe coloana 2, dar şi aici este un conflict. . . R ND 3, COL 2 R ND 2, COL 3 R ND 1, COL 1 2 OCUPATE
Cum lucrează programul. . . şi vom trece pe pe a treia coloană unde este un nou conflict. . . R ND 3, COL 3 R ND 2, COL 3 R ND 1, COL 1 2 OCUPATE
Cum lucrează programul. . . se trece atunci în coloana 4, unde din cauza unui nou conflict, vom încerca să trecem într-o coloană la stânga. . . R ND 3, COL 4 R ND 2, COL 3 R ND 1, COL 1 2 OCUPATE
Cum lucrează programul. . . dar aici nu avem cum să ne ducem. R ND 3, COL 4 R ND 2, COL 3 R ND 1, COL 1 2 OCUPATE
Cum lucrează programul Când ieşim de pe tablă pe rândul respectiv: • Coborâm în stivă, • Reducem rândul cu 1 • Şi continuăm să lucrăm în acest rând R ND 2, COL 3 R ND 1, COL 1 1 OCUPATE
Cum lucrează programul Acum continuăm să lucrăm pe rândul 2 deplasând regina la dreapta. R ND 2, COL 4 R ND 1, COL 1 1 OCUPATE
Cum lucrează programul Aici nu avem conflicte şi atunci incrementăm variabila cu 1 şi trecem la rândul 3. R ND 2, COL 4 R ND 1, COL 1 2 OCUPATE
Cum lucrează programul În acest rând începem cu prima coloană. R ND 3, COL 1 R ND 2, COL 4 R ND 1, COL 1 2 OCUPATE
- Slides: 25