Advertisement
Momir

ČAH v1.1.0 (VS edition)

Jan 23rd, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 101.39 KB | None | 0 0
  1. #pragma warning(disable : 4996)
  2. #pragma warning(disable : 6031)
  3. #define _WIN32_WINNT 0x0600
  4. #define STRICT
  5. #include <string>
  6. #include <vector>
  7. #include <dos.h>
  8. #include <iostream>
  9. #include <fstream>
  10. #include <strsafe.h>
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <conio.h>
  14. #include <io.h>
  15. #include <shlwapi.h>
  16. #include <fcntl.h>
  17. #include <windows.h>
  18. #include <cwchar>
  19. #include <winreg.h>
  20. #include <Wincon.h>
  21. #define _O_U16TEXT  0x20000
  22. #define _O_U8TEXT   0x40000
  23. #define SVETLO 0
  24. #define TAMNO 1
  25. #define SIVO 2
  26. #define BELO 0
  27. #define CRNO 1
  28. #define ISKLJUCENO 0
  29. #define UKLJUCENO 1
  30. #define ZELENO 2
  31. #define NEUTRALNO 0
  32. #define IZABRANO 1
  33. #define NAPADNUTO 2
  34. // ●  ꞏ ⚫
  35.  
  36. using namespace std;
  37. int a, b;
  38.  
  39. const wchar_t   TOP[] = L"♜ ",
  40. KONJ[] = L"♞ ",
  41. LOVAC[] = L"♝ ",
  42. KRALJICA[] = L"♛ ",
  43. KRALJ[] = L"♚ ",
  44. PIJUN[] = L"♟ ",
  45. PRAZNO[] = L"  ",
  46. TACKA[] = L"";
  47.  
  48. void SakriKursor();
  49. void ObrisiEkran();
  50. void gotoxy(int x, int y);
  51. int UcitajKlik(int& x, int& y);
  52. void CentrirajKonzolu();
  53. void CentrirajKonzolu2();
  54.  
  55. short prviput1 = 1;
  56. short prviput2 = 1;
  57. short prviput3 = 1;
  58. short prviput4 = 1;
  59. short boja = SVETLO;
  60. short rotacija = ISKLJUCENO;
  61. short sacekaj;
  62. short velicina = 29;
  63. unsigned long long int brPoteza = 0;
  64. long winlog;
  65. _CONSOLE_SCREEN_BUFFER_INFOEX screenbuffer;
  66. CONSOLE_CURSOR_INFO kursor;
  67.  
  68. typedef struct
  69. {
  70.     short bojaPolja;
  71.     short stanjePolja;
  72.     wchar_t figura[4];
  73.     short bojaFigure;
  74.     short anpasan;
  75. } Polje;
  76.  
  77. typedef struct
  78. {
  79.     Polje polje[8][8];
  80.     Polje levo[8][2];
  81.     Polje desno[8][2];
  82.     short brlevo;
  83.     short brdesno;
  84.     short malarbeli;
  85.     short velikarbeli;
  86.     short malarcrni;
  87.     short velikarcrni;
  88.     short krajigre;
  89.  
  90. } Tabla;
  91.  
  92. void OsveziTablu(Tabla tabla);
  93. void PodesiKonzolu();
  94. void PodesiKonzolu2();
  95. void NapraviTablu(Tabla& tabla);
  96. void OdstampajTablu(Tabla tabla);
  97. void OdstampajKonzolu();
  98. void PozicijaNaTabli(int& x, int& y);
  99. void NoviPotez(Tabla& tabla);
  100. void PozicijaIzabranog(int& xizb, int& yizb, Tabla tabla);
  101. short JelUnutarTable(int x, int y);
  102. void OdstampajKonzolu();
  103. void OdstampajLevoDesno(Tabla tabla);
  104. void ObrnutoOdstampajTablu(Tabla tabla);
  105. void ObrnutaPozicijaNaTabli(int& x, int& y);
  106. void ObrisiAnpasan(Tabla& tabla);
  107. void PodesiVelicinu(int i);
  108. BOOL RegDelnodeRecurse(HKEY hKeyRoot, LPTSTR lpSubKey);
  109. void ObrisiTerminal();
  110. Tabla StaviFiguruNaXY(Tabla tabla, int x, int y);
  111. short JelSahBeli(Tabla tabla, int xpomeraj, int ypomeraj);
  112. short JelSahCrni(Tabla tabla, int xpomeraj, int ypomeraj);
  113. short PostaviKralja(Tabla& tabla, int x, int y);
  114. short PostaviPijuna(Tabla& tabla, int x, int y);
  115. short PostaviKonja(Tabla& tabla, int x, int y);
  116. short PostaviTopa(Tabla& tabla, int x, int y);
  117. short PostaviLovca(Tabla& tabla, int x, int y);
  118. short PostaviKraljicu(Tabla& tabla, int x, int y);
  119. short JelMozeIgratiBeli(Tabla tabla);
  120. short JelMozeIgratiCrni(Tabla tabla);
  121. short ZameniPijuna();
  122. int FiguraUBroj(wchar_t figura[]);
  123. const wchar_t* BrojUFiguru(int broj);
  124. vector<short> NapraviSacuvaj(vector<Tabla> istorija);
  125. void SacuvajIgru(vector<Tabla> istorija);
  126. void OdaberiVelicinu();
  127. void AnimacijaUcitaj();
  128.  
  129. int main()
  130. {
  131.     Tabla tabla;
  132.     NapraviTablu(tabla);
  133.     vector<Tabla> istorija(0);
  134.     istorija.push_back(tabla);
  135.  
  136.     AnimacijaUcitaj();
  137.  
  138.     PodesiKonzolu();
  139.     CentrirajKonzolu();
  140.     PodesiKonzolu2();
  141.     OdstampajKonzolu();
  142.     OdstampajTablu(tabla);
  143.  
  144.     int x, y, xizb, yizb, i = 35;
  145.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  146.     _setmode(_fileno(stdout), _O_U8TEXT);
  147.  
  148.     while (1)
  149.     {
  150.         if (brPoteza % 2 == 1 && !JelMozeIgratiCrni(tabla) && JelSahCrni(tabla, 0, 0))
  151.         {
  152.             if (boja == SVETLO)
  153.                 SetConsoleTextAttribute(console, 82);
  154.             else if (boja == TAMNO)
  155.                 SetConsoleTextAttribute(console, 101);
  156.             else if (boja == SIVO)
  157.                 SetConsoleTextAttribute(console, 152);
  158.  
  159.             tabla.krajigre = 1;
  160.             gotoxy(10, 14);
  161.             wprintf(L"Beli je pobednik");
  162.         }
  163.         else if (brPoteza % 2 == 0 && !JelMozeIgratiBeli(tabla) && JelSahBeli(tabla, 0, 0))
  164.         {
  165.             if (boja == SVETLO)
  166.                 SetConsoleTextAttribute(console, 82);
  167.             else if (boja == TAMNO)
  168.                 SetConsoleTextAttribute(console, 101);
  169.             else if (boja == SIVO)
  170.                 SetConsoleTextAttribute(console, 152);
  171.  
  172.             tabla.krajigre = 1;
  173.             gotoxy(10, 14);
  174.             wprintf(L"Crni je pobednik");
  175.         }
  176.         else if (brPoteza % 2 == 1 && !JelMozeIgratiCrni(tabla))
  177.         {
  178.             if (boja == SVETLO)
  179.                 SetConsoleTextAttribute(console, 82);
  180.             else if (boja == TAMNO)
  181.                 SetConsoleTextAttribute(console, 101);
  182.             else if (boja == SIVO)
  183.                 SetConsoleTextAttribute(console, 152);
  184.  
  185.             tabla.krajigre = 1;
  186.             gotoxy(8, 14);
  187.             wprintf(L"Beli je napravio pat");
  188.         }
  189.         else if (brPoteza % 2 == 0 && !JelMozeIgratiBeli(tabla))
  190.         {
  191.             if (boja == SVETLO)
  192.                 SetConsoleTextAttribute(console, 82);
  193.             else if (boja == TAMNO)
  194.                 SetConsoleTextAttribute(console, 101);
  195.             else if (boja == SIVO)
  196.                 SetConsoleTextAttribute(console, 152);
  197.  
  198.             tabla.krajigre = 1;
  199.             gotoxy(8, 14);
  200.             wprintf(L"Crni je napravio pat");
  201.         }
  202.  
  203.         sacekaj = ISKLJUCENO;
  204.         SetConsoleTextAttribute(console, 82);
  205.  
  206.         UcitajKlik(x, y);
  207.         ObrisiTerminal();
  208.  
  209.         if (y == 0 && (x == 4 || x == 5))
  210.         {
  211.             NapraviTablu(tabla);
  212.             istorija.clear();
  213.             istorija.push_back(tabla);
  214.             brPoteza = 0;
  215.             NoviPotez(tabla);
  216.             ObrisiTerminal();
  217.  
  218.             OsveziTablu(tabla);
  219.         }
  220.         else if (y == 0 && (x == 0 || x == 1))
  221.         {
  222.             SacuvajIgru(istorija);
  223.         }
  224.         else if (y == 0 && (x == 2 || x == 3))
  225.         {
  226.             char ime[18], zn;
  227.             short pom;
  228.             ObrisiTerminal();
  229.             HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  230.             SetConsoleCursorInfo(hConsole, &kursor);
  231.  
  232.             if (boja == SVETLO)
  233.                 SetConsoleTextAttribute(hConsole, 82);
  234.             else if (boja == TAMNO)
  235.                 SetConsoleTextAttribute(hConsole, 101);
  236.             else if (boja == SIVO)
  237.                 SetConsoleTextAttribute(hConsole, 152);
  238.  
  239.             _setmode(_fileno(stdout), _O_TEXT);
  240.  
  241.             gotoxy(4, 14);
  242.             printf("Ime igre:  ");
  243.  
  244.             for (int i = 0; i < 18; i++)
  245.             {
  246.                 zn = getchar();
  247.  
  248.                 if ((zn == 13 && i != 0) || i == 14)
  249.                 {
  250.                     Sleep(100);
  251.                     SakriKursor();
  252.                     ime[i] = '\0';
  253.                     break;
  254.                 }
  255.                 else if (zn == 8)
  256.                 {
  257.                     gotoxy(14 + i, 14);
  258.                     putchar(' ');
  259.                     gotoxy(14 + i, 14);
  260.                     i -= 2;
  261.                 }
  262.                 else
  263.                 {
  264.                     gotoxy(15 + i, 14);
  265.                     putchar(zn);
  266.                     ime[i] = zn;
  267.                 }
  268.             }
  269.  
  270.             ObrisiTerminal();
  271.  
  272.             ifstream ulaz(strcat(ime, ".igra"));
  273.  
  274.             if (ulaz.is_open())
  275.             {
  276.                 ulaz >> brPoteza;
  277.  
  278.                 istorija.clear();
  279.  
  280.                 for (int a = 0; a <= brPoteza; a++)
  281.                 {
  282.                     ulaz >> tabla.brlevo;
  283.                     ulaz >> tabla.brdesno;
  284.                     ulaz >> tabla.krajigre;
  285.                     ulaz >> tabla.malarbeli;
  286.                     ulaz >> tabla.malarcrni;
  287.                     ulaz >> tabla.velikarbeli;
  288.                     ulaz >> tabla.velikarcrni;
  289.  
  290.                     for (int i = 0; i < 16; i++)
  291.                     {
  292.                         ulaz >> pom;
  293.                         wcscpy(tabla.levo[i / 2][i % 2].figura, BrojUFiguru(pom));
  294.                         ulaz >> pom;
  295.                         wcscpy(tabla.desno[i / 2][i % 2].figura, BrojUFiguru(pom));
  296.                     }
  297.  
  298.                     for (int i = 0; i < 8; i++)
  299.                         for (int j = 0; j < 8; j++)
  300.                         {
  301.                             ulaz >> tabla.polje[i][j].anpasan;
  302.                             ulaz >> tabla.polje[i][j].bojaFigure;
  303.                             ulaz >> pom;
  304.                             wcscpy(tabla.polje[i][j].figura, BrojUFiguru(pom));
  305.                             ulaz >> tabla.polje[i][j].stanjePolja;
  306.                         }
  307.  
  308.                     istorija.push_back(tabla);
  309.                 }
  310.  
  311.                 ulaz.close();
  312.             }
  313.             else
  314.             {
  315.                 gotoxy(4, 14);
  316.  
  317.                 if (boja == SVETLO)
  318.                     SetConsoleTextAttribute(hConsole, 82);
  319.                 else if (boja == TAMNO)
  320.                     SetConsoleTextAttribute(hConsole, 101);
  321.                 else if (boja == SIVO)
  322.                     SetConsoleTextAttribute(hConsole, 152);
  323.  
  324.                 _setmode(_fileno(stdout), _O_U8TEXT);
  325.  
  326.                 wprintf(L"Ne postoji igra sa tim imenom");
  327.             }
  328.  
  329.             OsveziTablu(tabla);
  330.         }
  331.         else if (y == 0 && (x == 6 || x == 7))
  332.         {
  333.             boja++;
  334.  
  335.             if (boja == 3)
  336.                 boja = 0;
  337.  
  338.             OdstampajKonzolu();
  339.             NoviPotez(tabla);
  340.  
  341.             OsveziTablu(tabla);
  342.         }
  343.         else if (y == 0 && (x == 8 || x == 9))
  344.         {
  345.             short pom = velicina;
  346.             OdaberiVelicinu();
  347.  
  348.             if (pom != velicina)
  349.             {
  350.                 PodesiVelicinu(velicina);
  351.                 OdstampajKonzolu();
  352.                 OsveziTablu(tabla);
  353.             }
  354.         }
  355.         else if (y == 0 && (x == 10 || x == 11) && brPoteza > 0)
  356.         {
  357.             tabla = istorija[brPoteza - 1];
  358.             istorija.erase(istorija.begin() + brPoteza);
  359.             brPoteza--;
  360.             ObrisiTerminal();
  361.  
  362.             OsveziTablu(tabla);
  363.         }
  364.         else if (y == 0 && (x == 30 || x == 31))
  365.         {
  366.             if (rotacija == UKLJUCENO)
  367.             {
  368.                 rotacija = ISKLJUCENO;
  369.  
  370.                 if (boja == SVETLO)
  371.                     SetConsoleTextAttribute(console, 36);
  372.                 else if (boja == TAMNO)
  373.                     SetConsoleTextAttribute(console, 87);
  374.                 else if (boja == SIVO)
  375.                     SetConsoleTextAttribute(console, 138);
  376.  
  377.                 gotoxy(30, 0);
  378.                 wprintf(L"");
  379.             }
  380.             else
  381.             {
  382.                 rotacija = UKLJUCENO;
  383.  
  384.                 if (boja == SVETLO)
  385.                     SetConsoleTextAttribute(console, 36);
  386.                 else if (boja == TAMNO)
  387.                     SetConsoleTextAttribute(console, 87);
  388.                 else if (boja == SIVO)
  389.                     SetConsoleTextAttribute(console, 138);
  390.  
  391.                 gotoxy(30, 0);
  392.                 wprintf(L"");
  393.             }
  394.  
  395.             NoviPotez(tabla);
  396.  
  397.             OsveziTablu(tabla);
  398.         }
  399.         else if (y == 0 && (x == 32 || x == 33))
  400.         {
  401.             int a, b;
  402.             SetConsoleTextAttribute(console, 255);
  403.  
  404.             for (int i = 0; i < 20; i++)
  405.                 wprintf(L"\t\t\t\t\t\t");
  406.  
  407.             SetConsoleTextAttribute(console, 241);
  408.             gotoxy(0, 1);
  409.             wprintf(L"\t\tŠAH");
  410.             wprintf(L"\n\n\n  Autor:");
  411.             wprintf(L"\n\n  Momir Stanišić,");
  412.             wprintf(L"\n  CMD Game Developer");
  413.             wprintf(L"\n\n\n\n  Verzija: 1.0.0");
  414.  
  415.             UcitajKlik(a, b);
  416.  
  417.             OdstampajKonzolu();
  418.             OdstampajTablu(tabla);
  419.         }
  420.         else if (y == 0 && (x == 35 || x == 34))
  421.         {
  422.             char str[20];
  423.             istorija.clear();
  424.  
  425.             SetConsoleTextAttribute(console, 34);
  426.  
  427.             for (int i = 0; i < 20; i++)
  428.                 wprintf(L"\t\t\t\t\t\t");
  429.  
  430.             SetConsoleTextAttribute(console, 35);
  431.             gotoxy(13, 6);
  432.             wprintf(L"DOVIĐENJA!");
  433.             Sleep(1000);
  434.  
  435.             for (int i = 0; i < 18; i++)
  436.             {
  437.                 sprintf(str, "MODE 36, %d", 18 - i);
  438.                 system(str);
  439.             }
  440.  
  441.             RegDelnodeRecurse(HKEY_CURRENT_USER, (LPTSTR)TEXT("Console"));
  442.  
  443.             return 0;
  444.         }
  445.         else if (y > 2 && y < 11 && x > 9 && x < 26 && tabla.krajigre == 0)
  446.         {
  447.             if (brPoteza % 2 && rotacija == UKLJUCENO && JelMozeIgratiCrni(tabla))
  448.                 ObrnutaPozicijaNaTabli(x, y);
  449.             else
  450.                 PozicijaNaTabli(x, y);
  451.  
  452.             if (tabla.polje[y][x].stanjePolja == NAPADNUTO && wcscmp(tabla.polje[y][x].figura, KRALJ))
  453.             {
  454.                 PozicijaIzabranog(xizb, yizb, tabla);
  455.  
  456.                 if (tabla.polje[yizb][xizb].bojaFigure == BELO && tabla.brlevo < 8)
  457.                 {
  458.                     if (tabla.polje[y + 1][x].anpasan == UKLJUCENO)
  459.                     {
  460.                         wcscpy(tabla.levo[tabla.brlevo / 2][tabla.brlevo % 2].figura, PIJUN);
  461.                         wcscpy(tabla.polje[y + 1][x].figura, PRAZNO);
  462.                     }
  463.                     else
  464.                         wcscpy(tabla.levo[tabla.brlevo / 2][tabla.brlevo % 2].figura, tabla.polje[y][x].figura);
  465.  
  466.                     tabla.brlevo++;
  467.                 }
  468.                 else if (tabla.brdesno < 8)
  469.                 {
  470.                     if (tabla.polje[y - 1][x].anpasan == UKLJUCENO)
  471.                     {
  472.                         wcscpy(tabla.desno[tabla.brdesno / 2][tabla.brdesno % 2].figura, PIJUN);
  473.                         wcscpy(tabla.polje[y - 1][x].figura, PRAZNO);
  474.                     }
  475.                     else
  476.                         wcscpy(tabla.desno[tabla.brdesno / 2][tabla.brdesno % 2].figura, tabla.polje[y][x].figura);
  477.  
  478.                     tabla.brdesno++;
  479.                 }
  480.  
  481.                 if ((xizb == 7 && yizb == 7) || (x == 7 && y == 7))
  482.                     tabla.malarbeli = ISKLJUCENO;
  483.                 else if ((xizb == 0 && yizb == 7) || (x == 0 && y == 7))
  484.                     tabla.velikarbeli = ISKLJUCENO;
  485.                 else if ((xizb == 0 && yizb == 0) || (x == 0 && y == 0))
  486.                     tabla.velikarcrni = ISKLJUCENO;
  487.                 else if ((xizb == 7 && yizb == 0) || (x == 7 && y == 0))
  488.                     tabla.malarcrni = ISKLJUCENO;
  489.                 else if (xizb == 4 && yizb == 7)
  490.                 {
  491.                     tabla.malarbeli = ISKLJUCENO;
  492.                     tabla.velikarbeli = ISKLJUCENO;
  493.                 }
  494.                 else if (xizb == 4 && yizb == 0)
  495.                 {
  496.                     tabla.malarcrni = ISKLJUCENO;
  497.                     tabla.velikarcrni = ISKLJUCENO;
  498.                 }
  499.  
  500.                 wcscpy(tabla.polje[y][x].figura, tabla.polje[yizb][xizb].figura);
  501.                 wcscpy(tabla.polje[yizb][xizb].figura, PRAZNO);
  502.                 tabla.polje[y][x].bojaFigure = tabla.polje[yizb][xizb].bojaFigure;
  503.                 NoviPotez(tabla);
  504.                 ObrisiAnpasan(tabla);
  505.  
  506.                 if (!wcscmp(tabla.polje[y][x].figura, PIJUN) && ((tabla.polje[y][x].bojaFigure == BELO && y == 0) || (tabla.polje[y][x].bojaFigure == CRNO && y == 7)))
  507.                 {
  508.                     OdstampajTablu(tabla);
  509.                     short zamena = ZameniPijuna();
  510.  
  511.                     switch (zamena)
  512.                     {
  513.                     case 0:
  514.                         wcscpy(tabla.polje[y][x].figura, KRALJICA);
  515.                         break;
  516.  
  517.                     case 1:
  518.                         wcscpy(tabla.polje[y][x].figura, TOP);
  519.                         break;
  520.  
  521.                     case 2:
  522.                         wcscpy(tabla.polje[y][x].figura, LOVAC);
  523.                         break;
  524.  
  525.                     case 3:
  526.                         wcscpy(tabla.polje[y][x].figura, KONJ);
  527.                     }
  528.                 }
  529.  
  530.                 if (JelSahBeli(tabla, 0, 0))
  531.                     for (int i = 0; i < 64; i++)
  532.                         if (!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == BELO)
  533.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  534.  
  535.                 if (JelSahCrni(tabla, 0, 0))
  536.                     for (int i = 0; i < 64; i++)
  537.                         if (!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == CRNO)
  538.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  539.  
  540.                 Sleep(260);
  541.  
  542.                 OsveziTablu(tabla);
  543.  
  544.                 NoviPotez(tabla);
  545.  
  546.                 if (JelSahBeli(tabla, 0, 0))
  547.                     for (int i = 0; i < 64; i++)
  548.                         if (!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == BELO)
  549.                         {
  550.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  551.                             OsveziTablu(tabla);
  552.                             break;
  553.                         }
  554.  
  555.                 if (JelSahCrni(tabla, 0, 0))
  556.                     for (int i = 0; i < 64; i++)
  557.                         if (!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == CRNO)
  558.                         {
  559.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  560.                             OsveziTablu(tabla);
  561.                             break;
  562.                         }
  563.  
  564.                 istorija.push_back(tabla);
  565.                 brPoteza++;
  566.                 sacekaj = UKLJUCENO;
  567.  
  568.             }
  569.             else if (!wcscmp(tabla.polje[y][x].figura, KRALJ))
  570.             {
  571.                 if ((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  572.                 {
  573.                     NoviPotez(tabla);
  574.  
  575.                     PostaviKralja(tabla, x, y);
  576.                 }
  577.                 else
  578.                     NoviPotez(tabla);
  579.             }
  580.             else if (!wcscmp(tabla.polje[y][x].figura, PIJUN))
  581.             {
  582.                 if ((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  583.                 {
  584.                     NoviPotez(tabla);
  585.                     PostaviPijuna(tabla, x, y);
  586.                 }
  587.                 else
  588.                     NoviPotez(tabla);
  589.             }
  590.             else if (!wcscmp(tabla.polje[y][x].figura, KONJ))
  591.             {
  592.                 if ((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  593.                 {
  594.                     NoviPotez(tabla);
  595.                     PostaviKonja(tabla, x, y);
  596.                 }
  597.                 else
  598.                     NoviPotez(tabla);
  599.             }
  600.             else if (!wcscmp(tabla.polje[y][x].figura, TOP))
  601.             {
  602.                 if ((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  603.                 {
  604.                     NoviPotez(tabla);
  605.                     PostaviTopa(tabla, x, y);
  606.                 }
  607.                 else
  608.                     NoviPotez(tabla);
  609.             }
  610.             else if (!wcscmp(tabla.polje[y][x].figura, LOVAC))
  611.             {
  612.                 if ((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  613.                 {
  614.                     NoviPotez(tabla);
  615.                     PostaviLovca(tabla, x, y);
  616.                 }
  617.                 else
  618.                     NoviPotez(tabla);
  619.             }
  620.             else if (!wcscmp(tabla.polje[y][x].figura, KRALJICA))
  621.             {
  622.                 if ((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  623.                 {
  624.                     NoviPotez(tabla);
  625.                     PostaviKraljicu(tabla, x, y);
  626.                 }
  627.                 else
  628.                     NoviPotez(tabla);
  629.             }
  630.             else if (!wcscmp(tabla.polje[y][x].figura, PRAZNO))
  631.                 NoviPotez(tabla);
  632.             else if (!wcscmp(tabla.polje[y][x].figura, TACKA))
  633.             {
  634.                 PozicijaIzabranog(xizb, yizb, tabla);
  635.                 wcscpy(tabla.polje[y][x].figura, tabla.polje[yizb][xizb].figura);
  636.                 wcscpy(tabla.polje[yizb][xizb].figura, PRAZNO);
  637.                 tabla.polje[y][x].bojaFigure = tabla.polje[yizb][xizb].bojaFigure;
  638.  
  639.                 ObrisiAnpasan(tabla);
  640.  
  641.                 if (tabla.malarbeli == UKLJUCENO && xizb == 4 && yizb == 7 && x == 6 && y == 7)
  642.                 {
  643.                     wcscpy(tabla.polje[7][7].figura, PRAZNO);
  644.                     wcscpy(tabla.polje[7][5].figura, TOP);
  645.                     tabla.polje[7][5].bojaFigure = BELO;
  646.                 }
  647.  
  648.                 if (tabla.velikarbeli == UKLJUCENO && xizb == 4 && yizb == 7 && x == 1 && y == 7)
  649.                 {
  650.                     wcscpy(tabla.polje[7][0].figura, PRAZNO);
  651.                     wcscpy(tabla.polje[7][1].figura, PRAZNO);
  652.                     wcscpy(tabla.polje[7][2].figura, KRALJ);
  653.                     tabla.polje[7][2].bojaFigure = BELO;
  654.                     wcscpy(tabla.polje[7][3].figura, TOP);
  655.                     tabla.polje[7][3].bojaFigure = BELO;
  656.                 }
  657.  
  658.                 if (tabla.malarcrni == UKLJUCENO && xizb == 4 && yizb == 0 && x == 6 && y == 0)
  659.                 {
  660.                     wcscpy(tabla.polje[0][7].figura, PRAZNO);
  661.                     wcscpy(tabla.polje[0][5].figura, TOP);
  662.                     tabla.polje[0][5].bojaFigure = CRNO;
  663.                 }
  664.  
  665.                 if (tabla.velikarcrni == UKLJUCENO && xizb == 4 && yizb == 0 && x == 1 && y == 0)
  666.                 {
  667.                     wcscpy(tabla.polje[0][0].figura, PRAZNO);
  668.                     wcscpy(tabla.polje[0][1].figura, PRAZNO);
  669.                     wcscpy(tabla.polje[0][2].figura, KRALJ);
  670.                     tabla.polje[0][2].bojaFigure = CRNO;
  671.                     wcscpy(tabla.polje[0][3].figura, TOP);
  672.                     tabla.polje[0][3].bojaFigure = CRNO;
  673.                 }
  674.  
  675.                 if (!wcscmp(tabla.polje[y][x].figura, PIJUN) && ((tabla.polje[y][x].bojaFigure == BELO && y == yizb - 2) || (tabla.polje[y][x].bojaFigure == CRNO && y == yizb + 2)))
  676.                     tabla.polje[y][x].anpasan = UKLJUCENO;
  677.  
  678.                 if (xizb == 7 && yizb == 7)
  679.                     tabla.malarbeli = ISKLJUCENO;
  680.                 else if (xizb == 0 && yizb == 7)
  681.                     tabla.velikarbeli = ISKLJUCENO;
  682.                 else if (xizb == 0 && yizb == 0)
  683.                     tabla.velikarcrni = ISKLJUCENO;
  684.                 else if (xizb == 7 && yizb == 0)
  685.                     tabla.malarcrni = ISKLJUCENO;
  686.                 else if (xizb == 4 && yizb == 7)
  687.                 {
  688.                     tabla.malarbeli = ISKLJUCENO;
  689.                     tabla.velikarbeli = ISKLJUCENO;
  690.                 }
  691.                 else if (xizb == 4 && yizb == 0)
  692.                 {
  693.                     tabla.malarcrni = ISKLJUCENO;
  694.                     tabla.velikarcrni = ISKLJUCENO;
  695.                 }
  696.  
  697.                 NoviPotez(tabla);
  698.  
  699.                 if (JelSahBeli(tabla, 0, 0))
  700.                     for (int i = 0; i < 64; i++)
  701.                         if (!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == BELO)
  702.                         {
  703.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  704.                             OsveziTablu(tabla);
  705.                             break;
  706.                         }
  707.  
  708.                 if (JelSahCrni(tabla, 0, 0))
  709.                     for (int i = 0; i < 64; i++)
  710.                         if (!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == CRNO)
  711.                         {
  712.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  713.                             OsveziTablu(tabla);
  714.                             break;
  715.                         }
  716.  
  717.                 istorija.push_back(tabla);
  718.                 brPoteza++;
  719.                 sacekaj = UKLJUCENO;
  720.             }
  721.  
  722.             OsveziTablu(tabla);
  723.         }
  724.     }
  725. }
  726.  
  727. void NapraviTablu(Tabla& tabla)
  728. {
  729.     tabla.brlevo = 0;
  730.     tabla.brdesno = 0;
  731.     tabla.krajigre = 0;
  732.     tabla.malarbeli = UKLJUCENO;
  733.     tabla.malarcrni = UKLJUCENO;
  734.     tabla.velikarbeli = UKLJUCENO;
  735.     tabla.velikarcrni = UKLJUCENO;
  736.  
  737.     for (int i = 0; i < 8; i++)
  738.         for (int j = 0; j < 8; j++)
  739.         {
  740.             tabla.polje[i][j].stanjePolja = NEUTRALNO;
  741.             tabla.polje[i][j].anpasan = ISKLJUCENO;
  742.  
  743.             if ((i + j) % 2 == 0)
  744.                 tabla.polje[i][j].bojaPolja = BELO;
  745.             else
  746.                 tabla.polje[i][j].bojaPolja = CRNO;
  747.         }
  748.  
  749.     for (int i = 0; i < 2; i++)
  750.         for (int j = 0; j < 8; j++)
  751.         {
  752.             tabla.polje[i][j].bojaFigure = CRNO;
  753.             tabla.polje[i + 6][j].bojaFigure = BELO;
  754.         }
  755.  
  756.     for (int j = 0; j < 8; j++)
  757.     {
  758.         wcscpy(tabla.polje[1][j].figura, PIJUN);
  759.         wcscpy(tabla.polje[6][j].figura, PIJUN);
  760.     }
  761.  
  762.     wcscpy(tabla.polje[0][0].figura, TOP);
  763.     wcscpy(tabla.polje[0][7].figura, TOP);
  764.     wcscpy(tabla.polje[7][0].figura, TOP);
  765.     wcscpy(tabla.polje[7][7].figura, TOP);
  766.  
  767.     wcscpy(tabla.polje[0][1].figura, KONJ);
  768.     wcscpy(tabla.polje[0][6].figura, KONJ);
  769.     wcscpy(tabla.polje[7][1].figura, KONJ);
  770.     wcscpy(tabla.polje[7][6].figura, KONJ);
  771.  
  772.     wcscpy(tabla.polje[0][2].figura, LOVAC);
  773.     wcscpy(tabla.polje[0][5].figura, LOVAC);
  774.     wcscpy(tabla.polje[7][2].figura, LOVAC);
  775.     wcscpy(tabla.polje[7][5].figura, LOVAC);
  776.  
  777.     wcscpy(tabla.polje[0][3].figura, KRALJICA);
  778.     wcscpy(tabla.polje[7][3].figura, KRALJICA);
  779.  
  780.     wcscpy(tabla.polje[0][4].figura, KRALJ);
  781.     wcscpy(tabla.polje[7][4].figura, KRALJ);
  782.  
  783.     for (int i = 2; i < 6; i++)
  784.         for (int j = 0; j < 8; j++)
  785.         {
  786.             tabla.polje[i][j].bojaFigure = ZELENO;
  787.             wcscpy(tabla.polje[i][j].figura, PRAZNO);
  788.         }
  789.  
  790.     for (int i = 0; i < 8; i++)
  791.         for (int j = 0; j < 2; j++)
  792.         {
  793.             tabla.levo[i][j].anpasan = ISKLJUCENO;
  794.             tabla.levo[i][j].bojaFigure = CRNO;
  795.             tabla.levo[i][j].stanjePolja = NEUTRALNO;
  796.             tabla.desno[i][j].anpasan = ISKLJUCENO;
  797.             tabla.desno[i][j].bojaFigure = BELO;
  798.             tabla.desno[i][j].stanjePolja = NEUTRALNO;
  799.             wcscpy(tabla.levo[i][j].figura, PRAZNO);
  800.             wcscpy(tabla.desno[i][j].figura, PRAZNO);
  801.         }
  802. }
  803.  
  804. void SakriKursor()
  805. {
  806.     HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
  807.  
  808.     if (prviput3)
  809.     {
  810.         GetConsoleCursorInfo(consoleHandle, &kursor);
  811.         prviput3 = 0;
  812.     }
  813.  
  814.     CONSOLE_CURSOR_INFO info;
  815.     info.dwSize = 100;
  816.     info.bVisible = FALSE;
  817.     SetConsoleCursorInfo(consoleHandle, &info);
  818. }
  819.  
  820. void ObrisiEkran()
  821. {
  822.     HANDLE hStdOut;
  823.     CONSOLE_SCREEN_BUFFER_INFO csbi;
  824.     DWORD count;
  825.     DWORD cellCount;
  826.     COORD homeCoords = { 0, 0 };
  827.  
  828.     hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  829.  
  830.     if (hStdOut == INVALID_HANDLE_VALUE)
  831.         return;
  832.  
  833.     GetConsoleScreenBufferInfo(hStdOut, &csbi);
  834.     cellCount = csbi.dwSize.X * csbi.dwSize.Y;
  835.  
  836.     FillConsoleOutputCharacter(hStdOut, (TCHAR)' ', cellCount, homeCoords, &count);
  837.     FillConsoleOutputAttribute(hStdOut, csbi.wAttributes, cellCount, homeCoords, &count);
  838.     SetConsoleCursorPosition(hStdOut, homeCoords);
  839. }
  840.  
  841. void gotoxy(int x, int y)
  842. {
  843.     COORD koordinate;
  844.     koordinate.X = x;
  845.     koordinate.Y = y;
  846.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), koordinate);
  847. }
  848.  
  849. int UcitajKlik(int& x, int& y)
  850. {
  851.     DWORD info;
  852.     INPUT_RECORD input;
  853.     HANDLE in = GetStdHandle(STD_INPUT_HANDLE);
  854.     SetConsoleMode(in, ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT);
  855.     ReadConsoleInput(in, &input, 1, &info);
  856.  
  857.     if (input.Event.MouseEvent.dwButtonState != 0x0001)
  858.     {
  859.     GOBACK:
  860.         ReadConsoleInput(in, &input, 1, &info);
  861.  
  862.         if (input.Event.MouseEvent.dwButtonState == 0x0001)
  863.         {
  864.         GOBACK2:
  865.             ReadConsoleInput(in, &input, 1, &info);
  866.  
  867.             if (input.Event.MouseEvent.dwButtonState != 0x0001)
  868.             {
  869.                 x = input.Event.MouseEvent.dwMousePosition.X;
  870.                 y = input.Event.MouseEvent.dwMousePosition.Y;
  871.             }
  872.             else
  873.                 goto GOBACK2;
  874.         }
  875.         else
  876.             goto GOBACK;
  877.     }
  878.     else
  879.         UcitajKlik(x, y);
  880.  
  881.     return 0;
  882. }
  883.  
  884. void CentrirajKonzolu2()
  885. {
  886.     RECT rectClient, rectWindow;
  887.     HWND hWnd = GetConsoleWindow();
  888.     GetClientRect(hWnd, &rectClient);
  889.     GetWindowRect(hWnd, &rectWindow);
  890.     SetWindowPos(GetConsoleWindow(), HWND_TOP, GetSystemMetrics(SM_CXSCREEN) / 2 - (rectWindow.right - rectWindow.left) / 2, rectWindow.top, 0, 0, SWP_NOSIZE);
  891. }
  892.  
  893. void CentrirajKonzolu()
  894. {
  895.     RECT rectClient, rectWindow;
  896.     HWND hWnd = GetConsoleWindow();
  897.     GetClientRect(hWnd, &rectClient);
  898.     GetWindowRect(hWnd, &rectWindow);
  899.     int posx, posy;
  900.     posx = GetSystemMetrics(SM_CXSCREEN) / 2 - (rectWindow.right - rectWindow.left) / 2;
  901.     posy = GetSystemMetrics(SM_CYSCREEN) / 2 - (rectWindow.bottom - rectWindow.top) / 2;
  902.  
  903.     SetWindowPos(GetConsoleWindow(), HWND_TOP, posx, posy, 0, 0, SWP_NOSIZE);
  904. }
  905.  
  906. void PodesiKonzolu()
  907. {
  908.     HWND consoleWindow = GetConsoleWindow();
  909.  
  910.     HMENU hmenu = GetSystemMenu(consoleWindow, FALSE);
  911.     EnableMenuItem(hmenu, SC_CLOSE, MF_GRAYED); ////////////////////////////////////////////////////////////////////////////////////////////
  912.  
  913.     if (prviput1)
  914.     {
  915.         winlog = GetWindowLong(consoleWindow, GWL_STYLE);
  916.         SetWindowLong(consoleWindow, GWL_STYLE, winlog & ~WS_MAXIMIZEBOX & ~WS_SIZEBOX & ~WS_VSCROLL);
  917.         prviput1 = 0;
  918.     }
  919.     else
  920.         SetWindowLong(consoleWindow, GWL_STYLE, GetWindowLong(consoleWindow, GWL_STYLE) & ~WS_MAXIMIZEBOX & ~WS_SIZEBOX & ~WS_VSCROLL);
  921.  
  922.  
  923.     SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_EXTENDED_FLAGS);
  924.  
  925.     _setmode(_fileno(stdout), _O_U8TEXT);
  926.     SetConsoleTitleW(L"ŠAH");
  927.     _setmode(_fileno(stdout), _O_TEXT);
  928.  
  929.     if (boja == SVETLO)
  930.         system("color 23");
  931.     else if (boja == TAMNO)
  932.         system("color 56");
  933.     else if (boja == SIVO)
  934.         system("color 89");
  935.  
  936.     _CONSOLE_SCREEN_BUFFER_INFOEX info;
  937.     info.cbSize = sizeof(info);
  938.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  939.     GetConsoleScreenBufferInfoEx(hConsole, &info);
  940.  
  941.     if (prviput2)
  942.     {
  943.         screenbuffer = info;
  944.         prviput2 = 0;
  945.     }
  946.  
  947.     info.dwSize = { 36, 19 };
  948.     info.ColorTable[0] = RGB(242, 242, 242);
  949.     info.ColorTable[1] = RGB(10, 10, 10);
  950.     info.ColorTable[2] = RGB(198, 175, 141);
  951.     info.ColorTable[3] = RGB(114, 71, 56);
  952.     info.ColorTable[4] = RGB(50, 31, 26);
  953.     info.ColorTable[5] = RGB(132, 94, 73);
  954.     info.ColorTable[6] = RGB(73, 47, 37);
  955.     info.ColorTable[7] = RGB(22, 11, 4);
  956.     info.ColorTable[8] = RGB(158, 158, 158);
  957.     info.ColorTable[9] = RGB(102, 102, 102);
  958.     info.ColorTable[10] = RGB(43, 43, 43);
  959.     info.ColorTable[11] = RGB(0, 119, 65);
  960.     info.ColorTable[12] = RGB(126, 33, 35);
  961.     info.ColorTable[13] = RGB(10, 10, 130);
  962.     info.ColorTable[14] = RGB(240, 191, 40);
  963.     info.ColorTable[15] = RGB(255, 255, 255);
  964.  
  965.     SetConsoleScreenBufferInfoEx(hConsole, &info);
  966.     PodesiVelicinu(velicina);
  967.     OdstampajKonzolu();
  968.     SakriKursor();
  969.     system("MODE 36, 18");
  970. }
  971.  
  972. void PodesiKonzolu2()
  973. {
  974.     _CONSOLE_SCREEN_BUFFER_INFOEX info;
  975.     info.cbSize = sizeof(info);
  976.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  977.     GetConsoleScreenBufferInfoEx(hConsole, &info);
  978.     info.dwSize = { 36, 17 };
  979.     SetConsoleScreenBufferInfoEx(hConsole, &info);
  980. }
  981.  
  982. void PodesiVelicinu(int i)
  983. {
  984.     CONSOLE_FONT_INFOEX cfi;
  985.     cfi.cbSize = sizeof(cfi);
  986.     cfi.nFont = 0;
  987.     cfi.dwFontSize.X = 0;
  988.     cfi.dwFontSize.Y = i;
  989.     cfi.FontFamily = TMPF_TRUETYPE;
  990.     cfi.FontWeight = FW_NORMAL;
  991.     std::wcscpy(cfi.FaceName, L"MS Gothic");
  992.     SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &cfi);
  993.  
  994.     CentrirajKonzolu();
  995.     CentrirajKonzolu();
  996.     system("MODE 36, 18");
  997.     PodesiKonzolu2();
  998. }
  999.  
  1000. void OdstampajTablu(Tabla tabla)
  1001. {
  1002.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  1003.     _setmode(_fileno(stdout), _O_U8TEXT);
  1004.  
  1005.     for (int i = 0; i < 8; i++)
  1006.         for (int j = 0; j < 8; j++)
  1007.         {
  1008.             if (tabla.polje[i][j].stanjePolja == IZABRANO && tabla.polje[i][j].bojaFigure == CRNO)
  1009.                 SetConsoleTextAttribute(console, 177);
  1010.             else if (tabla.polje[i][j].stanjePolja == IZABRANO && tabla.polje[i][j].bojaFigure == BELO)
  1011.                 SetConsoleTextAttribute(console, 176);
  1012.             else if (tabla.polje[i][j].stanjePolja == NAPADNUTO && (tabla.polje[i][j].bojaFigure == CRNO || tabla.polje[i][j].bojaFigure == ZELENO))
  1013.                 SetConsoleTextAttribute(console, 193);
  1014.             else if (tabla.polje[i][j].stanjePolja == NAPADNUTO && tabla.polje[i][j].bojaFigure == BELO)
  1015.                 SetConsoleTextAttribute(console, 192);
  1016.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  1017.                 SetConsoleTextAttribute(console, 32);
  1018.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  1019.                 SetConsoleTextAttribute(console, 33);
  1020.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  1021.                 SetConsoleTextAttribute(console, 80);
  1022.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  1023.                 SetConsoleTextAttribute(console, 81);
  1024.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  1025.                 SetConsoleTextAttribute(console, 128);
  1026.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  1027.                 SetConsoleTextAttribute(console, 129);
  1028.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  1029.                 SetConsoleTextAttribute(console, 48);
  1030.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  1031.                 SetConsoleTextAttribute(console, 49);
  1032.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  1033.                 SetConsoleTextAttribute(console, 96);
  1034.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  1035.                 SetConsoleTextAttribute(console, 97);
  1036.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  1037.                 SetConsoleTextAttribute(console, 144);
  1038.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  1039.                 SetConsoleTextAttribute(console, 145);
  1040.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  1041.                 SetConsoleTextAttribute(console, 43);
  1042.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  1043.                 SetConsoleTextAttribute(console, 91);
  1044.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  1045.                 SetConsoleTextAttribute(console, 139);
  1046.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  1047.                 SetConsoleTextAttribute(console, 59);
  1048.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  1049.                 SetConsoleTextAttribute(console, 107);
  1050.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  1051.                 SetConsoleTextAttribute(console, 155);
  1052.  
  1053.             gotoxy(10 + j * 2, 3 + i);
  1054.             wprintf(tabla.polje[i][j].figura);
  1055.         }
  1056.  
  1057.     OdstampajLevoDesno(tabla);
  1058. }
  1059.  
  1060. void ObrnutoOdstampajTablu(Tabla tabla)
  1061. {
  1062.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  1063.     _setmode(_fileno(stdout), _O_U8TEXT);
  1064.  
  1065.     for (int i = 0; i < 8; i++)
  1066.         for (int j = 0; j < 8; j++)
  1067.         {
  1068.             if (tabla.polje[i][j].stanjePolja == IZABRANO && tabla.polje[i][j].bojaFigure == CRNO)
  1069.                 SetConsoleTextAttribute(console, 177);
  1070.             else if (tabla.polje[i][j].stanjePolja == IZABRANO && tabla.polje[i][j].bojaFigure == BELO)
  1071.                 SetConsoleTextAttribute(console, 176);
  1072.             else if (tabla.polje[i][j].stanjePolja == NAPADNUTO && tabla.polje[i][j].bojaFigure == CRNO)
  1073.                 SetConsoleTextAttribute(console, 193);
  1074.             else if (tabla.polje[i][j].stanjePolja == NAPADNUTO && tabla.polje[i][j].bojaFigure == BELO)
  1075.                 SetConsoleTextAttribute(console, 192);
  1076.             else if (tabla.polje[i][j].stanjePolja == NAPADNUTO && !wcscmp(tabla.polje[i][j].figura, PRAZNO))
  1077.                 SetConsoleTextAttribute(console, 192);
  1078.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  1079.                 SetConsoleTextAttribute(console, 32);
  1080.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  1081.                 SetConsoleTextAttribute(console, 33);
  1082.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  1083.                 SetConsoleTextAttribute(console, 80);
  1084.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  1085.                 SetConsoleTextAttribute(console, 81);
  1086.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  1087.                 SetConsoleTextAttribute(console, 128);
  1088.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  1089.                 SetConsoleTextAttribute(console, 129);
  1090.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  1091.                 SetConsoleTextAttribute(console, 48);
  1092.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  1093.                 SetConsoleTextAttribute(console, 49);
  1094.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  1095.                 SetConsoleTextAttribute(console, 96);
  1096.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  1097.                 SetConsoleTextAttribute(console, 97);
  1098.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  1099.                 SetConsoleTextAttribute(console, 144);
  1100.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  1101.                 SetConsoleTextAttribute(console, 145);
  1102.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  1103.                 SetConsoleTextAttribute(console, 43);
  1104.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  1105.                 SetConsoleTextAttribute(console, 91);
  1106.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  1107.                 SetConsoleTextAttribute(console, 139);
  1108.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  1109.                 SetConsoleTextAttribute(console, 59);
  1110.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  1111.                 SetConsoleTextAttribute(console, 107);
  1112.             else if (tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  1113.                 SetConsoleTextAttribute(console, 155);
  1114.  
  1115.             gotoxy(24 - j * 2, 10 - i);
  1116.             wprintf(tabla.polje[i][j].figura);
  1117.         }
  1118.  
  1119.     OdstampajLevoDesno(tabla);
  1120. }
  1121.  
  1122. void OdstampajLevoDesno(Tabla tabla)
  1123. {
  1124.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  1125.     _setmode(_fileno(stdout), _O_U8TEXT);
  1126.  
  1127.     for (int i = 0; i < 8; i++)
  1128.         for (int j = 0; j < 2; j++)
  1129.         {
  1130.             if (boja == SVETLO)
  1131.                 SetConsoleTextAttribute(console, 81);
  1132.             else if (boja == TAMNO)
  1133.                 SetConsoleTextAttribute(console, 97);
  1134.             else if (boja == SIVO)
  1135.                 SetConsoleTextAttribute(console, 145);
  1136.  
  1137.             gotoxy(2 + j * 2, 3 + i);
  1138.             wprintf(tabla.levo[i][j].figura);
  1139.         }
  1140.  
  1141.     for (int i = 0; i < 8; i++)
  1142.         for (int j = 0; j < 2; j++)
  1143.         {
  1144.             if (boja == SVETLO)
  1145.                 SetConsoleTextAttribute(console, 80);
  1146.             else if (boja == TAMNO)
  1147.                 SetConsoleTextAttribute(console, 96);
  1148.             else if (boja == SIVO)
  1149.                 SetConsoleTextAttribute(console, 144);
  1150.  
  1151.             gotoxy(30 + j * 2, 3 + i);
  1152.             wprintf(tabla.desno[i][j].figura);
  1153.         }
  1154.  
  1155.     if (boja == SVETLO)
  1156.         SetConsoleTextAttribute(console, 68);
  1157.     else if (boja == TAMNO)
  1158.         SetConsoleTextAttribute(console, 119);
  1159.     else if (boja == SIVO)
  1160.         SetConsoleTextAttribute(console, 170);
  1161.  
  1162.  
  1163.     gotoxy(26, 3);
  1164.     wprintf(L"██");
  1165.     gotoxy(26, 4);
  1166.     wprintf(L"██");
  1167.     gotoxy(26, 5);
  1168.     wprintf(L"██");
  1169.     gotoxy(26, 6);
  1170.     wprintf(L"██");
  1171.     gotoxy(26, 7);
  1172.     wprintf(L"██");
  1173.     gotoxy(26, 8);
  1174.     wprintf(L"██");
  1175.     gotoxy(26, 9);
  1176.     wprintf(L"██");
  1177.     gotoxy(26, 10);
  1178.     wprintf(L"██");
  1179. }
  1180.  
  1181. void PozicijaNaTabli(int& x, int& y)
  1182. {
  1183.     switch (x)
  1184.     {
  1185.     case 10:
  1186.     case 11:
  1187.         x = 0;
  1188.         break;
  1189.  
  1190.     case 12:
  1191.     case 13:
  1192.         x = 1;
  1193.         break;
  1194.  
  1195.     case 14:
  1196.     case 15:
  1197.         x = 2;
  1198.         break;
  1199.  
  1200.     case 16:
  1201.     case 17:
  1202.         x = 3;
  1203.         break;
  1204.  
  1205.     case 18:
  1206.     case 19:
  1207.         x = 4;
  1208.         break;
  1209.  
  1210.     case 20:
  1211.     case 21:
  1212.         x = 5;
  1213.         break;
  1214.  
  1215.     case 22:
  1216.     case 23:
  1217.         x = 6;
  1218.         break;
  1219.  
  1220.     case 24:
  1221.     case 25:
  1222.         x = 7;
  1223.     }
  1224.  
  1225.     switch (y)
  1226.     {
  1227.     case 10:
  1228.         y = 7;
  1229.         break;
  1230.  
  1231.     case 9:
  1232.         y = 6;
  1233.         break;
  1234.  
  1235.     case 8:
  1236.         y = 5;
  1237.         break;
  1238.  
  1239.     case 7:
  1240.         y = 4;
  1241.         break;
  1242.  
  1243.     case 6:
  1244.         y = 3;
  1245.         break;
  1246.  
  1247.     case 5:
  1248.         y = 2;
  1249.         break;
  1250.  
  1251.     case 4:
  1252.         y = 1;
  1253.         break;
  1254.  
  1255.     case 3:
  1256.         y = 0;
  1257.     }
  1258. }
  1259.  
  1260. void ObrnutaPozicijaNaTabli(int& x, int& y)
  1261. {
  1262.     switch (x)
  1263.     {
  1264.     case 10:
  1265.     case 11:
  1266.         x = 7;
  1267.         break;
  1268.  
  1269.     case 12:
  1270.     case 13:
  1271.         x = 6;
  1272.         break;
  1273.  
  1274.     case 14:
  1275.     case 15:
  1276.         x = 5;
  1277.         break;
  1278.  
  1279.     case 16:
  1280.     case 17:
  1281.         x = 4;
  1282.         break;
  1283.  
  1284.     case 18:
  1285.     case 19:
  1286.         x = 3;
  1287.         break;
  1288.  
  1289.     case 20:
  1290.     case 21:
  1291.         x = 2;
  1292.         break;
  1293.  
  1294.     case 22:
  1295.     case 23:
  1296.         x = 1;
  1297.         break;
  1298.  
  1299.     case 24:
  1300.     case 25:
  1301.         x = 0;
  1302.     }
  1303.  
  1304.     switch (y)
  1305.     {
  1306.     case 10:
  1307.         y = 0;
  1308.         break;
  1309.  
  1310.     case 9:
  1311.         y = 1;
  1312.         break;
  1313.  
  1314.     case 8:
  1315.         y = 2;
  1316.         break;
  1317.  
  1318.     case 7:
  1319.         y = 3;
  1320.         break;
  1321.  
  1322.     case 6:
  1323.         y = 4;
  1324.         break;
  1325.  
  1326.     case 5:
  1327.         y = 5;
  1328.         break;
  1329.  
  1330.     case 4:
  1331.         y = 6;
  1332.         break;
  1333.  
  1334.     case 3:
  1335.         y = 7;
  1336.     }
  1337. }
  1338.  
  1339. void NoviPotez(Tabla& tabla)
  1340. {
  1341.     for (int a = 0; a < 8; a++)
  1342.         for (int b = 0; b < 8; b++)
  1343.         {
  1344.             if (tabla.polje[a][b].stanjePolja == IZABRANO)
  1345.                 tabla.polje[a][b].stanjePolja = NEUTRALNO;
  1346.  
  1347.             if (tabla.polje[a][b].stanjePolja == NAPADNUTO)
  1348.                 tabla.polje[a][b].stanjePolja = NEUTRALNO;
  1349.  
  1350.             if (!wcscmp(tabla.polje[a][b].figura, TACKA))
  1351.                 wcscpy(tabla.polje[a][b].figura, PRAZNO);
  1352.  
  1353.             if (!wcscmp(tabla.polje[a][b].figura, PRAZNO))
  1354.                 tabla.polje[a][b].bojaFigure = ZELENO;
  1355.         }
  1356. }
  1357.  
  1358. void ObrisiAnpasan(Tabla& tabla)
  1359. {
  1360.     for (int a = 0; a < 8; a++)
  1361.         for (int b = 0; b < 8; b++)
  1362.             if (tabla.polje[a][b].anpasan == UKLJUCENO)
  1363.                 tabla.polje[a][b].anpasan = ISKLJUCENO;
  1364.  
  1365. }
  1366.  
  1367. void PozicijaIzabranog(int& xizb, int& yizb, Tabla tabla)
  1368. {
  1369.     for (int a = 0; a < 8; a++)
  1370.         for (int b = 0; b < 8; b++)
  1371.             if (tabla.polje[a][b].stanjePolja == IZABRANO)
  1372.             {
  1373.                 yizb = a;
  1374.                 xizb = b;
  1375.                 return;
  1376.             }
  1377. }
  1378.  
  1379. short JelUnutarTable(int x, int y)
  1380. {
  1381.     if (x >= 0 && x <= 7 && y >= 0 && y <= 7)
  1382.         return 1;
  1383.     else
  1384.         return 0;
  1385. }
  1386.  
  1387. void OdstampajKonzolu()
  1388. {
  1389.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  1390.     _setmode(_fileno(stdout), _O_U8TEXT);
  1391.  
  1392.     gotoxy(0, 0);
  1393.  
  1394.     if (boja == SVETLO)
  1395.         SetConsoleTextAttribute(console, 45);
  1396.     else if (boja == TAMNO)
  1397.         SetConsoleTextAttribute(console, 93);
  1398.     else if (boja == SIVO)
  1399.         SetConsoleTextAttribute(console, 141);
  1400.  
  1401.     wprintf(L"");  // save
  1402.  
  1403.     if (boja == SVETLO)
  1404.         SetConsoleTextAttribute(console, 46);
  1405.     else if (boja == TAMNO)
  1406.         SetConsoleTextAttribute(console, 94);
  1407.     else if (boja == SIVO)
  1408.         SetConsoleTextAttribute(console, 142);
  1409.  
  1410.     wprintf(L"");  // open
  1411.  
  1412.     if (boja == SVETLO)
  1413.         SetConsoleTextAttribute(console, 44);
  1414.     else if (boja == TAMNO)
  1415.         SetConsoleTextAttribute(console, 92);
  1416.     else if (boja == SIVO)
  1417.         SetConsoleTextAttribute(console, 140);
  1418.  
  1419.     wprintf(L"");  // restart      
  1420.  
  1421.     if (boja == SVETLO)
  1422.         SetConsoleTextAttribute(console, 36);
  1423.     else if (boja == TAMNO)
  1424.         SetConsoleTextAttribute(console, 87);
  1425.     else if (boja == SIVO)
  1426.         SetConsoleTextAttribute(console, 138);
  1427.  
  1428.     // gear 
  1429.     wprintf(L"");  // color
  1430.     wprintf(L"");  // resize
  1431.     wprintf(L"");  // back
  1432.     wprintf(L"                  "); // space
  1433.  
  1434.     if (rotacija == UKLJUCENO)
  1435.         wprintf(L"");  // rotation 
  1436.     else
  1437.         wprintf(L"");  // rotation 
  1438.  
  1439.     if (boja == SVETLO)
  1440.         SetConsoleTextAttribute(console, 47);
  1441.     else if (boja == TAMNO)
  1442.         SetConsoleTextAttribute(console, 95);
  1443.     else if (boja == SIVO)
  1444.         SetConsoleTextAttribute(console, 143);
  1445.  
  1446.     wprintf(L"");  // info
  1447.  
  1448.     if (boja == SVETLO)
  1449.         SetConsoleTextAttribute(console, 44);
  1450.     else if (boja == TAMNO)
  1451.         SetConsoleTextAttribute(console, 92);
  1452.     else if (boja == SIVO)
  1453.         SetConsoleTextAttribute(console, 140);
  1454.  
  1455.     wprintf(L"\n");  // quit
  1456.  
  1457.     if (boja == SVETLO)
  1458.         SetConsoleTextAttribute(console, 36);
  1459.     else if (boja == TAMNO)
  1460.         SetConsoleTextAttribute(console, 87);
  1461.     else if (boja == SIVO)
  1462.         SetConsoleTextAttribute(console, 138);
  1463.  
  1464.     wprintf(L"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");
  1465.     wprintf(L"┏━━━━━┓                     ┏━━━━━┓ \n");
  1466.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  1467.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  1468.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  1469.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  1470.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  1471.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  1472.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  1473.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  1474.     wprintf(L"┗━━━━━┛                     ┗━━━━━┛ \n");
  1475.     wprintf(L"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ \n");
  1476.     wprintf(L"┃                                 ┃ \n");
  1477.     wprintf(L"┃                                 ┃ \n");
  1478.     wprintf(L"┃                                 ┃ \n");
  1479.     wprintf(L"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ");
  1480.  
  1481.     ObrisiTerminal();
  1482.  
  1483.     if (boja == SVETLO)
  1484.         SetConsoleTextAttribute(console, 68);
  1485.     else if (boja == TAMNO)
  1486.         SetConsoleTextAttribute(console, 119);
  1487.     else if (boja == SIVO)
  1488.         SetConsoleTextAttribute(console, 170);
  1489.  
  1490.     gotoxy(8, 2);
  1491.     wprintf(L"████████████████████");
  1492.     gotoxy(8, 3);
  1493.     wprintf(L"██");
  1494.     gotoxy(8, 4);
  1495.     wprintf(L"██");
  1496.     gotoxy(8, 5);
  1497.     wprintf(L"██");
  1498.     gotoxy(8, 6);
  1499.     wprintf(L"██");
  1500.     gotoxy(8, 7);
  1501.     wprintf(L"██");
  1502.     gotoxy(8, 8);
  1503.     wprintf(L"██");
  1504.     gotoxy(8, 9);
  1505.     wprintf(L"██");
  1506.     gotoxy(8, 10);
  1507.     wprintf(L"██");
  1508.     gotoxy(26, 3);
  1509.     wprintf(L"██");
  1510.     gotoxy(26, 4);
  1511.     wprintf(L"██");
  1512.     gotoxy(26, 5);
  1513.     wprintf(L"██");
  1514.     gotoxy(26, 6);
  1515.     wprintf(L"██");
  1516.     gotoxy(26, 7);
  1517.     wprintf(L"██");
  1518.     gotoxy(26, 8);
  1519.     wprintf(L"██");
  1520.     gotoxy(26, 9);
  1521.     wprintf(L"██");
  1522.     gotoxy(26, 10);
  1523.     wprintf(L"██");
  1524.     gotoxy(8, 11);
  1525.     wprintf(L"████████████████████");
  1526. }
  1527.  
  1528. void OsveziTablu(Tabla tabla)
  1529. {
  1530.     if ((brPoteza % 2 && rotacija == UKLJUCENO && JelMozeIgratiCrni(tabla)) || (!JelMozeIgratiBeli(tabla) && rotacija == UKLJUCENO && brPoteza % 2 == 0))
  1531.     {
  1532.         if (sacekaj == UKLJUCENO && JelMozeIgratiBeli(tabla))
  1533.         {
  1534.             OdstampajTablu(tabla);
  1535.             Sleep(260);
  1536.         }
  1537.  
  1538.         ObrnutoOdstampajTablu(tabla);
  1539.     }
  1540.     else
  1541.     {
  1542.         if (sacekaj == UKLJUCENO && rotacija == UKLJUCENO && JelMozeIgratiCrni(tabla))
  1543.         {
  1544.             ObrnutoOdstampajTablu(tabla);
  1545.             Sleep(260);
  1546.         }
  1547.  
  1548.         OdstampajTablu(tabla);
  1549.     }
  1550. }
  1551.  
  1552. BOOL RegDelnodeRecurse(HKEY hKeyRoot, LPTSTR lpSubKey)
  1553. {
  1554.     LPTSTR lpEnd;
  1555.     LONG lResult;
  1556.     DWORD dwSize;
  1557.     TCHAR szName[MAX_PATH];
  1558.     HKEY hKey;
  1559.     FILETIME ftWrite;
  1560.  
  1561.     // First, see if we can delete the key without having
  1562.     // to recurse.
  1563.  
  1564.     lResult = RegDeleteKey(hKeyRoot, lpSubKey);
  1565.  
  1566.     if (lResult == ERROR_SUCCESS)
  1567.         return TRUE;
  1568.  
  1569.     lResult = RegOpenKeyEx(hKeyRoot, lpSubKey, 0, KEY_READ, &hKey);
  1570.  
  1571.     if (lResult != ERROR_SUCCESS)
  1572.     {
  1573.         if (lResult == ERROR_FILE_NOT_FOUND) {
  1574.             printf("Key not found.\n");
  1575.             return TRUE;
  1576.         }
  1577.         else {
  1578.             printf("Error opening key.\n");
  1579.             return FALSE;
  1580.         }
  1581.     }
  1582.  
  1583.     lpEnd = lpSubKey + lstrlen(lpSubKey);
  1584.  
  1585.     if (*(lpEnd - 1) != TEXT('\\'))
  1586.     {
  1587.         *lpEnd = TEXT('\\');
  1588.         lpEnd++;
  1589.         *lpEnd = TEXT('\0');
  1590.     }
  1591.  
  1592.     dwSize = MAX_PATH;
  1593.     lResult = RegEnumKeyEx(hKey, 0, szName, &dwSize, NULL,
  1594.         NULL, NULL, &ftWrite);
  1595.  
  1596.     if (lResult == ERROR_SUCCESS)
  1597.     {
  1598.         do {
  1599.  
  1600.             *lpEnd = TEXT('\0');
  1601.             StringCchCat(lpSubKey, MAX_PATH * 2, szName);
  1602.  
  1603.             if (!RegDelnodeRecurse(hKeyRoot, lpSubKey)) {
  1604.                 break;
  1605.             }
  1606.  
  1607.             dwSize = MAX_PATH;
  1608.  
  1609.             lResult = RegEnumKeyEx(hKey, 0, szName, &dwSize, NULL,
  1610.                 NULL, NULL, &ftWrite);
  1611.  
  1612.         } while (lResult == ERROR_SUCCESS);
  1613.     }
  1614.  
  1615.     lpEnd--;
  1616.     *lpEnd = TEXT('\0');
  1617.  
  1618.     RegCloseKey(hKey);
  1619.  
  1620.     lResult = RegDeleteKey(hKeyRoot, lpSubKey);
  1621.  
  1622.     if (lResult == ERROR_SUCCESS)
  1623.         return TRUE;
  1624.  
  1625.     return FALSE;
  1626. }
  1627.  
  1628. void ObrisiTerminal()
  1629. {
  1630.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  1631.     _setmode(_fileno(stdout), _O_U8TEXT);
  1632.  
  1633.     if (boja == SVETLO)
  1634.         SetConsoleTextAttribute(console, 85);
  1635.     else if (boja == TAMNO)
  1636.         SetConsoleTextAttribute(console, 102);
  1637.     else if (boja == SIVO)
  1638.         SetConsoleTextAttribute(console, 153);
  1639.  
  1640.     gotoxy(2, 13);
  1641.     wprintf(L"████████████████████████████████");
  1642.     gotoxy(2, 14);
  1643.     wprintf(L"████████████████████████████████");
  1644.     gotoxy(2, 15);
  1645.     wprintf(L"████████████████████████████████");
  1646. }
  1647.  
  1648. Tabla StaviFiguruNaXY(Tabla tabla, int x, int y)
  1649. {
  1650.     int xizb, yizb;
  1651.     PozicijaIzabranog(xizb, yizb, tabla);
  1652.     wcscpy(tabla.polje[y][x].figura, tabla.polje[yizb][xizb].figura);
  1653.     wcscpy(tabla.polje[yizb][xizb].figura, PRAZNO);
  1654.     tabla.polje[y][x].bojaFigure = tabla.polje[yizb][xizb].bojaFigure;
  1655.     NoviPotez(tabla);
  1656.  
  1657.     return tabla;
  1658. }
  1659.  
  1660. short JelSahBeli(Tabla tabla, int xpomeraj, int ypomeraj)
  1661. {
  1662.     int x = 0, y = 0;
  1663.  
  1664.     for (int i = 0; i < 64; i++)
  1665.     {
  1666.         if (!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == BELO)
  1667.         {
  1668.             if (JelUnutarTable(i % 8 + xpomeraj, i / 8 + ypomeraj))
  1669.             {
  1670.                 y = i / 8 + ypomeraj;
  1671.                 x = i % 8 + xpomeraj;
  1672.             }
  1673.             else
  1674.             {
  1675.                 x = i % 8;
  1676.                 y = i / 8;
  1677.             }
  1678.  
  1679.             break;
  1680.         }
  1681.     }
  1682.  
  1683.     if (!wcscmp(tabla.polje[y - 1][x + 1].figura, PIJUN) && tabla.polje[y - 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y - 1))
  1684.         return 1;
  1685.  
  1686.     if (!wcscmp(tabla.polje[y - 1][x - 1].figura, PIJUN) && tabla.polje[y - 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y - 1))
  1687.         return 1;
  1688.  
  1689.     if (!wcscmp(tabla.polje[y - 2][x - 1].figura, KONJ) && tabla.polje[y - 2][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y - 2))
  1690.         return 1;
  1691.  
  1692.     if (!wcscmp(tabla.polje[y - 2][x + 1].figura, KONJ) && tabla.polje[y - 2][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y - 2))
  1693.         return 1;
  1694.  
  1695.     if (!wcscmp(tabla.polje[y - 1][x + 2].figura, KONJ) && tabla.polje[y - 1][x + 2].bojaFigure == CRNO && JelUnutarTable(x + 2, y - 1))
  1696.         return 1;
  1697.  
  1698.     if (!wcscmp(tabla.polje[y + 1][x + 2].figura, KONJ) && tabla.polje[y + 1][x + 2].bojaFigure == CRNO && JelUnutarTable(x + 2, y + 1))
  1699.         return 1;
  1700.  
  1701.     if (!wcscmp(tabla.polje[y + 2][x + 1].figura, KONJ) && tabla.polje[y + 2][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y + 2))
  1702.         return 1;
  1703.  
  1704.     if (!wcscmp(tabla.polje[y + 2][x - 1].figura, KONJ) && tabla.polje[y + 2][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y + 2))
  1705.         return 1;
  1706.  
  1707.     if (!wcscmp(tabla.polje[y + 1][x - 2].figura, KONJ) && tabla.polje[y + 1][x - 2].bojaFigure == CRNO && JelUnutarTable(x - 2, y + 1))
  1708.         return 1;
  1709.  
  1710.     if (!wcscmp(tabla.polje[y - 1][x - 2].figura, KONJ) && tabla.polje[y - 1][x - 2].bojaFigure == CRNO && JelUnutarTable(x - 2, y - 1))
  1711.         return 1;
  1712.  
  1713.     for (int i = 1; i < 8; i++)
  1714.     {
  1715.         if ((!wcscmp(tabla.polje[y][x - i].figura, PRAZNO) || (!wcscmp(tabla.polje[y][x - i].figura, KRALJ) && tabla.polje[y][x - i].bojaFigure == BELO)) && JelUnutarTable(x - i, y));
  1716.         else if ((!wcscmp(tabla.polje[y][x - i].figura, TOP) || !wcscmp(tabla.polje[y][x - i].figura, KRALJICA)) && tabla.polje[y][x - i].bojaFigure == CRNO && JelUnutarTable(x - i, y))
  1717.             return 1;
  1718.         else
  1719.             break;
  1720.     }
  1721.  
  1722.     for (int i = 1; i < 8; i++)
  1723.     {
  1724.         if ((!wcscmp(tabla.polje[y][x + i].figura, PRAZNO) || (!wcscmp(tabla.polje[y][x + i].figura, KRALJ) && tabla.polje[y][x + i].bojaFigure == BELO)) && JelUnutarTable(x + i, y));
  1725.         else if ((!wcscmp(tabla.polje[y][x + i].figura, TOP) || !wcscmp(tabla.polje[y][x + i].figura, KRALJICA)) && tabla.polje[y][x + i].bojaFigure == CRNO && JelUnutarTable(x + i, y))
  1726.             return 1;
  1727.         else
  1728.             break;
  1729.     }
  1730.  
  1731.     for (int i = 1; i < 8; i++)
  1732.     {
  1733.         if ((!wcscmp(tabla.polje[y - i][x].figura, PRAZNO) || (!wcscmp(tabla.polje[y - i][x].figura, KRALJ) && tabla.polje[y - i][x].bojaFigure == BELO)) && JelUnutarTable(x, y - i));
  1734.         else if ((!wcscmp(tabla.polje[y - i][x].figura, TOP) || !wcscmp(tabla.polje[y - i][x].figura, KRALJICA)) && tabla.polje[y - i][x].bojaFigure == CRNO && JelUnutarTable(x, y - i))
  1735.             return 1;
  1736.         else
  1737.             break;
  1738.     }
  1739.  
  1740.     for (int i = 1; i < 8; i++)
  1741.     {
  1742.         if ((!wcscmp(tabla.polje[y + i][x].figura, PRAZNO) || (!wcscmp(tabla.polje[y + i][x].figura, KRALJ) && tabla.polje[y + i][x].bojaFigure == BELO)) && JelUnutarTable(x, y + i));
  1743.         else if ((!wcscmp(tabla.polje[y + i][x].figura, TOP) || !wcscmp(tabla.polje[y + i][x].figura, KRALJICA)) && tabla.polje[y + i][x].bojaFigure == CRNO && JelUnutarTable(x, y + i))
  1744.             return 1;
  1745.         else
  1746.             break;
  1747.     }
  1748.  
  1749.     for (int i = 1; i < 8; i++)
  1750.     {
  1751.         if ((!wcscmp(tabla.polje[y - i][x - i].figura, PRAZNO) || (!wcscmp(tabla.polje[y - i][x - i].figura, KRALJ) && tabla.polje[y - i][x - i].bojaFigure == BELO)) && JelUnutarTable(x - i, y - i));
  1752.         else if ((!wcscmp(tabla.polje[y - i][x - i].figura, LOVAC) || !wcscmp(tabla.polje[y - i][x - i].figura, KRALJICA)) && tabla.polje[y - i][x - i].bojaFigure == CRNO && JelUnutarTable(x - i, y - i))
  1753.             return 1;
  1754.         else
  1755.             break;
  1756.     }
  1757.  
  1758.     for (int i = 1; i < 8; i++)
  1759.     {
  1760.         if ((!wcscmp(tabla.polje[y - i][x + i].figura, PRAZNO) || (!wcscmp(tabla.polje[y - i][x + i].figura, KRALJ) && tabla.polje[y - i][x + i].bojaFigure == BELO)) && JelUnutarTable(x + i, y - i));
  1761.         else if ((!wcscmp(tabla.polje[y - i][x + i].figura, LOVAC) || !wcscmp(tabla.polje[y - i][x + i].figura, KRALJICA)) && tabla.polje[y - i][x + i].bojaFigure == CRNO && JelUnutarTable(x + i, y - i))
  1762.             return 1;
  1763.         else
  1764.             break;
  1765.     }
  1766.  
  1767.     for (int i = 1; i < 8; i++)
  1768.     {
  1769.         if ((!wcscmp(tabla.polje[y + i][x - i].figura, PRAZNO) || (!wcscmp(tabla.polje[y + i][x - i].figura, KRALJ) && tabla.polje[y + i][x - i].bojaFigure == BELO)) && JelUnutarTable(x - i, y + i));
  1770.         else if ((!wcscmp(tabla.polje[y + i][x - i].figura, LOVAC) || !wcscmp(tabla.polje[y + i][x - i].figura, KRALJICA)) && tabla.polje[y + i][x - i].bojaFigure == CRNO && JelUnutarTable(x - i, y + i))
  1771.             return 1;
  1772.         else
  1773.             break;
  1774.     }
  1775.  
  1776.     for (int i = 1; i < 8; i++)
  1777.     {
  1778.         if ((!wcscmp(tabla.polje[y + i][x + i].figura, PRAZNO) || (!wcscmp(tabla.polje[y + i][x + i].figura, KRALJ) && tabla.polje[y + i][x + i].bojaFigure == BELO)) && JelUnutarTable(x + i, y + i));
  1779.         else if ((!wcscmp(tabla.polje[y + i][x + i].figura, LOVAC) || !wcscmp(tabla.polje[y + i][x + i].figura, KRALJICA)) && tabla.polje[y + i][x + i].bojaFigure == CRNO && JelUnutarTable(x + i, y + i))
  1780.             return 1;
  1781.         else
  1782.             break;
  1783.     }
  1784.  
  1785.     if (!wcscmp(tabla.polje[y][x - 1].figura, KRALJ) && tabla.polje[y][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y))
  1786.         return 1;
  1787.  
  1788.     if (!wcscmp(tabla.polje[y][x + 1].figura, KRALJ) && tabla.polje[y][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y))
  1789.         return 1;
  1790.  
  1791.     if (!wcscmp(tabla.polje[y - 1][x].figura, KRALJ) && tabla.polje[y - 1][x].bojaFigure == CRNO && JelUnutarTable(x, y - 1))
  1792.         return 1;
  1793.  
  1794.     if (!wcscmp(tabla.polje[y + 1][x].figura, KRALJ) && tabla.polje[y + 1][x].bojaFigure == CRNO && JelUnutarTable(x, y + 1))
  1795.         return 1;
  1796.  
  1797.     if (!wcscmp(tabla.polje[y - 1][x - 1].figura, KRALJ) && tabla.polje[y - 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y - 1))
  1798.         return 1;
  1799.  
  1800.     if (!wcscmp(tabla.polje[y - 1][x + 1].figura, KRALJ) && tabla.polje[y - 1][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y - 1))
  1801.         return 1;
  1802.  
  1803.     if (!wcscmp(tabla.polje[y + 1][x - 1].figura, KRALJ) && tabla.polje[y + 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y + 1))
  1804.         return 1;
  1805.  
  1806.     if (!wcscmp(tabla.polje[y + 1][x + 1].figura, KRALJ) && tabla.polje[y + 1][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y + 1))
  1807.         return 1;
  1808.  
  1809.     return 0;
  1810. }
  1811.  
  1812. short JelSahCrni(Tabla tabla, int xpomeraj, int ypomeraj)
  1813. {
  1814.     int x = 0, y = 0;
  1815.  
  1816.     for (int i = 0; i < 64; i++)
  1817.     {
  1818.         if (!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == CRNO)
  1819.         {
  1820.             if (JelUnutarTable(i % 8 + xpomeraj, i / 8 + ypomeraj))
  1821.             {
  1822.                 y = i / 8 + ypomeraj;
  1823.                 x = i % 8 + xpomeraj;
  1824.             }
  1825.             else
  1826.             {
  1827.                 x = i % 8;
  1828.                 y = i / 8;
  1829.             }
  1830.  
  1831.             break;
  1832.         }
  1833.     }
  1834.  
  1835.     if (!wcscmp(tabla.polje[y + 1][x + 1].figura, PIJUN) && tabla.polje[y + 1][x - 1].bojaFigure == BELO && JelUnutarTable(x + 1, y + 1))
  1836.         return 1;
  1837.  
  1838.     if (!wcscmp(tabla.polje[y + 1][x - 1].figura, PIJUN) && tabla.polje[y + 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y + 1))
  1839.         return 1;
  1840.  
  1841.     if (!wcscmp(tabla.polje[y - 2][x - 1].figura, KONJ) && tabla.polje[y - 2][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y - 2))
  1842.         return 1;
  1843.  
  1844.     if (!wcscmp(tabla.polje[y - 2][x + 1].figura, KONJ) && tabla.polje[y - 2][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y - 2))
  1845.         return 1;
  1846.  
  1847.     if (!wcscmp(tabla.polje[y - 1][x + 2].figura, KONJ) && tabla.polje[y - 1][x + 2].bojaFigure == BELO && JelUnutarTable(x + 2, y - 1))
  1848.         return 1;
  1849.  
  1850.     if (!wcscmp(tabla.polje[y + 1][x + 2].figura, KONJ) && tabla.polje[y + 1][x + 2].bojaFigure == BELO && JelUnutarTable(x + 2, y + 1))
  1851.         return 1;
  1852.  
  1853.     if (!wcscmp(tabla.polje[y + 2][x + 1].figura, KONJ) && tabla.polje[y + 2][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y + 2))
  1854.         return 1;
  1855.  
  1856.     if (!wcscmp(tabla.polje[y + 2][x - 1].figura, KONJ) && tabla.polje[y + 2][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y + 2))
  1857.         return 1;
  1858.  
  1859.     if (!wcscmp(tabla.polje[y + 1][x - 2].figura, KONJ) && tabla.polje[y + 1][x - 2].bojaFigure == BELO && JelUnutarTable(x - 2, y + 1))
  1860.         return 1;
  1861.  
  1862.     if (!wcscmp(tabla.polje[y - 1][x - 2].figura, KONJ) && tabla.polje[y - 1][x - 2].bojaFigure == BELO && JelUnutarTable(x - 2, y - 1))
  1863.         return 1;
  1864.  
  1865.     for (int i = 1; i < 8; i++)
  1866.     {
  1867.         if ((!wcscmp(tabla.polje[y][x - i].figura, PRAZNO) || (!wcscmp(tabla.polje[y][x - i].figura, KRALJ) && tabla.polje[y][x - i].bojaFigure == CRNO)) && JelUnutarTable(x - i, y));
  1868.         else if ((!wcscmp(tabla.polje[y][x - i].figura, TOP) || !wcscmp(tabla.polje[y][x - i].figura, KRALJICA)) && tabla.polje[y][x - i].bojaFigure == BELO && JelUnutarTable(x - i, y))
  1869.             return 1;
  1870.         else
  1871.             break;
  1872.     }
  1873.  
  1874.     for (int i = 1; i < 8; i++)
  1875.     {
  1876.         if ((!wcscmp(tabla.polje[y][x + i].figura, PRAZNO) || (!wcscmp(tabla.polje[y][x + i].figura, KRALJ) && tabla.polje[y][x + i].bojaFigure == CRNO)) && JelUnutarTable(x + i, y));
  1877.         else if ((!wcscmp(tabla.polje[y][x + i].figura, TOP) || !wcscmp(tabla.polje[y][x + i].figura, KRALJICA)) && tabla.polje[y][x + i].bojaFigure == BELO && JelUnutarTable(x + i, y))
  1878.             return 1;
  1879.         else
  1880.             break;
  1881.     }
  1882.  
  1883.     for (int i = 1; i < 8; i++)
  1884.     {
  1885.         if ((!wcscmp(tabla.polje[y - i][x].figura, PRAZNO) || (!wcscmp(tabla.polje[y - i][x].figura, KRALJ) && tabla.polje[y - i][x].bojaFigure == CRNO)) && JelUnutarTable(x, y - i));
  1886.         else if ((!wcscmp(tabla.polje[y - i][x].figura, TOP) || !wcscmp(tabla.polje[y - i][x].figura, KRALJICA)) && tabla.polje[y - i][x].bojaFigure == BELO && JelUnutarTable(x, y - i))
  1887.             return 1;
  1888.         else
  1889.             break;
  1890.     }
  1891.  
  1892.     for (int i = 1; i < 8; i++)
  1893.     {
  1894.         if ((!wcscmp(tabla.polje[y + i][x].figura, PRAZNO) || (!wcscmp(tabla.polje[y + i][x].figura, KRALJ) && tabla.polje[y + i][x].bojaFigure == CRNO)) && JelUnutarTable(x, y + i));
  1895.         else if ((!wcscmp(tabla.polje[y + i][x].figura, TOP) || !wcscmp(tabla.polje[y + i][x].figura, KRALJICA)) && tabla.polje[y + i][x].bojaFigure == BELO && JelUnutarTable(x, y + i))
  1896.             return 1;
  1897.         else
  1898.             break;
  1899.     }
  1900.  
  1901.     for (int i = 1; i < 8; i++)
  1902.     {
  1903.         if ((!wcscmp(tabla.polje[y - i][x - i].figura, PRAZNO) || (!wcscmp(tabla.polje[y - i][x - i].figura, KRALJ) && tabla.polje[y - i][x - i].bojaFigure == CRNO)) && JelUnutarTable(x - i, y - i));
  1904.         else if ((!wcscmp(tabla.polje[y - i][x - i].figura, LOVAC) || !wcscmp(tabla.polje[y - i][x - i].figura, KRALJICA)) && tabla.polje[y - i][x - i].bojaFigure == BELO && JelUnutarTable(x - i, y - i))
  1905.             return 1;
  1906.         else
  1907.             break;
  1908.     }
  1909.  
  1910.     for (int i = 1; i < 8; i++)
  1911.     {
  1912.         if ((!wcscmp(tabla.polje[y - i][x + i].figura, PRAZNO) || (!wcscmp(tabla.polje[y - i][x + i].figura, KRALJ) && tabla.polje[y - i][x + i].bojaFigure == CRNO)) && JelUnutarTable(x + i, y - i));
  1913.         else if ((!wcscmp(tabla.polje[y - i][x + i].figura, LOVAC) || !wcscmp(tabla.polje[y - i][x + i].figura, KRALJICA)) && tabla.polje[y - i][x + i].bojaFigure == BELO && JelUnutarTable(x + i, y - i))
  1914.             return 1;
  1915.         else
  1916.             break;
  1917.     }
  1918.  
  1919.     for (int i = 1; i < 8; i++)
  1920.     {
  1921.         if ((!wcscmp(tabla.polje[y + i][x - i].figura, PRAZNO) || (!wcscmp(tabla.polje[y + i][x - i].figura, KRALJ) && tabla.polje[y + i][x - i].bojaFigure == CRNO)) && JelUnutarTable(x - i, y + i));
  1922.         else if ((!wcscmp(tabla.polje[y + i][x - i].figura, LOVAC) || !wcscmp(tabla.polje[y + i][x - i].figura, KRALJICA)) && tabla.polje[y + i][x - i].bojaFigure == BELO && JelUnutarTable(x - i, y + i))
  1923.             return 1;
  1924.         else
  1925.             break;
  1926.     }
  1927.  
  1928.     for (int i = 1; i < 8; i++)
  1929.     {
  1930.         if ((!wcscmp(tabla.polje[y + i][x + i].figura, PRAZNO) || (!wcscmp(tabla.polje[y + i][x + i].figura, KRALJ) && tabla.polje[y + i][x + i].bojaFigure == CRNO)) && JelUnutarTable(x + i, y + i));
  1931.         else if ((!wcscmp(tabla.polje[y + i][x + i].figura, LOVAC) || !wcscmp(tabla.polje[y + i][x + i].figura, KRALJICA)) && tabla.polje[y + i][x + i].bojaFigure == BELO && JelUnutarTable(x + i, y + i))
  1932.             return 1;
  1933.         else
  1934.             break;
  1935.     }
  1936.  
  1937.     if (!wcscmp(tabla.polje[y][x - 1].figura, KRALJ) && tabla.polje[y][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y))
  1938.         return 1;
  1939.  
  1940.     if (!wcscmp(tabla.polje[y][x + 1].figura, KRALJ) && tabla.polje[y][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y))
  1941.         return 1;
  1942.  
  1943.     if (!wcscmp(tabla.polje[y - 1][x].figura, KRALJ) && tabla.polje[y - 1][x].bojaFigure == BELO && JelUnutarTable(x, y - 1))
  1944.         return 1;
  1945.  
  1946.     if (!wcscmp(tabla.polje[y + 1][x].figura, KRALJ) && tabla.polje[y + 1][x].bojaFigure == BELO && JelUnutarTable(x, y + 1))
  1947.         return 1;
  1948.  
  1949.     if (!wcscmp(tabla.polje[y - 1][x - 1].figura, KRALJ) && tabla.polje[y - 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y - 1))
  1950.         return 1;
  1951.  
  1952.     if (!wcscmp(tabla.polje[y - 1][x + 1].figura, KRALJ) && tabla.polje[y - 1][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y - 1))
  1953.         return 1;
  1954.  
  1955.     if (!wcscmp(tabla.polje[y + 1][x - 1].figura, KRALJ) && tabla.polje[y + 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y + 1))
  1956.         return 1;
  1957.  
  1958.     if (!wcscmp(tabla.polje[y + 1][x + 1].figura, KRALJ) && tabla.polje[y + 1][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y + 1))
  1959.         return 1;
  1960.  
  1961.     return 0;
  1962. }
  1963.  
  1964. short PostaviKralja(Tabla& tabla, int x, int y)
  1965. {
  1966.     short ret = 0;
  1967.  
  1968.     tabla.polje[y][x].stanjePolja = IZABRANO;
  1969.  
  1970.     if (tabla.polje[y][x].bojaFigure == BELO)
  1971.     {
  1972.         if (!wcscmp(tabla.polje[y - 1][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y - 1) && !JelSahBeli(tabla, -1, -1))
  1973.         {
  1974.             wcscpy(tabla.polje[y - 1][x - 1].figura, TACKA);
  1975.             tabla.polje[y - 1][x - 1].bojaFigure = ZELENO;
  1976.             ret = 1;
  1977.         }
  1978.         else if (wcscmp(tabla.polje[y - 1][x - 1].figura, PRAZNO) && tabla.polje[y - 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y - 1) && !JelSahBeli(tabla, -1, -1))
  1979.         {
  1980.             tabla.polje[y - 1][x - 1].stanjePolja = NAPADNUTO;
  1981.             ret = 1;
  1982.         }
  1983.  
  1984.         if (!wcscmp(tabla.polje[y - 1][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y - 1) && !JelSahBeli(tabla, 1, -1))
  1985.         {
  1986.             wcscpy(tabla.polje[y - 1][x + 1].figura, TACKA);
  1987.             tabla.polje[y - 1][x + 1].bojaFigure = ZELENO;
  1988.             ret = 1;
  1989.         }
  1990.         else if (wcscmp(tabla.polje[y - 1][x + 1].figura, PRAZNO) && tabla.polje[y - 1][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y - 1) && !JelSahBeli(tabla, 1, -1))
  1991.         {
  1992.             tabla.polje[y - 1][x + 1].stanjePolja = NAPADNUTO;
  1993.             ret = 1;
  1994.         }
  1995.  
  1996.         if (!wcscmp(tabla.polje[y + 1][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y + 1) && !JelSahBeli(tabla, -1, 1))
  1997.         {
  1998.             wcscpy(tabla.polje[y + 1][x - 1].figura, TACKA);
  1999.             tabla.polje[y + 1][x - 1].bojaFigure = ZELENO;
  2000.             ret = 1;
  2001.         }
  2002.         else if (wcscmp(tabla.polje[y + 1][x - 1].figura, PRAZNO) && tabla.polje[y + 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y + 1) && !JelSahBeli(tabla, -1, 1))
  2003.         {
  2004.             tabla.polje[y + 1][x - 1].stanjePolja = NAPADNUTO;
  2005.             ret = 1;
  2006.         }
  2007.  
  2008.         if (!wcscmp(tabla.polje[y + 1][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y + 1) && !JelSahBeli(tabla, 1, 1))
  2009.         {
  2010.             wcscpy(tabla.polje[y + 1][x + 1].figura, TACKA);
  2011.             tabla.polje[y + 1][x + 1].bojaFigure = ZELENO;
  2012.             ret = 1;
  2013.         }
  2014.         else if (wcscmp(tabla.polje[y + 1][x + 1].figura, PRAZNO) && tabla.polje[y + 1][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y + 1) && !JelSahBeli(tabla, 1, 1))
  2015.         {
  2016.             tabla.polje[y + 1][x + 1].stanjePolja = NAPADNUTO;
  2017.             ret = 1;
  2018.         }
  2019.  
  2020.         if (!wcscmp(tabla.polje[y][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y) && !JelSahBeli(tabla, 1, 0))
  2021.         {
  2022.             wcscpy(tabla.polje[y][x + 1].figura, TACKA);
  2023.             tabla.polje[y][x + 1].bojaFigure = ZELENO;
  2024.             ret = 1;
  2025.         }
  2026.         else if (wcscmp(tabla.polje[y][x + 1].figura, PRAZNO) && tabla.polje[y][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y) && !JelSahBeli(tabla, 1, 0))
  2027.         {
  2028.             tabla.polje[y][x + 1].stanjePolja = NAPADNUTO;
  2029.             ret = 1;
  2030.         }
  2031.  
  2032.         if (!wcscmp(tabla.polje[y + 1][x].figura, PRAZNO) && JelUnutarTable(x, y + 1) && !JelSahBeli(tabla, 0, 1))
  2033.         {
  2034.             wcscpy(tabla.polje[y + 1][x].figura, TACKA);
  2035.             tabla.polje[y + 1][x].bojaFigure = ZELENO;
  2036.             ret = 1;
  2037.         }
  2038.         else if (wcscmp(tabla.polje[y + 1][x].figura, PRAZNO) && tabla.polje[y + 1][x].bojaFigure == CRNO && JelUnutarTable(x, y + 1) && !JelSahBeli(tabla, 0, 1))
  2039.         {
  2040.             tabla.polje[y + 1][x].stanjePolja = NAPADNUTO;
  2041.             ret = 1;
  2042.         }
  2043.  
  2044.         if (!wcscmp(tabla.polje[y][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y) && !JelSahBeli(tabla, -1, 0))
  2045.         {
  2046.             wcscpy(tabla.polje[y][x - 1].figura, TACKA);
  2047.             tabla.polje[y][x - 1].bojaFigure = ZELENO;
  2048.             ret = 1;
  2049.         }
  2050.         else if (wcscmp(tabla.polje[y][x - 1].figura, PRAZNO) && tabla.polje[y][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y) && !JelSahBeli(tabla, -1, 0))
  2051.         {
  2052.             tabla.polje[y][x - 1].stanjePolja = NAPADNUTO;
  2053.             ret = 1;
  2054.         }
  2055.  
  2056.         if (!wcscmp(tabla.polje[y - 1][x].figura, PRAZNO) && JelUnutarTable(x, y - 1) && !JelSahBeli(tabla, 0, -1))
  2057.         {
  2058.             wcscpy(tabla.polje[y - 1][x].figura, TACKA);
  2059.             tabla.polje[y - 1][x].bojaFigure = ZELENO;
  2060.             ret = 1;
  2061.         }
  2062.         else if (wcscmp(tabla.polje[y - 1][x].figura, PRAZNO) && tabla.polje[y - 1][x].bojaFigure == CRNO && JelUnutarTable(x, y - 1) && !JelSahBeli(tabla, 0, -1))
  2063.         {
  2064.             tabla.polje[y - 1][x].stanjePolja = NAPADNUTO;
  2065.             ret = 1;
  2066.         }
  2067.  
  2068.         if (tabla.malarbeli == UKLJUCENO && !wcscmp(tabla.polje[7][5].figura, TACKA) && !wcscmp(tabla.polje[7][6].figura, PRAZNO) && !JelSahBeli(tabla, 0, 0) && !JelSahBeli(tabla, 1, 0) && !JelSahBeli(tabla, 2, 0))
  2069.         {
  2070.             wcscpy(tabla.polje[7][6].figura, TACKA);
  2071.             tabla.polje[7][6].bojaFigure = ZELENO;
  2072.             ret = 1;
  2073.         }
  2074.  
  2075.         if (tabla.velikarbeli == UKLJUCENO && !wcscmp(tabla.polje[7][3].figura, TACKA) && !wcscmp(tabla.polje[7][2].figura, PRAZNO) && !wcscmp(tabla.polje[7][1].figura, PRAZNO) && !JelSahBeli(tabla, 0, 0) && !JelSahBeli(tabla, -1, 0) && !JelSahBeli(tabla, -2, 0) && !JelSahBeli(tabla, -3, 0))
  2076.         {
  2077.             wcscpy(tabla.polje[7][1].figura, TACKA);
  2078.             tabla.polje[7][1].bojaFigure = ZELENO;
  2079.             ret = 1;
  2080.         }
  2081.  
  2082.     }
  2083.     else
  2084.     {
  2085.         if (!wcscmp(tabla.polje[y - 1][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y - 1) && !JelSahCrni(tabla, -1, -1))
  2086.         {
  2087.             wcscpy(tabla.polje[y - 1][x - 1].figura, TACKA);
  2088.             tabla.polje[y - 1][x - 1].bojaFigure = ZELENO;
  2089.             ret = 1;
  2090.         }
  2091.         else if (wcscmp(tabla.polje[y - 1][x - 1].figura, PRAZNO) && tabla.polje[y - 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y - 1) && !JelSahCrni(tabla, -1, -1))
  2092.         {
  2093.             tabla.polje[y - 1][x - 1].stanjePolja = NAPADNUTO;
  2094.             ret = 1;
  2095.         }
  2096.  
  2097.         if (!wcscmp(tabla.polje[y - 1][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y - 1) && !JelSahCrni(tabla, 1, -1))
  2098.         {
  2099.             wcscpy(tabla.polje[y - 1][x + 1].figura, TACKA);
  2100.             tabla.polje[y - 1][x + 1].bojaFigure = ZELENO;
  2101.             ret = 1;
  2102.         }
  2103.         else if (wcscmp(tabla.polje[y - 1][x + 1].figura, PRAZNO) && tabla.polje[y - 1][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y - 1) && !JelSahCrni(tabla, 1, -1))
  2104.         {
  2105.             tabla.polje[y - 1][x + 1].stanjePolja = NAPADNUTO;
  2106.             ret = 1;
  2107.         }
  2108.  
  2109.         if (!wcscmp(tabla.polje[y + 1][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y + 1) && !JelSahCrni(tabla, -1, 1))
  2110.         {
  2111.             wcscpy(tabla.polje[y + 1][x - 1].figura, TACKA);
  2112.             tabla.polje[y + 1][x - 1].bojaFigure = ZELENO;
  2113.         }
  2114.         else if (wcscmp(tabla.polje[y + 1][x - 1].figura, PRAZNO) && tabla.polje[y + 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y + 1) && !JelSahCrni(tabla, -1, 1))
  2115.         {
  2116.             tabla.polje[y + 1][x - 1].stanjePolja = NAPADNUTO;
  2117.             ret = 1;
  2118.         }
  2119.  
  2120.         if (!wcscmp(tabla.polje[y + 1][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y + 1) && !JelSahCrni(tabla, 1, 1))
  2121.         {
  2122.             wcscpy(tabla.polje[y + 1][x + 1].figura, TACKA);
  2123.             tabla.polje[y + 1][x + 1].bojaFigure = ZELENO;
  2124.             ret = 1;
  2125.         }
  2126.         else if (wcscmp(tabla.polje[y + 1][x + 1].figura, PRAZNO) && tabla.polje[y + 1][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y + 1) && !JelSahCrni(tabla, 1, 1))
  2127.         {
  2128.             tabla.polje[y + 1][x + 1].stanjePolja = NAPADNUTO;
  2129.             ret = 1;
  2130.         }
  2131.  
  2132.         if (!wcscmp(tabla.polje[y][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y) && !JelSahCrni(tabla, 1, 0))
  2133.         {
  2134.             wcscpy(tabla.polje[y][x + 1].figura, TACKA);
  2135.             tabla.polje[y][x + 1].bojaFigure = ZELENO;
  2136.             ret = 1;
  2137.         }
  2138.         else if (wcscmp(tabla.polje[y][x + 1].figura, PRAZNO) && tabla.polje[y][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y) && !JelSahCrni(tabla, 1, 0))
  2139.         {
  2140.             tabla.polje[y][x + 1].stanjePolja = NAPADNUTO;
  2141.             ret = 1;
  2142.         }
  2143.  
  2144.         if (!wcscmp(tabla.polje[y + 1][x].figura, PRAZNO) && JelUnutarTable(x, y + 1) && !JelSahCrni(tabla, 0, 1))
  2145.         {
  2146.             wcscpy(tabla.polje[y + 1][x].figura, TACKA);
  2147.             tabla.polje[y + 1][x].bojaFigure = ZELENO;
  2148.             ret = 1;
  2149.         }
  2150.         else if (wcscmp(tabla.polje[y + 1][x].figura, PRAZNO) && tabla.polje[y + 1][x].bojaFigure == BELO && JelUnutarTable(x, y + 1) && !JelSahCrni(tabla, 0, 1))
  2151.         {
  2152.             tabla.polje[y + 1][x].stanjePolja = NAPADNUTO;
  2153.             ret = 1;
  2154.         }
  2155.  
  2156.         if (!wcscmp(tabla.polje[y][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y) && !JelSahCrni(tabla, -1, 0))
  2157.         {
  2158.             wcscpy(tabla.polje[y][x - 1].figura, TACKA);
  2159.             tabla.polje[y][x - 1].bojaFigure = ZELENO;
  2160.             ret = 1;
  2161.         }
  2162.         else if (wcscmp(tabla.polje[y][x - 1].figura, PRAZNO) && tabla.polje[y][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y) && !JelSahCrni(tabla, -1, 0))
  2163.         {
  2164.             tabla.polje[y][x - 1].stanjePolja = NAPADNUTO;
  2165.             ret = 1;
  2166.         }
  2167.  
  2168.         if (!wcscmp(tabla.polje[y - 1][x].figura, PRAZNO) && JelUnutarTable(x, y - 1) && !JelSahCrni(tabla, 0, -1))
  2169.         {
  2170.             wcscpy(tabla.polje[y - 1][x].figura, TACKA);
  2171.             tabla.polje[y - 1][x].bojaFigure = ZELENO;
  2172.             ret = 1;
  2173.         }
  2174.         else if (wcscmp(tabla.polje[y - 1][x].figura, PRAZNO) && tabla.polje[y - 1][x].bojaFigure == BELO && JelUnutarTable(x, y - 1) && !JelSahCrni(tabla, 0, -1))
  2175.         {
  2176.             tabla.polje[y - 1][x].stanjePolja = NAPADNUTO;
  2177.             ret = 1;
  2178.         }
  2179.  
  2180.         if (tabla.malarcrni == UKLJUCENO && !wcscmp(tabla.polje[0][5].figura, TACKA) && !wcscmp(tabla.polje[0][6].figura, PRAZNO) && !JelSahCrni(tabla, 0, 0) && !JelSahCrni(tabla, 1, 0) && !JelSahCrni(tabla, 2, 0))
  2181.         {
  2182.             wcscpy(tabla.polje[0][6].figura, TACKA);
  2183.             tabla.polje[0][6].bojaFigure = ZELENO;
  2184.             ret = 1;
  2185.         }
  2186.  
  2187.         if (tabla.velikarcrni == UKLJUCENO && !wcscmp(tabla.polje[0][3].figura, TACKA) && !wcscmp(tabla.polje[0][2].figura, PRAZNO) && !wcscmp(tabla.polje[0][1].figura, PRAZNO) && !JelSahCrni(tabla, 0, 0) && !JelSahCrni(tabla, -1, 0) && !JelSahCrni(tabla, -2, 0) && !JelSahCrni(tabla, -3, 0))
  2188.         {
  2189.             wcscpy(tabla.polje[0][1].figura, TACKA);
  2190.             tabla.polje[0][1].bojaFigure = ZELENO;
  2191.             ret = 1;
  2192.         }
  2193.     }
  2194.  
  2195.     return ret;
  2196. }
  2197.  
  2198. short PostaviPijuna(Tabla& tabla, int x, int y)
  2199. {
  2200.     short ret = 0;
  2201.  
  2202.     tabla.polje[y][x].stanjePolja = IZABRANO;
  2203.  
  2204.     if (tabla.polje[y][x].bojaFigure == BELO)
  2205.     {
  2206.         if (!wcscmp(tabla.polje[y - 1][x].figura, PRAZNO) && JelUnutarTable(x, y - 1) && !JelSahBeli(StaviFiguruNaXY(tabla, x, y - 1), 0, 0))
  2207.         {
  2208.             wcscpy(tabla.polje[y - 1][x].figura, TACKA);
  2209.             tabla.polje[y - 1][x].bojaFigure = ZELENO;
  2210.             ret = 1;
  2211.         }
  2212.  
  2213.         if (y == 6 && !wcscmp(tabla.polje[y - 2][x].figura, PRAZNO) && !wcscmp(tabla.polje[y - 1][x].figura, TACKA) && JelUnutarTable(x, y - 2) && !JelSahBeli(StaviFiguruNaXY(tabla, x, y - 2), 0, 0))
  2214.         {
  2215.             wcscpy(tabla.polje[y - 2][x].figura, TACKA);
  2216.             tabla.polje[y - 2][x].bojaFigure = ZELENO;
  2217.             ret = 1;
  2218.         }
  2219.  
  2220.         if (wcscmp(tabla.polje[y - 1][x + 1].figura, PRAZNO) && tabla.polje[y - 1][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y - 1) && !JelSahBeli(StaviFiguruNaXY(tabla, x + 1, y - 1), 0, 0))
  2221.         {
  2222.             tabla.polje[y - 1][x + 1].stanjePolja = NAPADNUTO;
  2223.             ret = 1;
  2224.         }
  2225.  
  2226.         if (wcscmp(tabla.polje[y - 1][x - 1].figura, PRAZNO) && tabla.polje[y - 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y - 1) && !JelSahBeli(StaviFiguruNaXY(tabla, x - 1, y - 1), 0, 0))
  2227.         {
  2228.             tabla.polje[y - 1][x - 1].stanjePolja = NAPADNUTO;
  2229.             ret = 1;
  2230.         }
  2231.  
  2232.         if (!wcscmp(tabla.polje[y][x + 1].figura, PIJUN) && tabla.polje[y][x + 1].bojaFigure == CRNO && tabla.polje[y][x + 1].anpasan == UKLJUCENO && JelUnutarTable(x + 1, y - 1) && !JelSahBeli(StaviFiguruNaXY(tabla, x + 1, y - 1), 0, 0))
  2233.         {
  2234.             tabla.polje[y - 1][x + 1].stanjePolja = NAPADNUTO;
  2235.             ret = 1;
  2236.         }
  2237.  
  2238.         if (!wcscmp(tabla.polje[y][x - 1].figura, PIJUN) && tabla.polje[y][x - 1].bojaFigure == CRNO && tabla.polje[y][x - 1].anpasan == UKLJUCENO && JelUnutarTable(x - 1, y - 1) && !JelSahBeli(StaviFiguruNaXY(tabla, x - 1, y - 1), 0, 0))
  2239.         {
  2240.             tabla.polje[y - 1][x - 1].stanjePolja = NAPADNUTO;
  2241.             ret = 1;
  2242.         }
  2243.     }
  2244.     else
  2245.     {
  2246.         if (!wcscmp(tabla.polje[y + 1][x].figura, PRAZNO) && JelUnutarTable(x, y + 1) && !JelSahCrni(StaviFiguruNaXY(tabla, x, y + 1), 0, 0))
  2247.         {
  2248.             wcscpy(tabla.polje[y + 1][x].figura, TACKA);
  2249.             tabla.polje[y + 1][x].bojaFigure = ZELENO;
  2250.             ret = 1;
  2251.         }
  2252.  
  2253.         if (y == 1 && !wcscmp(tabla.polje[y + 2][x].figura, PRAZNO) && !wcscmp(tabla.polje[y + 1][x].figura, TACKA) && JelUnutarTable(x, y + 2) && !JelSahCrni(StaviFiguruNaXY(tabla, x, y + 2), 0, 0))
  2254.         {
  2255.             wcscpy(tabla.polje[y + 2][x].figura, TACKA);
  2256.             tabla.polje[y + 2][x].bojaFigure = ZELENO;
  2257.             ret = 1;
  2258.         }
  2259.  
  2260.         if (wcscmp(tabla.polje[y + 1][x + 1].figura, PRAZNO) && tabla.polje[y + 1][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y + 1) && !JelSahCrni(StaviFiguruNaXY(tabla, x + 1, y + 1), 0, 0))
  2261.         {
  2262.             tabla.polje[y + 1][x + 1].stanjePolja = NAPADNUTO;
  2263.             ret = 1;
  2264.         }
  2265.  
  2266.         if (wcscmp(tabla.polje[y + 1][x - 1].figura, PRAZNO) && tabla.polje[y + 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y + 1) && !JelSahCrni(StaviFiguruNaXY(tabla, x - 1, y + 1), 0, 0))
  2267.         {
  2268.             tabla.polje[y + 1][x - 1].stanjePolja = NAPADNUTO;
  2269.             ret = 1;
  2270.         }
  2271.  
  2272.         if (!wcscmp(tabla.polje[y][x - 1].figura, PIJUN) && tabla.polje[y][x - 1].bojaFigure == BELO && tabla.polje[y][x - 1].anpasan == UKLJUCENO && JelUnutarTable(x - 1, y + 1) && !JelSahCrni(StaviFiguruNaXY(tabla, x - 1, y + 1), 0, 0))
  2273.         {
  2274.             tabla.polje[y + 1][x - 1].stanjePolja = NAPADNUTO;
  2275.             ret = 1;
  2276.         }
  2277.  
  2278.         if (!wcscmp(tabla.polje[y][x + 1].figura, PIJUN) && tabla.polje[y][x + 1].bojaFigure == BELO && tabla.polje[y][x + 1].anpasan == UKLJUCENO && JelUnutarTable(x + 1, y + 1) && !JelSahCrni(StaviFiguruNaXY(tabla, x + 1, y + 1), 0, 0))
  2279.         {
  2280.             tabla.polje[y + 1][x + 1].stanjePolja = NAPADNUTO;
  2281.             ret = 1;
  2282.         }
  2283.     }
  2284.  
  2285.     return ret;
  2286. }
  2287.  
  2288. short PostaviKonja(Tabla& tabla, int x, int y)
  2289. {
  2290.     short ret = 0;
  2291.     tabla.polje[y][x].stanjePolja = IZABRANO;
  2292.  
  2293.     if (!wcscmp(tabla.polje[y - 2][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y - 2) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - 1, y - 2), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - 1, y - 2), 0, 0))))
  2294.     {
  2295.         wcscpy(tabla.polje[y - 2][x - 1].figura, TACKA);
  2296.         tabla.polje[y - 2][x - 1].bojaFigure = ZELENO;
  2297.         ret = 1;
  2298.     }
  2299.     else if (wcscmp(tabla.polje[y - 2][x - 1].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - 2][x - 1].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - 2][x - 1].bojaFigure == BELO)) && JelUnutarTable(x - 1, y - 2) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - 1, y - 2), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - 1, y - 2), 0, 0))))
  2300.     {
  2301.         tabla.polje[y - 2][x - 1].stanjePolja = NAPADNUTO;
  2302.         ret = 1;
  2303.     }
  2304.  
  2305.     if (!wcscmp(tabla.polje[y - 2][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y - 2) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + 1, y - 2), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + 1, y - 2), 0, 0))))
  2306.     {
  2307.         wcscpy(tabla.polje[y - 2][x + 1].figura, TACKA);
  2308.         tabla.polje[y - 2][x + 1].bojaFigure = ZELENO;
  2309.         ret = 1;
  2310.     }
  2311.     else if (wcscmp(tabla.polje[y - 2][x + 1].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - 2][x + 1].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - 2][x + 1].bojaFigure == BELO)) && JelUnutarTable(x + 1, y - 2) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + 1, y - 2), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + 1, y - 2), 0, 0))))
  2312.     {
  2313.         tabla.polje[y - 2][x + 1].stanjePolja = NAPADNUTO;
  2314.         ret = 1;
  2315.     }
  2316.  
  2317.     if (!wcscmp(tabla.polje[y - 1][x + 2].figura, PRAZNO) && JelUnutarTable(x + 2, y - 1) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + 2, y - 1), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + 2, y - 1), 0, 0))))
  2318.     {
  2319.         wcscpy(tabla.polje[y - 1][x + 2].figura, TACKA);
  2320.         tabla.polje[y - 1][x + 2].bojaFigure = ZELENO;
  2321.         ret = 1;
  2322.     }
  2323.     else if (wcscmp(tabla.polje[y - 1][x + 2].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - 1][x + 2].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - 1][x + 2].bojaFigure == BELO)) && JelUnutarTable(x + 2, y - 1) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + 2, y - 1), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + 2, y - 1), 0, 0))))
  2324.     {
  2325.         tabla.polje[y - 1][x + 2].stanjePolja = NAPADNUTO;
  2326.         ret = 1;
  2327.     }
  2328.  
  2329.     if (!wcscmp(tabla.polje[y + 1][x + 2].figura, PRAZNO) && JelUnutarTable(x + 2, y + 1) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + 2, y + 1), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + 2, y + 1), 0, 0))))
  2330.     {
  2331.         wcscpy(tabla.polje[y + 1][x + 2].figura, TACKA);
  2332.         tabla.polje[y + 1][x + 2].bojaFigure = ZELENO;
  2333.         ret = 1;
  2334.     }
  2335.     else if (wcscmp(tabla.polje[y + 1][x + 2].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + 1][x + 2].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + 1][x + 2].bojaFigure == BELO)) && JelUnutarTable(x + 2, y + 1) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + 2, y + 1), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + 2, y + 1), 0, 0))))
  2336.     {
  2337.         tabla.polje[y + 1][x + 2].stanjePolja = NAPADNUTO;
  2338.         ret = 1;
  2339.     }
  2340.  
  2341.     if (!wcscmp(tabla.polje[y + 2][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y + 2) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + 1, y + 2), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + 1, y + 2), 0, 0))))
  2342.     {
  2343.         wcscpy(tabla.polje[y + 2][x + 1].figura, TACKA);
  2344.         tabla.polje[y + 2][x + 1].bojaFigure = ZELENO;
  2345.         ret = 1;
  2346.     }
  2347.     else if (wcscmp(tabla.polje[y + 2][x + 1].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + 2][x + 1].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + 2][x + 1].bojaFigure == BELO)) && JelUnutarTable(x + 1, y + 2) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + 1, y + 2), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + 1, y + 2), 0, 0))))
  2348.     {
  2349.         tabla.polje[y + 2][x + 1].stanjePolja = NAPADNUTO;
  2350.         ret = 1;
  2351.     }
  2352.  
  2353.     if (!wcscmp(tabla.polje[y + 2][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y + 2) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - 1, y + 2), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - 1, y + 2), 0, 0))))
  2354.     {
  2355.         wcscpy(tabla.polje[y + 2][x - 1].figura, TACKA);
  2356.         tabla.polje[y + 2][x - 1].bojaFigure = ZELENO;
  2357.         ret = 1;
  2358.     }
  2359.     else if (wcscmp(tabla.polje[y + 2][x - 1].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + 2][x - 1].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + 2][x - 1].bojaFigure == BELO)) && JelUnutarTable(x - 1, y + 2) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - 1, y + 2), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - 1, y + 2), 0, 0))))
  2360.     {
  2361.         tabla.polje[y + 2][x - 1].stanjePolja = NAPADNUTO;
  2362.         ret = 1;
  2363.     }
  2364.  
  2365.     if (!wcscmp(tabla.polje[y + 1][x - 2].figura, PRAZNO) && JelUnutarTable(x - 2, y + 1) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - 2, y + 1), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - 2, y + 1), 0, 0))))
  2366.     {
  2367.         wcscpy(tabla.polje[y + 1][x - 2].figura, TACKA);
  2368.         tabla.polje[y + 1][x - 2].bojaFigure = ZELENO;
  2369.         ret = 1;
  2370.     }
  2371.     else if (wcscmp(tabla.polje[y + 1][x - 2].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + 1][x - 2].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + 1][x - 2].bojaFigure == BELO)) && JelUnutarTable(x - 2, y + 1) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - 2, y + 1), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - 2, y + 1), 0, 0))))
  2372.     {
  2373.         tabla.polje[y + 1][x - 2].stanjePolja = NAPADNUTO;
  2374.         ret = 1;
  2375.     }
  2376.  
  2377.     if (!wcscmp(tabla.polje[y - 1][x - 2].figura, PRAZNO) && JelUnutarTable(x - 2, y - 1) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - 2, y - 1), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - 2, y - 1), 0, 0))))
  2378.     {
  2379.         wcscpy(tabla.polje[y - 1][x - 2].figura, TACKA);
  2380.         tabla.polje[y - 1][x - 2].bojaFigure = ZELENO;
  2381.         ret = 1;
  2382.     }
  2383.     else if (wcscmp(tabla.polje[y - 1][x - 2].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - 1][x - 2].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - 1][x - 2].bojaFigure == BELO)) && JelUnutarTable(x - 2, y - 1) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - 2, y - 1), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - 2, y - 1), 0, 0))))
  2384.     {
  2385.         tabla.polje[y - 1][x - 2].stanjePolja = NAPADNUTO;
  2386.         ret = 1;
  2387.     }
  2388.  
  2389.     return ret;
  2390. }
  2391.  
  2392. short PostaviTopa(Tabla& tabla, int x, int y)
  2393. {
  2394.     short ret = 0;
  2395.  
  2396.     tabla.polje[y][x].stanjePolja = IZABRANO;
  2397.  
  2398.     for (int i = 1; i < 8; i++)
  2399.     {
  2400.         if (!wcscmp(tabla.polje[y][x - i].figura, PRAZNO) && JelUnutarTable(x - i, y) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - i, y), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - i, y), 0, 0))))
  2401.         {
  2402.             wcscpy(tabla.polje[y][x - i].figura, TACKA);
  2403.             tabla.polje[y][x - i].bojaFigure = ZELENO;
  2404.             ret = 1;
  2405.         }
  2406.         else if (wcscmp(tabla.polje[y][x - i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y][x - i].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y][x - i].bojaFigure == BELO)) && JelUnutarTable(x - i, y) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - i, y), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - i, y), 0, 0))))
  2407.         {
  2408.             tabla.polje[y][x - i].stanjePolja = NAPADNUTO;
  2409.             ret = 1;
  2410.             break;
  2411.         }
  2412.         else if (wcscmp(tabla.polje[y][x - i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y][x - i].bojaFigure == BELO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y][x - i].bojaFigure == CRNO)) && JelUnutarTable(x - i, y))
  2413.             break;
  2414.     }
  2415.  
  2416.     for (int i = 1; i < 8; i++)
  2417.     {
  2418.         if (!wcscmp(tabla.polje[y][x + i].figura, PRAZNO) && JelUnutarTable(x + i, y) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + i, y), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + i, y), 0, 0))))
  2419.         {
  2420.             wcscpy(tabla.polje[y][x + i].figura, TACKA);
  2421.             tabla.polje[y][x + i].bojaFigure = ZELENO;
  2422.             ret = 1;
  2423.         }
  2424.         else if (wcscmp(tabla.polje[y][x + i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y][x + i].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y][x + i].bojaFigure == BELO)) && JelUnutarTable(x + i, y) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + i, y), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + i, y), 0, 0))))
  2425.         {
  2426.             tabla.polje[y][x + i].stanjePolja = NAPADNUTO;
  2427.             ret = 1;
  2428.             break;
  2429.         }
  2430.         else if (wcscmp(tabla.polje[y][x + i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y][x + i].bojaFigure == BELO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y][x + i].bojaFigure == CRNO)) && JelUnutarTable(x + i, y))
  2431.             break;
  2432.     }
  2433.  
  2434.     for (int i = 1; i < 8; i++)
  2435.     {
  2436.         if (!wcscmp(tabla.polje[y - i][x].figura, PRAZNO) && JelUnutarTable(x, y - i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x, y - i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x, y - i), 0, 0))))
  2437.         {
  2438.             wcscpy(tabla.polje[y - i][x].figura, TACKA);
  2439.             tabla.polje[y - i][x].bojaFigure = ZELENO;
  2440.             ret = 1;
  2441.         }
  2442.         else if (wcscmp(tabla.polje[y - i][x].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - i][x].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - i][x].bojaFigure == BELO)) && JelUnutarTable(x, y - i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x, y - i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x, y - i), 0, 0))))
  2443.         {
  2444.             tabla.polje[y - i][x].stanjePolja = NAPADNUTO;
  2445.             ret = 1;
  2446.             break;
  2447.         }
  2448.         else if (wcscmp(tabla.polje[y - i][x].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - i][x].bojaFigure == BELO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - i][x].bojaFigure == CRNO)) && JelUnutarTable(x, y - i))
  2449.             break;
  2450.     }
  2451.  
  2452.     for (int i = 1; i < 8; i++)
  2453.     {
  2454.         if (!wcscmp(tabla.polje[y + i][x].figura, PRAZNO) && JelUnutarTable(x, y + i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x, y + i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x, y + i), 0, 0))))
  2455.         {
  2456.             wcscpy(tabla.polje[y + i][x].figura, TACKA);
  2457.             tabla.polje[y + i][x].bojaFigure = ZELENO;
  2458.             ret = 1;
  2459.         }
  2460.         else if (wcscmp(tabla.polje[y + i][x].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + i][x].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + i][x].bojaFigure == BELO)) && JelUnutarTable(x, y + i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x, y + i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x, y + i), 0, 0))))
  2461.         {
  2462.             tabla.polje[y + i][x].stanjePolja = NAPADNUTO;
  2463.             ret = 1;
  2464.             break;
  2465.         }
  2466.         else if (wcscmp(tabla.polje[y + i][x].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + i][x].bojaFigure == BELO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + i][x].bojaFigure == CRNO)) && JelUnutarTable(x, y + i))
  2467.             break;
  2468.     }
  2469.  
  2470.     return ret;
  2471. }
  2472.  
  2473. short PostaviLovca(Tabla& tabla, int x, int y) {
  2474.     short ret = 0;
  2475.  
  2476.     tabla.polje[y][x].stanjePolja = IZABRANO;
  2477.  
  2478.     for (int i = 1; i < 8; i++)
  2479.     {
  2480.         if (!wcscmp(tabla.polje[y - i][x - i].figura, PRAZNO) && JelUnutarTable(x - i, y - i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - i, y - i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - i, y - i), 0, 0))))
  2481.         {
  2482.             wcscpy(tabla.polje[y - i][x - i].figura, TACKA);
  2483.             tabla.polje[y - i][x - i].bojaFigure = ZELENO;
  2484.             ret = 1;
  2485.         }
  2486.         else if (wcscmp(tabla.polje[y - i][x - i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - i][x - i].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - i][x - i].bojaFigure == BELO)) && JelUnutarTable(x - i, y - i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - i, y - i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - i, y - i), 0, 0))))
  2487.         {
  2488.             tabla.polje[y - i][x - i].stanjePolja = NAPADNUTO;
  2489.             ret = 1;
  2490.             break;
  2491.         }
  2492.         else if (wcscmp(tabla.polje[y - i][x - i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - i][x - i].bojaFigure == BELO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - i][x - i].bojaFigure == CRNO)) && JelUnutarTable(x - i, y - i))
  2493.             break;
  2494.     }
  2495.  
  2496.     for (int i = 1; i < 8; i++)
  2497.     {
  2498.         if (!wcscmp(tabla.polje[y - i][x + i].figura, PRAZNO) && JelUnutarTable(x + i, y - i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + i, y - i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + i, y - i), 0, 0))))
  2499.         {
  2500.             wcscpy(tabla.polje[y - i][x + i].figura, TACKA);
  2501.             tabla.polje[y - i][x + i].bojaFigure = ZELENO;
  2502.             ret = 1;
  2503.         }
  2504.         else if (wcscmp(tabla.polje[y - i][x + i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - i][x + i].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - i][x + i].bojaFigure == BELO)) && JelUnutarTable(x + i, y - i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + i, y - i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + i, y - i), 0, 0))))
  2505.         {
  2506.             tabla.polje[y - i][x + i].stanjePolja = NAPADNUTO;
  2507.             ret = 1;
  2508.             break;
  2509.         }
  2510.         else if (wcscmp(tabla.polje[y - i][x + i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y - i][x + i].bojaFigure == BELO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y - i][x + i].bojaFigure == CRNO)) && JelUnutarTable(x + i, y - i))
  2511.             break;
  2512.     }
  2513.  
  2514.     for (int i = 1; i < 8; i++)
  2515.     {
  2516.         if (!wcscmp(tabla.polje[y + i][x - i].figura, PRAZNO) && JelUnutarTable(x - i, y + i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - i, y + i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - i, y + i), 0, 0))))
  2517.         {
  2518.             wcscpy(tabla.polje[y + i][x - i].figura, TACKA);
  2519.             tabla.polje[y + i][x - i].bojaFigure = ZELENO;
  2520.             ret = 1;
  2521.         }
  2522.         else if (wcscmp(tabla.polje[y + i][x - i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + i][x - i].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + i][x - i].bojaFigure == BELO)) && JelUnutarTable(x - i, y + i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x - i, y + i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x - i, y + i), 0, 0))))
  2523.         {
  2524.             tabla.polje[y + i][x - i].stanjePolja = NAPADNUTO;
  2525.             ret = 1;
  2526.             break;
  2527.         }
  2528.         else if (wcscmp(tabla.polje[y + i][x - i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + i][x - i].bojaFigure == BELO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + i][x - i].bojaFigure == CRNO)) && JelUnutarTable(x - i, y + i))
  2529.             break;
  2530.     }
  2531.  
  2532.     for (int i = 1; i < 8; i++)
  2533.     {
  2534.         if (!wcscmp(tabla.polje[y + i][x + i].figura, PRAZNO) && JelUnutarTable(x + i, y + i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + i, y + i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + i, y + i), 0, 0))))
  2535.         {
  2536.             wcscpy(tabla.polje[y + i][x + i].figura, TACKA);
  2537.             tabla.polje[y + i][x + i].bojaFigure = ZELENO;
  2538.             ret = 1;
  2539.         }
  2540.         else if (wcscmp(tabla.polje[y + i][x + i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + i][x + i].bojaFigure == CRNO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + i][x + i].bojaFigure == BELO)) && JelUnutarTable(x + i, y + i) && ((tabla.polje[y][x].bojaFigure == BELO && !JelSahBeli(StaviFiguruNaXY(tabla, x + i, y + i), 0, 0)) || (tabla.polje[y][x].bojaFigure == CRNO && !JelSahCrni(StaviFiguruNaXY(tabla, x + i, y + i), 0, 0))))
  2541.         {
  2542.             tabla.polje[y + i][x + i].stanjePolja = NAPADNUTO;
  2543.             ret = 1;
  2544.             break;
  2545.         }
  2546.         else if (wcscmp(tabla.polje[y + i][x + i].figura, PRAZNO) && ((tabla.polje[y][x].bojaFigure == BELO && tabla.polje[y + i][x + i].bojaFigure == BELO) || (tabla.polje[y][x].bojaFigure == CRNO && tabla.polje[y + i][x + i].bojaFigure == CRNO)) && JelUnutarTable(x + i, y + i))
  2547.             break;
  2548.     }
  2549.  
  2550.     return ret;
  2551. }
  2552.  
  2553. short PostaviKraljicu(Tabla& tabla, int x, int y)
  2554. {
  2555.     int ret = 0;
  2556.     ret += PostaviLovca(tabla, x, y);
  2557.     ret += PostaviTopa(tabla, x, y);
  2558.  
  2559.     if (ret != 0)
  2560.         ret = 1;
  2561.  
  2562.     return ret;
  2563. }
  2564.  
  2565. short JelMozeIgratiBeli(Tabla tabla)
  2566. {
  2567.     short ret = 0;
  2568.  
  2569.     for (int y = 0; y < 8; y++)
  2570.         for (int x = 0; x < 8; x++)
  2571.             if (tabla.polje[y][x].bojaFigure == BELO)
  2572.             {
  2573.                 if (!wcscmp(tabla.polje[y][x].figura, KRALJ))
  2574.                 {
  2575.                     ret += PostaviKralja(tabla, x, y);
  2576.  
  2577.                     NoviPotez(tabla);
  2578.                 }
  2579.                 else if (!wcscmp(tabla.polje[y][x].figura, PIJUN))
  2580.                 {
  2581.                     ret += PostaviPijuna(tabla, x, y);
  2582.  
  2583.                     NoviPotez(tabla);
  2584.                 }
  2585.                 else if (!wcscmp(tabla.polje[y][x].figura, KONJ))
  2586.                 {
  2587.                     ret += PostaviKonja(tabla, x, y);
  2588.  
  2589.                     NoviPotez(tabla);
  2590.                 }
  2591.                 else if (!wcscmp(tabla.polje[y][x].figura, TOP))
  2592.                 {
  2593.                     ret += PostaviTopa(tabla, x, y);
  2594.  
  2595.                     NoviPotez(tabla);
  2596.                 }
  2597.                 else if (!wcscmp(tabla.polje[y][x].figura, LOVAC))
  2598.                 {
  2599.                     ret += PostaviLovca(tabla, x, y);
  2600.  
  2601.                     NoviPotez(tabla);
  2602.                 }
  2603.                 else if (!wcscmp(tabla.polje[y][x].figura, KRALJICA))
  2604.                 {
  2605.                     ret += PostaviKraljicu(tabla, x, y);
  2606.  
  2607.                     NoviPotez(tabla);
  2608.                 }
  2609.             }
  2610.  
  2611.     if (ret != 0)
  2612.         ret = 1;
  2613.  
  2614.     return ret;
  2615. }
  2616.  
  2617. short JelMozeIgratiCrni(Tabla tabla)
  2618. {
  2619.     short ret = 0;
  2620.  
  2621.     for (int y = 0; y < 8; y++)
  2622.         for (int x = 0; x < 8; x++)
  2623.             if (tabla.polje[y][x].bojaFigure == CRNO)
  2624.             {
  2625.                 if (!wcscmp(tabla.polje[y][x].figura, KRALJ))
  2626.                 {
  2627.                     ret += PostaviKralja(tabla, x, y);
  2628.  
  2629.                     NoviPotez(tabla);
  2630.                 }
  2631.                 else if (!wcscmp(tabla.polje[y][x].figura, PIJUN))
  2632.                 {
  2633.                     ret += PostaviPijuna(tabla, x, y);
  2634.  
  2635.                     NoviPotez(tabla);
  2636.                 }
  2637.                 else if (!wcscmp(tabla.polje[y][x].figura, KONJ))
  2638.                 {
  2639.                     ret += PostaviKonja(tabla, x, y);
  2640.  
  2641.                     NoviPotez(tabla);
  2642.                 }
  2643.                 else if (!wcscmp(tabla.polje[y][x].figura, TOP))
  2644.                 {
  2645.                     ret += PostaviTopa(tabla, x, y);
  2646.  
  2647.                     NoviPotez(tabla);
  2648.                 }
  2649.                 else if (!wcscmp(tabla.polje[y][x].figura, LOVAC))
  2650.                 {
  2651.                     ret += PostaviLovca(tabla, x, y);
  2652.  
  2653.                     NoviPotez(tabla);
  2654.                 }
  2655.                 else if (!wcscmp(tabla.polje[y][x].figura, KRALJICA))
  2656.                 {
  2657.                     ret += PostaviKraljicu(tabla, x, y);
  2658.  
  2659.                     NoviPotez(tabla);
  2660.                 }
  2661.             }
  2662.  
  2663.     if (ret != 0)
  2664.         ret = 1;
  2665.  
  2666.     return ret;
  2667. }
  2668.  
  2669. short ZameniPijuna()
  2670. {
  2671.     int x, y, pom = 1, izb;
  2672.  
  2673.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  2674.     _setmode(_fileno(stdout), _O_U8TEXT);
  2675.  
  2676.     if (boja == SVETLO)
  2677.         SetConsoleTextAttribute(console, 82);
  2678.     else if (boja == TAMNO)
  2679.         SetConsoleTextAttribute(console, 101);
  2680.     else if (boja == SIVO)
  2681.         SetConsoleTextAttribute(console, 152);
  2682.  
  2683.     gotoxy(8, 14);
  2684.     wprintf(KRALJICA);
  2685.     wprintf(L"    ");
  2686.     wprintf(TOP);
  2687.     wprintf(L"    ");
  2688.     wprintf(LOVAC);
  2689.     wprintf(L"    ");
  2690.     wprintf(KONJ);
  2691.  
  2692.     while (pom)
  2693.     {
  2694.         pom = 0;
  2695.         UcitajKlik(x, y);
  2696.  
  2697.         if ((x == 8 || x == 9) && y == 14)
  2698.             izb = 0;
  2699.         else if ((x == 14 || x == 15) && y == 14)
  2700.             izb = 1;
  2701.         else if ((x == 20 || x == 21) && y == 14)
  2702.             izb = 2;
  2703.         else if ((x == 26 || x == 27) && y == 14)
  2704.             izb = 3;
  2705.         else
  2706.             pom = 1;
  2707.     }
  2708.  
  2709.     ObrisiTerminal();
  2710.  
  2711.     return izb;
  2712. }
  2713.  
  2714. int FiguraUBroj(wchar_t figura[])
  2715. {
  2716.     _setmode(_fileno(stdout), _O_U8TEXT);
  2717.  
  2718.     if (!wcscmp(figura, KRALJ))
  2719.         return 0;
  2720.     else if (!wcscmp(figura, KRALJICA))
  2721.         return 1;
  2722.     else if (!wcscmp(figura, TOP))
  2723.         return 2;
  2724.     else if (!wcscmp(figura, LOVAC))
  2725.         return 3;
  2726.     else if (!wcscmp(figura, KONJ))
  2727.         return 4;
  2728.     else if (!wcscmp(figura, PIJUN))
  2729.         return 5;
  2730.     else if (!wcscmp(figura, PRAZNO))
  2731.         return 6;
  2732.     else if (!wcscmp(figura, TACKA))
  2733.         return 7;
  2734. }
  2735.  
  2736. const wchar_t* BrojUFiguru(int broj)
  2737. {
  2738.     _setmode(_fileno(stdout), _O_U8TEXT);
  2739.  
  2740.     switch (broj)
  2741.     {
  2742.     case 0:
  2743.         return KRALJ;
  2744.  
  2745.     case 1:
  2746.         return KRALJICA;
  2747.  
  2748.     case 2:
  2749.         return TOP;
  2750.  
  2751.     case 3:
  2752.         return LOVAC;
  2753.  
  2754.     case 4:
  2755.         return KONJ;
  2756.  
  2757.     case 5:
  2758.         return PIJUN;
  2759.  
  2760.     case 6:
  2761.         return PRAZNO;
  2762.  
  2763.     case 7:
  2764.         return TACKA;
  2765.     }
  2766. }
  2767.  
  2768. vector<short> NapraviSacuvaj(vector<Tabla> istorija)
  2769. {
  2770.     vector<short> memo;
  2771.     memo.clear();
  2772.  
  2773.     for (int a = 0; a <= brPoteza; a++)
  2774.     {
  2775.         memo.push_back(istorija[a].brdesno);
  2776.         memo.push_back(istorija[a].brlevo);
  2777.         memo.push_back(istorija[a].krajigre);
  2778.         memo.push_back(istorija[a].malarbeli);
  2779.         memo.push_back(istorija[a].malarcrni);
  2780.         memo.push_back(istorija[a].velikarbeli);
  2781.         memo.push_back(istorija[a].velikarcrni);
  2782.  
  2783.         for (int i = 0; i < 16; i++)
  2784.         {
  2785.             memo.push_back(FiguraUBroj(istorija[a].levo[i / 2][i % 2].figura));
  2786.             memo.push_back(FiguraUBroj(istorija[a].desno[i / 2][i % 2].figura));
  2787.         }
  2788.  
  2789.         for (int i = 0; i < 8; i++)
  2790.             for (int j = 0; j < 8; j++)
  2791.             {
  2792.                 memo.push_back(istorija[a].polje[i][j].anpasan);
  2793.                 memo.push_back(istorija[a].polje[i][j].bojaFigure);
  2794.                 memo.push_back(FiguraUBroj(istorija[a].polje[i][j].figura));
  2795.                 memo.push_back(istorija[a].polje[i][j].stanjePolja);
  2796.             }
  2797.     }
  2798.  
  2799.     return memo;
  2800. }
  2801.  
  2802. void SacuvajIgru(vector<Tabla> istorija)
  2803. {
  2804.     char ime[18], zn;
  2805.     int pom;
  2806.     vector<short> memo;
  2807.     ObrisiTerminal();
  2808.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  2809.     SetConsoleCursorInfo(hConsole, &kursor);
  2810.  
  2811.     if (boja == SVETLO)
  2812.         SetConsoleTextAttribute(hConsole, 82);
  2813.     else if (boja == TAMNO)
  2814.         SetConsoleTextAttribute(hConsole, 101);
  2815.     else if (boja == SIVO)
  2816.         SetConsoleTextAttribute(hConsole, 152);
  2817.  
  2818.     _setmode(_fileno(stdout), _O_TEXT);
  2819.  
  2820.     gotoxy(4, 14);
  2821.     printf("Ime igre:  ");
  2822.  
  2823.     for (int i = 0; i < 18; i++)
  2824.     {
  2825.         fflush(stdin);
  2826.         zn = getch();
  2827.         fflush(stdin);
  2828.  
  2829.         if ((zn == 13 && i != 0) || i == 14)
  2830.         {
  2831.             Sleep(100);
  2832.             SakriKursor();
  2833.             ime[i] = '\0';
  2834.             break;
  2835.         }
  2836.         else if (zn == 8)
  2837.         {
  2838.             gotoxy(14 + i, 14);
  2839.             putchar(' ');
  2840.             gotoxy(14 + i, 14);
  2841.             i -= 2;
  2842.         }
  2843.         else
  2844.         {
  2845.             gotoxy(15 + i, 14);
  2846.             putchar(zn);
  2847.             ime[i] = zn;
  2848.         }
  2849.     }
  2850.  
  2851.     ObrisiTerminal();
  2852.     gotoxy(4, 14);
  2853.  
  2854.     memo = NapraviSacuvaj(istorija);
  2855.  
  2856.     ofstream izlaz(strcat(ime, ".igra"));
  2857.  
  2858.     if (izlaz.is_open())
  2859.     {
  2860.         izlaz << brPoteza;
  2861.  
  2862.         for (int i = 0; i < (brPoteza + 1) * 295; i++)
  2863.         {
  2864.             if (!(i % 295))
  2865.                 izlaz << endl;
  2866.  
  2867.             izlaz << memo[i] << " ";
  2868.         }
  2869.  
  2870.         izlaz.close();
  2871.     }
  2872. }
  2873.  
  2874. void OdaberiVelicinu()
  2875. {
  2876.     velicina = (velicina - 5) / 2;
  2877.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  2878.     ObrisiTerminal();
  2879.  
  2880.     if (boja == SVETLO)
  2881.         SetConsoleTextAttribute(hConsole, 82);
  2882.     else if (boja == TAMNO)
  2883.         SetConsoleTextAttribute(hConsole, 101);
  2884.     else if (boja == SIVO)
  2885.         SetConsoleTextAttribute(hConsole, 152);
  2886.  
  2887.     _setmode(_fileno(stdout), _O_U8TEXT);
  2888.  
  2889.     if (velicina > 9)
  2890.         gotoxy(30, 14);
  2891.     else
  2892.         gotoxy(31, 14);
  2893.  
  2894.     wprintf(L"%d", velicina);
  2895.  
  2896.     gotoxy(4, 14);
  2897.     wprintf(L"Veličina: ");
  2898.  
  2899.     for (int i = 1; i < velicina; i++)
  2900.     {
  2901.         if (boja == SVETLO)
  2902.             SetConsoleTextAttribute(hConsole, 51);
  2903.         else if (boja == TAMNO)
  2904.             SetConsoleTextAttribute(hConsole, 68);
  2905.         else if (boja == SIVO)
  2906.             SetConsoleTextAttribute(hConsole, 170);
  2907.  
  2908.         wprintf(L"█");
  2909.     }
  2910.  
  2911.     if (boja == SVETLO)
  2912.         SetConsoleTextAttribute(hConsole, 102);
  2913.     else if (boja == TAMNO)
  2914.         SetConsoleTextAttribute(hConsole, 119);
  2915.     else if (boja == SIVO)
  2916.         SetConsoleTextAttribute(hConsole, 17);
  2917.  
  2918.     wprintf(L"█");
  2919.  
  2920.     for (int i = 15; i > velicina; i--)
  2921.     {
  2922.         if (boja == SVETLO)
  2923.             SetConsoleTextAttribute(hConsole, 34);
  2924.         else if (boja == TAMNO)
  2925.             SetConsoleTextAttribute(hConsole, 85);
  2926.         else if (boja == SIVO)
  2927.             SetConsoleTextAttribute(hConsole, 136);
  2928.  
  2929.         wprintf(L"█");
  2930.     }
  2931.  
  2932.     DWORD info;
  2933.     INPUT_RECORD input;
  2934.     HANDLE in = GetStdHandle(STD_INPUT_HANDLE);
  2935.     SetConsoleMode(in, ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT);
  2936.  
  2937. GOBACK0:
  2938.     ReadConsoleInput(in, &input, 1, &info);
  2939.  
  2940.     if (input.Event.MouseEvent.dwButtonState != 0x0001)
  2941.     {
  2942.     GOBACK:
  2943.         ReadConsoleInput(in, &input, 1, &info);
  2944.  
  2945.         if (input.Event.MouseEvent.dwButtonState == 0x0001 && input.Event.MouseEvent.dwMousePosition.Y == 14 && input.Event.MouseEvent.dwMousePosition.X > 13 && input.Event.MouseEvent.dwMousePosition.X < 29)
  2946.         {
  2947.         GOBACK2:
  2948.             ReadConsoleInput(in, &input, 1, &info);
  2949.  
  2950.             velicina = input.Event.MouseEvent.dwMousePosition.X - 13;
  2951.  
  2952.             if (velicina < 1)
  2953.                 velicina = 1;
  2954.  
  2955.             if (velicina > 15)
  2956.                 velicina = 15;
  2957.  
  2958.             if (boja == SVETLO)
  2959.                 SetConsoleTextAttribute(hConsole, 82);
  2960.             else if (boja == TAMNO)
  2961.                 SetConsoleTextAttribute(hConsole, 101);
  2962.             else if (boja == SIVO)
  2963.                 SetConsoleTextAttribute(hConsole, 152);
  2964.  
  2965.             gotoxy(30, 14);
  2966.  
  2967.             if (velicina < 10)
  2968.                 wprintf(L" ");
  2969.  
  2970.             wprintf(L"%d", velicina);
  2971.  
  2972.             gotoxy(14, 14);
  2973.  
  2974.             for (int i = 1; i < velicina; i++)
  2975.             {
  2976.                 if (boja == SVETLO)
  2977.                     SetConsoleTextAttribute(hConsole, 51);
  2978.                 else if (boja == TAMNO)
  2979.                     SetConsoleTextAttribute(hConsole, 68);
  2980.                 else if (boja == SIVO)
  2981.                     SetConsoleTextAttribute(hConsole, 170);
  2982.  
  2983.                 wprintf(L"█");
  2984.             }
  2985.  
  2986.             if (boja == SVETLO)
  2987.                 SetConsoleTextAttribute(hConsole, 102);
  2988.             else if (boja == TAMNO)
  2989.                 SetConsoleTextAttribute(hConsole, 119);
  2990.             else if (boja == SIVO)
  2991.                 SetConsoleTextAttribute(hConsole, 17);
  2992.  
  2993.             wprintf(L"█");
  2994.  
  2995.             for (int i = 15; i > velicina; i--)
  2996.             {
  2997.                 if (boja == SVETLO)
  2998.                     SetConsoleTextAttribute(hConsole, 34);
  2999.                 else if (boja == TAMNO)
  3000.                     SetConsoleTextAttribute(hConsole, 85);
  3001.                 else if (boja == SIVO)
  3002.                     SetConsoleTextAttribute(hConsole, 136);
  3003.  
  3004.                 wprintf(L"█");
  3005.             }
  3006.  
  3007.             if (input.Event.MouseEvent.dwButtonState == 0x0001)
  3008.                 goto GOBACK2;
  3009.         }
  3010.         else
  3011.             goto GOBACK;
  3012.     }
  3013.     else
  3014.         goto GOBACK0;
  3015.  
  3016.     Sleep(300);
  3017.     ObrisiTerminal();
  3018.     velicina = velicina * 2 + 5;
  3019. }
  3020.  
  3021. void AnimacijaUcitaj()
  3022. {
  3023.     system("MODE 36, 18");
  3024.     PodesiVelicinu(velicina);
  3025.     system("MODE 36, 1");
  3026.  
  3027.     HWND consoleWindow = GetConsoleWindow();
  3028.     HMENU hmenu = GetSystemMenu(consoleWindow, FALSE);
  3029.     EnableMenuItem(hmenu, SC_CLOSE, MF_GRAYED); ////////////////////////////////////////////////////////////////////////////////////////////
  3030.  
  3031.     winlog = GetWindowLong(consoleWindow, GWL_STYLE);
  3032.     SetWindowLong(consoleWindow, GWL_STYLE, winlog & ~WS_MAXIMIZEBOX & ~WS_SIZEBOX & ~WS_VSCROLL);
  3033.     SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_EXTENDED_FLAGS);
  3034.     _setmode(_fileno(stdout), _O_U8TEXT);
  3035.     SetConsoleTitleW(L"ŠAH");
  3036.     _CONSOLE_SCREEN_BUFFER_INFOEX info;
  3037.     info.cbSize = sizeof(info);
  3038.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  3039.     GetConsoleScreenBufferInfoEx(hConsole, &info);
  3040.  
  3041.     info.ColorTable[2] = RGB(198, 175, 141);
  3042.     info.ColorTable[3] = RGB(114, 71, 56);
  3043.  
  3044.     SetConsoleScreenBufferInfoEx(hConsole, &info);
  3045.     SakriKursor();
  3046.  
  3047.     system("color 23");
  3048.  
  3049.     char str[20];
  3050.  
  3051.     for (int i = 1; i < 18; i++)
  3052.     {
  3053.         sprintf(str, "MODE 36, %d", i);
  3054.         system(str);
  3055.         if (_kbhit())
  3056.             goto KRAJ;
  3057.     }
  3058.  
  3059.     Sleep(200);
  3060.     if (_kbhit())
  3061.         goto KRAJ;
  3062.  
  3063.     gotoxy(6, 2);
  3064.     wprintf(L"Najbolja igrica na svetu");
  3065.     gotoxy(12, 4);
  3066.     wprintf(L"se učitava...");
  3067.  
  3068.     for (int i = 0; i < 2; i++)
  3069.     {
  3070.         if (_kbhit())
  3071.             goto KRAJ;
  3072.  
  3073.         gotoxy(17, 8);
  3074.         wprintf(L"● ");
  3075.         Sleep(250);
  3076.  
  3077.         if (_kbhit())
  3078.             goto KRAJ;
  3079.  
  3080.         gotoxy(21, 9);
  3081.         wprintf(L"● ");
  3082.         Sleep(220);
  3083.  
  3084.         if (_kbhit())
  3085.             goto KRAJ;
  3086.  
  3087.         gotoxy(23, 11);
  3088.         wprintf(L"● ");
  3089.         Sleep(150);
  3090.  
  3091.         if (_kbhit())
  3092.             goto KRAJ;
  3093.  
  3094.         gotoxy(21, 13);
  3095.         wprintf(L"● ");
  3096.         Sleep(70);
  3097.  
  3098.         if (_kbhit())
  3099.             goto KRAJ;
  3100.  
  3101.         gotoxy(17, 14);
  3102.         wprintf(L"● ");
  3103.         Sleep(90);
  3104.  
  3105.         if (_kbhit())
  3106.             goto KRAJ;
  3107.  
  3108.         gotoxy(13, 13);
  3109.         wprintf(L"● ");
  3110.         Sleep(105);
  3111.  
  3112.         if (_kbhit())
  3113.             goto KRAJ;
  3114.  
  3115.         gotoxy(11, 11);
  3116.         wprintf(L"● ");
  3117.         Sleep(120);
  3118.  
  3119.         if (_kbhit())
  3120.             goto KRAJ;
  3121.  
  3122.         gotoxy(13, 9);
  3123.         wprintf(L"● ");
  3124.         Sleep(260);
  3125.  
  3126.         if (_kbhit())
  3127.             goto KRAJ;
  3128.  
  3129.         gotoxy(21, 9);
  3130.         wprintf(L"  ");
  3131.         Sleep(250);
  3132.  
  3133.         if (_kbhit())
  3134.             goto KRAJ;
  3135.  
  3136.         gotoxy(23, 11);
  3137.         wprintf(L"  ");
  3138.         Sleep(220);
  3139.  
  3140.         if (_kbhit())
  3141.             goto KRAJ;
  3142.  
  3143.         gotoxy(21, 13);
  3144.         wprintf(L"  ");
  3145.         Sleep(150);
  3146.  
  3147.         if (_kbhit())
  3148.             goto KRAJ;
  3149.  
  3150.         gotoxy(17, 14);
  3151.         wprintf(L"  ");
  3152.         Sleep(70);
  3153.  
  3154.         if (_kbhit())
  3155.             goto KRAJ;
  3156.  
  3157.         gotoxy(13, 13);
  3158.         wprintf(L"  ");
  3159.         Sleep(90);
  3160.  
  3161.         if (_kbhit())
  3162.             goto KRAJ;
  3163.  
  3164.         gotoxy(11, 11);
  3165.         wprintf(L"  ");
  3166.         Sleep(105);
  3167.  
  3168.         if (_kbhit())
  3169.             goto KRAJ;
  3170.  
  3171.         gotoxy(13, 9);
  3172.         wprintf(L"  ");
  3173.         Sleep(260);
  3174.  
  3175.         if (_kbhit())
  3176.             goto KRAJ;
  3177.  
  3178.         if (i)
  3179.         {
  3180.             if (_kbhit())
  3181.                 goto KRAJ;
  3182.  
  3183.             gotoxy(17, 8);
  3184.             wprintf(L"● ");
  3185.             Sleep(250);
  3186.  
  3187.             if (_kbhit())
  3188.                 goto KRAJ;
  3189.  
  3190.             gotoxy(21, 9);
  3191.             wprintf(L"● ");
  3192.             Sleep(220);
  3193.  
  3194.             if (_kbhit())
  3195.                 goto KRAJ;
  3196.  
  3197.             gotoxy(23, 11);
  3198.             wprintf(L"● ");
  3199.             Sleep(150);
  3200.  
  3201.             if (_kbhit())
  3202.                 goto KRAJ;
  3203.  
  3204.             gotoxy(21, 13);
  3205.             wprintf(L"● ");
  3206.  
  3207.             Sleep(550);
  3208.         }
  3209.  
  3210.     }
  3211.  
  3212. KRAJ:;
  3213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement