Advertisement
Momir

ČAH v0.3.1

May 29th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 101.70 KB | None | 0 0
  1. #define _WIN32_WINNT 0x0600
  2. #define STRICT
  3. #include <vector>
  4. #include <dos.h>
  5. #include <dir.h>
  6. #include <iostream>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <conio.h>
  10. #include <io.h>
  11. #include <shlwapi.h>
  12. #include <fcntl.h>
  13. #include <unistd.h>
  14. #include <windows.h>
  15. #include <cwchar>
  16. #include <winreg.h>
  17. #include <Wincon.h>
  18. #define _O_U16TEXT  0x20000
  19. #define _O_U8TEXT   0x40000
  20. #define SVETLO 0
  21. #define TAMNO 1
  22. #define SIVO 2
  23. #define BELO 0
  24. #define CRNO 1
  25. #define ISKLJUCENO 0
  26. #define UKLJUCENO 1
  27. #define ZELENO 2
  28. #define NEUTRALNO 0
  29. #define IZABRANO 1
  30. #define NAPADNUTO 2
  31. #define TOP L"♜ "
  32. #define KONJ L"♞ "
  33. #define LOVAC L"♝ "
  34. #define KRALJICA L"♛ "
  35. #define KRALJ L"♚ "
  36. #define PIJUN L"♟ "
  37. #define PRAZNO L"  "
  38. #define TACKA L""  // ● ꞏ ⚫
  39. using namespace std;
  40. int a, b;
  41. typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX
  42. {
  43.     ULONG      cbSize;
  44.     COORD      dwSize;
  45.     COORD      dwCursorPosition;
  46.     WORD       wAttributes;
  47.     SMALL_RECT srWindow;
  48.     COORD      dwMaximumWindowSize;
  49.     WORD       wPopupAttributes;
  50.     BOOL       bFullscreenSupported;
  51.     COLORREF   ColorTable[16];
  52. } CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
  53.  
  54. typedef struct _CONSOLE_FONT_INFOEX
  55. {
  56.     ULONG cbSize;
  57.     DWORD nFont;
  58.     COORD dwFontSize;
  59.     UINT  FontFamily;
  60.     UINT  FontWeight;
  61.     WCHAR FaceName[LF_FACESIZE];
  62. } CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
  63.  
  64. #ifdef __cplusplus
  65. extern "C" {
  66. #endif
  67. BOOL WINAPI SetCurrentConsoleFontEx(HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx);
  68. #ifdef __cplusplus
  69. }
  70. #endif
  71.  
  72. #ifdef __cplusplus
  73. extern "C" {
  74. #endif
  75. BOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx);
  76. #ifdef __cplusplus
  77. }
  78. #endif
  79.  
  80. #ifdef __cplusplus
  81. extern "C" {
  82. #endif
  83. BOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx);
  84. #ifdef __cplusplus
  85. }
  86. #endif
  87.  
  88. #ifdef __cplusplus
  89. extern "C" {
  90. #endif
  91. BOOL WINAPI GetCurrentConsoleFontEx(HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx);
  92. #ifdef __cplusplus
  93. }
  94. #endif
  95.  
  96. #ifdef __cplusplus
  97. extern "C" {
  98. #endif
  99. BOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput, PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
  100. #ifdef __cplusplus
  101. }
  102. #endif
  103.  
  104.  
  105. void SakriKursor();
  106. void ObrisiEkran();
  107. void gotoxy(int x, int y);
  108. int UcitajKlik(int &x, int &y);
  109. void CentrirajKonzolu();
  110.  
  111. short prviput1 = 1;
  112. short prviput2 = 1;
  113. short prviput3 = 1;
  114. short boja = SVETLO;
  115. short rotacija = ISKLJUCENO;
  116. short sacekaj;
  117. unsigned long long int brPoteza = 0;
  118. long winlog;
  119. _CONSOLE_SCREEN_BUFFER_INFOEX screenbuffer;
  120. CONSOLE_CURSOR_INFO kursor;
  121.  
  122. typedef struct
  123. {
  124.     short bojaPolja;
  125.     short stanjePolja;
  126.     wchar_t figura[10];
  127.     short bojaFigure;
  128.     short anpasan;
  129. } Polje;
  130.  
  131. typedef struct
  132. {
  133.     Polje polje[8][8];
  134.     Polje levo[8][2];
  135.     Polje desno[8][2];
  136.     short brlevo;
  137.     short brdesno;
  138.     short malarbeli;
  139.     short velikarbeli;
  140.     short malarcrni;
  141.     short velikarcrni;
  142.     short krajigre;
  143.  
  144. } Tabla;
  145.  
  146. void PodesiVelicinu(int i);
  147. void PodesiKonzolu();
  148. void PodesiKonzolu2();
  149. void NapraviTablu(Tabla &tabla);
  150. void OdstampajTablu(Tabla tabla);
  151. void OdstampajKonzolu();
  152. void PozicijaNaTabli(int &x, int &y);
  153. void NoviPotez(Tabla &tabla);
  154. void PozicijaIzabranog(int &xizb, int &yizb, Tabla tabla);
  155. short JelUnutarTable(int x, int y);
  156. void OdstampajKonzolu();
  157. void OdstampajLevoDesno(Tabla tabla);
  158. void ObrnutoOdstampajTablu(Tabla tabla);
  159. void ObrnutaPozicijaNaTabli(int &x, int &y);
  160. void ObrisiAnpasan(Tabla &tabla);
  161.  
  162. void ObrisiKonzoluPodesavanja()
  163. {
  164. //    RegDeleteKeyA(HKEY_CURRENT_USER, "Console\\C:_Program Files (x86)_CodeBlocks_cb_console_runner.exe");
  165. //    RegDeleteKeyA(HKEY_CURRENT_USER, "Console\\");
  166. //    RegDeleteKeyA(HKEY_CURRENT_USER, "Console");
  167.  
  168.     CONSOLE_FONT_INFOEX cfi;
  169.     cfi.cbSize = sizeof(cfi);
  170.     cfi.nFont = 0;
  171.     cfi.dwFontSize.X = 8;
  172.     cfi.dwFontSize.Y = 16;
  173.     cfi.FontFamily = TMPF_TRUETYPE;
  174.     cfi.FontWeight = FW_NORMAL;
  175.     std::wcscpy(cfi.FaceName, L"Consolas");
  176.     SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &cfi);
  177.  
  178.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  179.     SetConsoleScreenBufferInfoEx(hConsole, &screenbuffer);
  180.     SetConsoleCursorInfo(hConsole, &kursor);
  181.     HWND consoleWindow = GetConsoleWindow();
  182.     SetWindowLong(consoleWindow, GWL_STYLE, winlog);
  183.     SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),  ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS);
  184. }
  185.  
  186. void ObrisiTerminal()
  187. {
  188.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  189.     _setmode(_fileno(stdout), _O_U8TEXT);
  190.  
  191.     if(boja == SVETLO)
  192.         SetConsoleTextAttribute(console, 85);
  193.     else if(boja == TAMNO)
  194.         SetConsoleTextAttribute(console, 102);
  195.     else if(boja == SIVO)
  196.         SetConsoleTextAttribute(console, 153);
  197.  
  198.     gotoxy(2, 13);
  199.     wprintf(L"████████████████████████████████");
  200.     gotoxy(2, 14);
  201.     wprintf(L"████████████████████████████████");
  202.     gotoxy(2, 15);
  203.     wprintf(L"████████████████████████████████");
  204. }
  205.  
  206. Tabla StaviFiguruNaXY(Tabla tabla, int x, int y)
  207. {
  208.     int xizb, yizb;
  209.     PozicijaIzabranog(xizb, yizb, tabla);
  210.     wcscpy(tabla.polje[y][x].figura, tabla.polje[yizb][xizb].figura);
  211.     wcscpy(tabla.polje[yizb][xizb].figura, PRAZNO);
  212.     tabla.polje[y][x].bojaFigure = tabla.polje[yizb][xizb].bojaFigure;
  213.     NoviPotez(tabla);
  214.  
  215.     return tabla;
  216. }
  217.  
  218. short JelSahBeli(Tabla tabla, int xpomeraj, int ypomeraj)
  219. {
  220.     int x = 0, y = 0;
  221.  
  222.     for(int i = 0; i < 64; i++)
  223.     {
  224.         if(!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == BELO)
  225.         {
  226.             if(JelUnutarTable(i % 8 + xpomeraj, i / 8 + ypomeraj))
  227.             {
  228.                 y = i / 8 + ypomeraj;
  229.                 x = i % 8 + xpomeraj;
  230.             }
  231.             else
  232.             {
  233.                 x = i % 8;
  234.                 y = i / 8;
  235.             }
  236.  
  237.             break;
  238.         }
  239.     }
  240.  
  241.     if(!wcscmp(tabla.polje[y - 1][x + 1].figura, PIJUN) && tabla.polje[y - 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y - 1))
  242.         return 1;
  243.  
  244.     if(!wcscmp(tabla.polje[y - 1][x - 1].figura, PIJUN) && tabla.polje[y - 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y - 1))
  245.         return 1;
  246.  
  247.     if(!wcscmp(tabla.polje[y - 2][x - 1].figura, KONJ) && tabla.polje[y - 2][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y - 2))
  248.         return 1;
  249.  
  250.     if(!wcscmp(tabla.polje[y - 2][x + 1].figura, KONJ) && tabla.polje[y - 2][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y - 2))
  251.         return 1;
  252.  
  253.     if(!wcscmp(tabla.polje[y - 1][x + 2].figura, KONJ) && tabla.polje[y - 1][x + 2].bojaFigure == CRNO && JelUnutarTable(x + 2, y - 1))
  254.         return 1;
  255.  
  256.     if(!wcscmp(tabla.polje[y + 1][x + 2].figura, KONJ) && tabla.polje[y + 1][x + 2].bojaFigure == CRNO && JelUnutarTable(x + 2, y + 1))
  257.         return 1;
  258.  
  259.     if(!wcscmp(tabla.polje[y + 2][x + 1].figura, KONJ) && tabla.polje[y + 2][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y + 2))
  260.         return 1;
  261.  
  262.     if(!wcscmp(tabla.polje[y + 2][x - 1].figura, KONJ) && tabla.polje[y + 2][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y + 2))
  263.         return 1;
  264.  
  265.     if(!wcscmp(tabla.polje[y + 1][x - 2].figura, KONJ) && tabla.polje[y + 1][x - 2].bojaFigure == CRNO && JelUnutarTable(x - 2, y + 1))
  266.         return 1;
  267.  
  268.     if(!wcscmp(tabla.polje[y - 1][x - 2].figura, KONJ) && tabla.polje[y - 1][x - 2].bojaFigure == CRNO && JelUnutarTable(x - 2, y - 1))
  269.         return 1;
  270.  
  271.     for(int i = 1; i < 8; i++)
  272.     {
  273.         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));
  274.         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))
  275.             return 1;
  276.         else
  277.             break;
  278.     }
  279.  
  280.     for(int i = 1; i < 8; i++)
  281.     {
  282.         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));
  283.         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))
  284.             return 1;
  285.         else
  286.             break;
  287.     }
  288.  
  289.     for(int i = 1; i < 8; i++)
  290.     {
  291.         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));
  292.         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))
  293.             return 1;
  294.         else
  295.             break;
  296.     }
  297.  
  298.     for(int i = 1; i < 8; i++)
  299.     {
  300.         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));
  301.         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))
  302.             return 1;
  303.         else
  304.             break;
  305.     }
  306.  
  307.     for(int i = 1; i < 8; i++)
  308.     {
  309.         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));
  310.         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))
  311.             return 1;
  312.         else
  313.             break;
  314.     }
  315.  
  316.     for(int i = 1; i < 8; i++)
  317.     {
  318.         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));
  319.         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))
  320.             return 1;
  321.         else
  322.             break;
  323.     }
  324.  
  325.     for(int i = 1; i < 8; i++)
  326.     {
  327.         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));
  328.         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))
  329.             return 1;
  330.         else
  331.             break;
  332.     }
  333.  
  334.     for(int i = 1; i < 8; i++)
  335.     {
  336.         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));
  337.         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))
  338.             return 1;
  339.         else
  340.             break;
  341.     }
  342.  
  343.     if(!wcscmp(tabla.polje[y][x - 1].figura, KRALJ) && tabla.polje[y][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y))
  344.         return 1;
  345.  
  346.     if(!wcscmp(tabla.polje[y][x + 1].figura, KRALJ) && tabla.polje[y][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y))
  347.         return 1;
  348.  
  349.     if(!wcscmp(tabla.polje[y - 1][x].figura, KRALJ) && tabla.polje[y - 1][x].bojaFigure == CRNO && JelUnutarTable(x, y - 1))
  350.         return 1;
  351.  
  352.     if(!wcscmp(tabla.polje[y + 1][x].figura, KRALJ) && tabla.polje[y + 1][x].bojaFigure == CRNO && JelUnutarTable(x, y + 1))
  353.         return 1;
  354.  
  355.     if(!wcscmp(tabla.polje[y - 1][x - 1].figura, KRALJ) && tabla.polje[y - 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y - 1))
  356.         return 1;
  357.  
  358.     if(!wcscmp(tabla.polje[y - 1][x + 1].figura, KRALJ) && tabla.polje[y - 1][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y - 1))
  359.         return 1;
  360.  
  361.     if(!wcscmp(tabla.polje[y + 1][x - 1].figura, KRALJ) && tabla.polje[y + 1][x - 1].bojaFigure == CRNO && JelUnutarTable(x - 1, y + 1))
  362.         return 1;
  363.  
  364.     if(!wcscmp(tabla.polje[y + 1][x + 1].figura, KRALJ) && tabla.polje[y + 1][x + 1].bojaFigure == CRNO && JelUnutarTable(x + 1, y + 1))
  365.         return 1;
  366.  
  367.     return 0;
  368. }
  369.  
  370. short JelSahCrni(Tabla tabla, int xpomeraj, int ypomeraj)
  371. {
  372.     int x = 0, y = 0;
  373.  
  374.     for(int i = 0; i < 64; i++)
  375.     {
  376.         if(!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == CRNO)
  377.         {
  378.             if(JelUnutarTable(i % 8 + xpomeraj, i / 8 + ypomeraj))
  379.             {
  380.                 y = i / 8 + ypomeraj;
  381.                 x = i % 8 + xpomeraj;
  382.             }
  383.             else
  384.             {
  385.                 x = i % 8;
  386.                 y = i / 8;
  387.             }
  388.  
  389.             break;
  390.         }
  391.     }
  392.  
  393.     if(!wcscmp(tabla.polje[y + 1][x + 1].figura, PIJUN) && tabla.polje[y + 1][x - 1].bojaFigure == BELO && JelUnutarTable(x + 1, y + 1))
  394.         return 1;
  395.  
  396.     if(!wcscmp(tabla.polje[y + 1][x - 1].figura, PIJUN) && tabla.polje[y + 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y + 1))
  397.         return 1;
  398.  
  399.     if(!wcscmp(tabla.polje[y - 2][x - 1].figura, KONJ) && tabla.polje[y - 2][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y - 2))
  400.         return 1;
  401.  
  402.     if(!wcscmp(tabla.polje[y - 2][x + 1].figura, KONJ) && tabla.polje[y - 2][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y - 2))
  403.         return 1;
  404.  
  405.     if(!wcscmp(tabla.polje[y - 1][x + 2].figura, KONJ) && tabla.polje[y - 1][x + 2].bojaFigure == BELO && JelUnutarTable(x + 2, y - 1))
  406.         return 1;
  407.  
  408.     if(!wcscmp(tabla.polje[y + 1][x + 2].figura, KONJ) && tabla.polje[y + 1][x + 2].bojaFigure == BELO && JelUnutarTable(x + 2, y + 1))
  409.         return 1;
  410.  
  411.     if(!wcscmp(tabla.polje[y + 2][x + 1].figura, KONJ) && tabla.polje[y + 2][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y + 2))
  412.         return 1;
  413.  
  414.     if(!wcscmp(tabla.polje[y + 2][x - 1].figura, KONJ) && tabla.polje[y + 2][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y + 2))
  415.         return 1;
  416.  
  417.     if(!wcscmp(tabla.polje[y + 1][x - 2].figura, KONJ) && tabla.polje[y + 1][x - 2].bojaFigure == BELO && JelUnutarTable(x - 2, y + 1))
  418.         return 1;
  419.  
  420.     if(!wcscmp(tabla.polje[y - 1][x - 2].figura, KONJ) && tabla.polje[y - 1][x - 2].bojaFigure == BELO && JelUnutarTable(x - 2, y - 1))
  421.         return 1;
  422.  
  423.     for(int i = 1; i < 8; i++)
  424.     {
  425.         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));
  426.         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))
  427.             return 1;
  428.         else
  429.             break;
  430.     }
  431.  
  432.     for(int i = 1; i < 8; i++)
  433.     {
  434.         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));
  435.         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))
  436.             return 1;
  437.         else
  438.             break;
  439.     }
  440.  
  441.     for(int i = 1; i < 8; i++)
  442.     {
  443.         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));
  444.         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))
  445.             return 1;
  446.         else
  447.             break;
  448.     }
  449.  
  450.     for(int i = 1; i < 8; i++)
  451.     {
  452.         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));
  453.         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))
  454.             return 1;
  455.         else
  456.             break;
  457.     }
  458.  
  459.     for(int i = 1; i < 8; i++)
  460.     {
  461.         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));
  462.         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))
  463.             return 1;
  464.         else
  465.             break;
  466.     }
  467.  
  468.     for(int i = 1; i < 8; i++)
  469.     {
  470.         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));
  471.         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))
  472.             return 1;
  473.         else
  474.             break;
  475.     }
  476.  
  477.     for(int i = 1; i < 8; i++)
  478.     {
  479.         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));
  480.         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))
  481.             return 1;
  482.         else
  483.             break;
  484.     }
  485.  
  486.     for(int i = 1; i < 8; i++)
  487.     {
  488.         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));
  489.         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))
  490.             return 1;
  491.         else
  492.             break;
  493.     }
  494.  
  495.     if(!wcscmp(tabla.polje[y][x - 1].figura, KRALJ) && tabla.polje[y][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y))
  496.         return 1;
  497.  
  498.     if(!wcscmp(tabla.polje[y][x + 1].figura, KRALJ) && tabla.polje[y][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y))
  499.         return 1;
  500.  
  501.     if(!wcscmp(tabla.polje[y - 1][x].figura, KRALJ) && tabla.polje[y - 1][x].bojaFigure == BELO && JelUnutarTable(x, y - 1))
  502.         return 1;
  503.  
  504.     if(!wcscmp(tabla.polje[y + 1][x].figura, KRALJ) && tabla.polje[y + 1][x].bojaFigure == BELO && JelUnutarTable(x, y + 1))
  505.         return 1;
  506.  
  507.     if(!wcscmp(tabla.polje[y - 1][x - 1].figura, KRALJ) && tabla.polje[y - 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y - 1))
  508.         return 1;
  509.  
  510.     if(!wcscmp(tabla.polje[y - 1][x + 1].figura, KRALJ) && tabla.polje[y - 1][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y - 1))
  511.         return 1;
  512.  
  513.     if(!wcscmp(tabla.polje[y + 1][x - 1].figura, KRALJ) && tabla.polje[y + 1][x - 1].bojaFigure == BELO && JelUnutarTable(x - 1, y + 1))
  514.         return 1;
  515.  
  516.     if(!wcscmp(tabla.polje[y + 1][x + 1].figura, KRALJ) && tabla.polje[y + 1][x + 1].bojaFigure == BELO && JelUnutarTable(x + 1, y + 1))
  517.         return 1;
  518.  
  519.     return 0;
  520. }
  521.  
  522. short PostaviKralja(Tabla &tabla, int x, int y)
  523. {
  524.     short ret = 0;
  525.  
  526.     tabla.polje[y][x].stanjePolja = IZABRANO;
  527.  
  528.     if(tabla.polje[y][x].bojaFigure == BELO)
  529.     {
  530.         if(!wcscmp(tabla.polje[y - 1][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y - 1) && !JelSahBeli(tabla, -1, -1))
  531.         {
  532.             wcscpy(tabla.polje[y - 1][x - 1].figura, TACKA);
  533.             tabla.polje[y - 1][x - 1].bojaFigure = ZELENO;
  534.             ret = 1;
  535.         }
  536.         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))
  537.         {
  538.             tabla.polje[y - 1][x - 1].stanjePolja = NAPADNUTO;
  539.             ret = 1;
  540.         }
  541.  
  542.         if(!wcscmp(tabla.polje[y - 1][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y - 1) && !JelSahBeli(tabla, 1, -1))
  543.         {
  544.             wcscpy(tabla.polje[y - 1][x + 1].figura, TACKA);
  545.             tabla.polje[y - 1][x + 1].bojaFigure = ZELENO;
  546.             ret = 1;
  547.         }
  548.         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))
  549.         {
  550.             tabla.polje[y - 1][x + 1].stanjePolja = NAPADNUTO;
  551.             ret = 1;
  552.         }
  553.  
  554.         if(!wcscmp(tabla.polje[y + 1][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y + 1) && !JelSahBeli(tabla, -1, 1))
  555.         {
  556.             wcscpy(tabla.polje[y + 1][x - 1].figura, TACKA);
  557.             tabla.polje[y + 1][x - 1].bojaFigure = ZELENO;
  558.             ret = 1;
  559.         }
  560.         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))
  561.         {
  562.             tabla.polje[y + 1][x - 1].stanjePolja = NAPADNUTO;
  563.             ret = 1;
  564.         }
  565.  
  566.         if(!wcscmp(tabla.polje[y + 1][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y + 1) && !JelSahBeli(tabla, 1, 1))
  567.         {
  568.             wcscpy(tabla.polje[y + 1][x + 1].figura, TACKA);
  569.             tabla.polje[y + 1][x + 1].bojaFigure = ZELENO;
  570.             ret = 1;
  571.         }
  572.         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))
  573.         {
  574.             tabla.polje[y + 1][x + 1].stanjePolja = NAPADNUTO;
  575.             ret = 1;
  576.         }
  577.  
  578.         if(!wcscmp(tabla.polje[y][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y) && !JelSahBeli(tabla, 1, 0))
  579.         {
  580.             wcscpy(tabla.polje[y][x + 1].figura, TACKA);
  581.             tabla.polje[y][x + 1].bojaFigure = ZELENO;
  582.             ret = 1;
  583.         }
  584.         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))
  585.         {
  586.             tabla.polje[y][x + 1].stanjePolja = NAPADNUTO;
  587.             ret = 1;
  588.         }
  589.  
  590.         if(!wcscmp(tabla.polje[y + 1][x].figura, PRAZNO) && JelUnutarTable(x, y + 1) && !JelSahBeli(tabla, 0, 1))
  591.         {
  592.             wcscpy(tabla.polje[y + 1][x].figura, TACKA);
  593.             tabla.polje[y + 1][x].bojaFigure = ZELENO;
  594.             ret = 1;
  595.         }
  596.         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))
  597.         {
  598.             tabla.polje[y + 1][x].stanjePolja = NAPADNUTO;
  599.             ret = 1;
  600.         }
  601.  
  602.         if(!wcscmp(tabla.polje[y][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y) && !JelSahBeli(tabla, -1, 0))
  603.         {
  604.             wcscpy(tabla.polje[y][x - 1].figura, TACKA);
  605.             tabla.polje[y][x - 1].bojaFigure = ZELENO;
  606.             ret = 1;
  607.         }
  608.         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))
  609.         {
  610.             tabla.polje[y][x - 1].stanjePolja = NAPADNUTO;
  611.             ret = 1;
  612.         }
  613.  
  614.         if(!wcscmp(tabla.polje[y - 1][x].figura, PRAZNO) && JelUnutarTable(x, y - 1) && !JelSahBeli(tabla, 0, -1))
  615.         {
  616.             wcscpy(tabla.polje[y - 1][x].figura, TACKA);
  617.             tabla.polje[y - 1][x].bojaFigure = ZELENO;
  618.             ret = 1;
  619.         }
  620.         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))
  621.         {
  622.             tabla.polje[y - 1][x].stanjePolja = NAPADNUTO;
  623.             ret = 1;
  624.         }
  625.  
  626.         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))
  627.         {
  628.             wcscpy(tabla.polje[7][6].figura, TACKA);
  629.             tabla.polje[7][6].bojaFigure = ZELENO;
  630.             ret = 1;
  631.         }
  632.  
  633.         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))
  634.         {
  635.             wcscpy(tabla.polje[7][1].figura, TACKA);
  636.             tabla.polje[7][1].bojaFigure = ZELENO;
  637.             ret = 1;
  638.         }
  639.  
  640.     }
  641.     else
  642.     {
  643.         if(!wcscmp(tabla.polje[y - 1][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y - 1) && !JelSahCrni(tabla, -1, -1))
  644.         {
  645.             wcscpy(tabla.polje[y - 1][x - 1].figura, TACKA);
  646.             tabla.polje[y - 1][x - 1].bojaFigure = ZELENO;
  647.             ret = 1;
  648.         }
  649.         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))
  650.         {
  651.             tabla.polje[y - 1][x - 1].stanjePolja = NAPADNUTO;
  652.             ret = 1;
  653.         }
  654.  
  655.         if(!wcscmp(tabla.polje[y - 1][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y - 1) && !JelSahCrni(tabla, 1, -1))
  656.         {
  657.             wcscpy(tabla.polje[y - 1][x + 1].figura, TACKA);
  658.             tabla.polje[y - 1][x + 1].bojaFigure = ZELENO;
  659.             ret = 1;
  660.         }
  661.         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))
  662.         {
  663.             tabla.polje[y - 1][x + 1].stanjePolja = NAPADNUTO;
  664.             ret = 1;
  665.         }
  666.  
  667.         if(!wcscmp(tabla.polje[y + 1][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y + 1) && !JelSahCrni(tabla, -1, 1))
  668.         {
  669.             wcscpy(tabla.polje[y + 1][x - 1].figura, TACKA);
  670.             tabla.polje[y + 1][x - 1].bojaFigure = ZELENO;
  671.         }
  672.         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))
  673.         {
  674.             tabla.polje[y + 1][x - 1].stanjePolja = NAPADNUTO;
  675.             ret = 1;
  676.         }
  677.  
  678.         if(!wcscmp(tabla.polje[y + 1][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y + 1) && !JelSahCrni(tabla, 1, 1))
  679.         {
  680.             wcscpy(tabla.polje[y + 1][x + 1].figura, TACKA);
  681.             tabla.polje[y + 1][x + 1].bojaFigure = ZELENO;
  682.             ret = 1;
  683.         }
  684.         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))
  685.         {
  686.             tabla.polje[y + 1][x + 1].stanjePolja = NAPADNUTO;
  687.             ret = 1;
  688.         }
  689.  
  690.         if(!wcscmp(tabla.polje[y][x + 1].figura, PRAZNO) && JelUnutarTable(x + 1, y) && !JelSahCrni(tabla, 1, 0))
  691.         {
  692.             wcscpy(tabla.polje[y][x + 1].figura, TACKA);
  693.             tabla.polje[y][x + 1].bojaFigure = ZELENO;
  694.             ret = 1;
  695.         }
  696.         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))
  697.         {
  698.             tabla.polje[y][x + 1].stanjePolja = NAPADNUTO;
  699.             ret = 1;
  700.         }
  701.  
  702.         if(!wcscmp(tabla.polje[y + 1][x].figura, PRAZNO) && JelUnutarTable(x, y + 1) && !JelSahCrni(tabla, 0, 1))
  703.         {
  704.             wcscpy(tabla.polje[y + 1][x].figura, TACKA);
  705.             tabla.polje[y + 1][x].bojaFigure = ZELENO;
  706.             ret = 1;
  707.         }
  708.         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))
  709.         {
  710.             tabla.polje[y + 1][x].stanjePolja = NAPADNUTO;
  711.             ret = 1;
  712.         }
  713.  
  714.         if(!wcscmp(tabla.polje[y][x - 1].figura, PRAZNO) && JelUnutarTable(x - 1, y) && !JelSahCrni(tabla, -1, 0))
  715.         {
  716.             wcscpy(tabla.polje[y][x - 1].figura, TACKA);
  717.             tabla.polje[y][x - 1].bojaFigure = ZELENO;
  718.             ret = 1;
  719.         }
  720.         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))
  721.         {
  722.             tabla.polje[y][x - 1].stanjePolja = NAPADNUTO;
  723.             ret = 1;
  724.         }
  725.  
  726.         if(!wcscmp(tabla.polje[y - 1][x].figura, PRAZNO) && JelUnutarTable(x, y - 1) && !JelSahCrni(tabla, 0, -1))
  727.         {
  728.             wcscpy(tabla.polje[y - 1][x].figura, TACKA);
  729.             tabla.polje[y - 1][x].bojaFigure = ZELENO;
  730.             ret = 1;
  731.         }
  732.         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))
  733.         {
  734.             tabla.polje[y - 1][x].stanjePolja = NAPADNUTO;
  735.             ret = 1;
  736.         }
  737.  
  738.         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))
  739.         {
  740.             wcscpy(tabla.polje[0][6].figura, TACKA);
  741.             tabla.polje[0][6].bojaFigure = ZELENO;
  742.             ret = 1;
  743.         }
  744.  
  745.         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))
  746.         {
  747.             wcscpy(tabla.polje[0][1].figura, TACKA);
  748.             tabla.polje[0][1].bojaFigure = ZELENO;
  749.             ret = 1;
  750.         }
  751.     }
  752.  
  753.     return ret;
  754. }
  755.  
  756.  
  757. short PostaviPijuna(Tabla &tabla, int x, int y)
  758. {
  759.     short ret = 0;
  760.  
  761.     tabla.polje[y][x].stanjePolja = IZABRANO;
  762.  
  763.     if(tabla.polje[y][x].bojaFigure == BELO)
  764.     {
  765.         if(!wcscmp(tabla.polje[y - 1][x].figura, PRAZNO) && JelUnutarTable(x, y - 1) && !JelSahBeli(StaviFiguruNaXY(tabla, x, y - 1), 0, 0))
  766.         {
  767.             wcscpy(tabla.polje[y - 1][x].figura, TACKA);
  768.             tabla.polje[y - 1][x].bojaFigure = ZELENO;
  769.             ret = 1;
  770.         }
  771.  
  772.         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))
  773.         {
  774.             wcscpy(tabla.polje[y - 2][x].figura, TACKA);
  775.             tabla.polje[y - 2][x].bojaFigure = ZELENO;
  776.             ret = 1;
  777.         }
  778.  
  779.         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))
  780.         {
  781.             tabla.polje[y - 1][x + 1].stanjePolja = NAPADNUTO;
  782.             ret = 1;
  783.         }
  784.  
  785.         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))
  786.         {
  787.             tabla.polje[y - 1][x - 1].stanjePolja = NAPADNUTO;
  788.             ret = 1;
  789.         }
  790.  
  791.         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))
  792.         {
  793.             tabla.polje[y - 1][x + 1].stanjePolja = NAPADNUTO;
  794.             ret = 1;
  795.         }
  796.  
  797.         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))
  798.         {
  799.             tabla.polje[y - 1][x - 1].stanjePolja = NAPADNUTO;
  800.             ret = 1;
  801.         }
  802.     }
  803.     else
  804.     {
  805.         if(!wcscmp(tabla.polje[y + 1][x].figura, PRAZNO) && JelUnutarTable(x, y + 1) && !JelSahCrni(StaviFiguruNaXY(tabla, x, y + 1), 0, 0))
  806.         {
  807.             wcscpy(tabla.polje[y + 1][x].figura, TACKA);
  808.             tabla.polje[y + 1][x].bojaFigure = ZELENO;
  809.             ret = 1;
  810.         }
  811.  
  812.         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))
  813.         {
  814.             wcscpy(tabla.polje[y + 2][x].figura, TACKA);
  815.             tabla.polje[y + 2][x].bojaFigure = ZELENO;
  816.             ret = 1;
  817.         }
  818.  
  819.         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))
  820.         {
  821.             tabla.polje[y + 1][x + 1].stanjePolja = NAPADNUTO;
  822.             ret = 1;
  823.         }
  824.  
  825.         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))
  826.         {
  827.             tabla.polje[y + 1][x - 1].stanjePolja = NAPADNUTO;
  828.             ret = 1;
  829.         }
  830.  
  831.         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))
  832.         {
  833.             tabla.polje[y + 1][x - 1].stanjePolja = NAPADNUTO;
  834.             ret = 1;
  835.         }
  836.  
  837.         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))
  838.         {
  839.             tabla.polje[y + 1][x + 1].stanjePolja = NAPADNUTO;
  840.             ret = 1;
  841.         }
  842.     }
  843.  
  844.     return ret;
  845. }
  846.  
  847. short PostaviKonja(Tabla &tabla, int x, int y)
  848. {
  849.     short ret = 0;
  850.     tabla.polje[y][x].stanjePolja = IZABRANO;
  851.  
  852.     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))))
  853.     {
  854.         wcscpy(tabla.polje[y - 2][x - 1].figura, TACKA);
  855.         tabla.polje[y - 2][x - 1].bojaFigure = ZELENO;
  856.         ret = 1;
  857.     }
  858.     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))))
  859.     {
  860.         tabla.polje[y - 2][x - 1].stanjePolja = NAPADNUTO;
  861.         ret = 1;
  862.     }
  863.  
  864.     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))))
  865.     {
  866.         wcscpy(tabla.polje[y - 2][x + 1].figura, TACKA);
  867.         tabla.polje[y - 2][x + 1].bojaFigure = ZELENO;
  868.         ret = 1;
  869.     }
  870.     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))))
  871.     {
  872.         tabla.polje[y - 2][x + 1].stanjePolja = NAPADNUTO;
  873.         ret = 1;
  874.     }
  875.  
  876.     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))))
  877.     {
  878.         wcscpy(tabla.polje[y - 1][x + 2].figura, TACKA);
  879.         tabla.polje[y - 1][x + 2].bojaFigure = ZELENO;
  880.         ret = 1;
  881.     }
  882.     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))))
  883.     {
  884.         tabla.polje[y - 1][x + 2].stanjePolja = NAPADNUTO;
  885.         ret = 1;
  886.     }
  887.  
  888.     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))))
  889.     {
  890.         wcscpy(tabla.polje[y + 1][x + 2].figura, TACKA);
  891.         tabla.polje[y + 1][x + 2].bojaFigure = ZELENO;
  892.         ret = 1;
  893.     }
  894.     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))))
  895.     {
  896.         tabla.polje[y + 1][x + 2].stanjePolja = NAPADNUTO;
  897.         ret = 1;
  898.     }
  899.  
  900.     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))))
  901.     {
  902.         wcscpy(tabla.polje[y + 2][x + 1].figura, TACKA);
  903.         tabla.polje[y + 2][x + 1].bojaFigure = ZELENO;
  904.         ret = 1;
  905.     }
  906.     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))))
  907.     {
  908.         tabla.polje[y + 2][x + 1].stanjePolja = NAPADNUTO;
  909.         ret = 1;
  910.     }
  911.  
  912.     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))))
  913.     {
  914.         wcscpy(tabla.polje[y + 2][x - 1].figura, TACKA);
  915.         tabla.polje[y + 2][x - 1].bojaFigure = ZELENO;
  916.         ret = 1;
  917.     }
  918.     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))))
  919.     {
  920.         tabla.polje[y + 2][x - 1].stanjePolja = NAPADNUTO;
  921.         ret = 1;
  922.     }
  923.  
  924.     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))))
  925.     {
  926.         wcscpy(tabla.polje[y + 1][x - 2].figura, TACKA);
  927.         tabla.polje[y + 1][x - 2].bojaFigure = ZELENO;
  928.         ret = 1;
  929.     }
  930.     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))))
  931.     {
  932.         tabla.polje[y + 1][x - 2].stanjePolja = NAPADNUTO;
  933.         ret = 1;
  934.     }
  935.  
  936.     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))))
  937.     {
  938.         wcscpy(tabla.polje[y - 1][x - 2].figura, TACKA);
  939.         tabla.polje[y - 1][x - 2].bojaFigure = ZELENO;
  940.         ret = 1;
  941.     }
  942.     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))))
  943.     {
  944.         tabla.polje[y - 1][x - 2].stanjePolja = NAPADNUTO;
  945.         ret = 1;
  946.     }
  947.  
  948.     return ret;
  949. }
  950.  
  951. short PostaviTopa(Tabla &tabla, int x, int y)
  952. {
  953.     short ret = 0;
  954.  
  955.     tabla.polje[y][x].stanjePolja = IZABRANO;
  956.  
  957.     for(int i = 1; i < 8; i++)
  958.     {
  959.         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))))
  960.         {
  961.             wcscpy(tabla.polje[y][x - i].figura, TACKA);
  962.             tabla.polje[y][x - i].bojaFigure = ZELENO;
  963.             ret = 1;
  964.         }
  965.         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))))
  966.         {
  967.             tabla.polje[y][x - i].stanjePolja = NAPADNUTO;
  968.             ret = 1;
  969.             break;
  970.         }
  971.         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))
  972.             break;
  973.     }
  974.  
  975.     for(int i = 1; i < 8; i++)
  976.     {
  977.         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))))
  978.         {
  979.             wcscpy(tabla.polje[y][x + i].figura, TACKA);
  980.             tabla.polje[y][x + i].bojaFigure = ZELENO;
  981.             ret = 1;
  982.         }
  983.         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))))
  984.         {
  985.             tabla.polje[y][x + i].stanjePolja = NAPADNUTO;
  986.             ret = 1;
  987.             break;
  988.         }
  989.         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))
  990.             break;
  991.     }
  992.  
  993.     for(int i = 1; i < 8; i++)
  994.     {
  995.         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))))
  996.         {
  997.             wcscpy(tabla.polje[y - i][x].figura, TACKA);
  998.             tabla.polje[y - i][x].bojaFigure = ZELENO;
  999.             ret = 1;
  1000.         }
  1001.         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))))
  1002.         {
  1003.             tabla.polje[y - i][x].stanjePolja = NAPADNUTO;
  1004.             ret = 1;
  1005.             break;
  1006.         }
  1007.         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))
  1008.             break;
  1009.     }
  1010.  
  1011.     for(int i = 1; i < 8; i++)
  1012.     {
  1013.         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))))
  1014.         {
  1015.             wcscpy(tabla.polje[y + i][x].figura, TACKA);
  1016.             tabla.polje[y + i][x].bojaFigure = ZELENO;
  1017.             ret = 1;
  1018.         }
  1019.         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))))
  1020.         {
  1021.             tabla.polje[y + i][x].stanjePolja = NAPADNUTO;
  1022.             ret = 1;
  1023.             break;
  1024.         }
  1025.         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))
  1026.             break;
  1027.     }
  1028.  
  1029.     return ret;
  1030. }
  1031.  
  1032. short PostaviLovca(Tabla &tabla, int x, int y)
  1033. {
  1034.     short ret = 0;
  1035.  
  1036.     tabla.polje[y][x].stanjePolja = IZABRANO;
  1037.  
  1038.     for(int i = 1; i < 8; i++)
  1039.     {
  1040.         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))))
  1041.         {
  1042.             wcscpy(tabla.polje[y - i][x - i].figura, TACKA);
  1043.             tabla.polje[y - i][x - i].bojaFigure = ZELENO;
  1044.             ret = 1;
  1045.         }
  1046.         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))))
  1047.         {
  1048.             tabla.polje[y - i][x - i].stanjePolja = NAPADNUTO;
  1049.             ret = 1;
  1050.             break;
  1051.         }
  1052.         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))
  1053.             break;
  1054.     }
  1055.  
  1056.     for(int i = 1; i < 8; i++)
  1057.     {
  1058.         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))))
  1059.         {
  1060.             wcscpy(tabla.polje[y - i][x + i].figura, TACKA);
  1061.             tabla.polje[y - i][x + i].bojaFigure = ZELENO;
  1062.             ret = 1;
  1063.         }
  1064.         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))))
  1065.         {
  1066.             tabla.polje[y - i][x + i].stanjePolja = NAPADNUTO;
  1067.             ret = 1;
  1068.             break;
  1069.         }
  1070.         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))
  1071.             break;
  1072.     }
  1073.  
  1074.     for(int i = 1; i < 8; i++)
  1075.     {
  1076.         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))))
  1077.         {
  1078.             wcscpy(tabla.polje[y + i][x - i].figura, TACKA);
  1079.             tabla.polje[y + i][x - i].bojaFigure = ZELENO;
  1080.             ret = 1;
  1081.         }
  1082.         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))))
  1083.         {
  1084.             tabla.polje[y + i][x - i].stanjePolja = NAPADNUTO;
  1085.             ret = 1;
  1086.             break;
  1087.         }
  1088.         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))
  1089.             break;
  1090.     }
  1091.  
  1092.     for(int i = 1; i < 8; i++)
  1093.     {
  1094.         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))))
  1095.         {
  1096.             wcscpy(tabla.polje[y + i][x + i].figura, TACKA);
  1097.             tabla.polje[y + i][x + i].bojaFigure = ZELENO;
  1098.             ret = 1;
  1099.         }
  1100.         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))))
  1101.         {
  1102.             tabla.polje[y + i][x + i].stanjePolja = NAPADNUTO;
  1103.             ret = 1;
  1104.             break;
  1105.         }
  1106.         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))
  1107.             break;
  1108.     }
  1109.  
  1110.     return ret;
  1111. }
  1112.  
  1113. short PostaviKraljicu(Tabla &tabla, int x, int y)
  1114. {
  1115.     int ret = 0;
  1116.     ret += PostaviLovca(tabla, x, y);
  1117.     ret += PostaviTopa(tabla, x, y);
  1118.  
  1119.     if(ret != 0)
  1120.         ret = 1;
  1121.  
  1122.     return ret;
  1123. }
  1124.  
  1125. short JelMozeIgratiBeli(Tabla tabla)
  1126. {
  1127.     short ret = 0;
  1128.  
  1129.     for(int y = 0; y < 8; y++)
  1130.         for(int x = 0; x < 8; x++)
  1131.             if(tabla.polje[y][x].bojaFigure == BELO)
  1132.             {
  1133.                 if(!wcscmp(tabla.polje[y][x].figura, KRALJ))
  1134.                 {
  1135.                     ret += PostaviKralja(tabla, x, y);
  1136.  
  1137.                     NoviPotez(tabla);
  1138.                 }
  1139.                 else if(!wcscmp(tabla.polje[y][x].figura, PIJUN))
  1140.                 {
  1141.                     ret += PostaviPijuna(tabla, x, y);
  1142.  
  1143.                     NoviPotez(tabla);
  1144.                 }
  1145.                 else if(!wcscmp(tabla.polje[y][x].figura, KONJ))
  1146.                 {
  1147.                     ret += PostaviKonja(tabla, x, y);
  1148.  
  1149.                     NoviPotez(tabla);
  1150.                 }
  1151.                 else if(!wcscmp(tabla.polje[y][x].figura, TOP))
  1152.                 {
  1153.                     ret += PostaviTopa(tabla, x, y);
  1154.  
  1155.                     NoviPotez(tabla);
  1156.                 }
  1157.                 else if(!wcscmp(tabla.polje[y][x].figura, LOVAC))
  1158.                 {
  1159.                     ret += PostaviLovca(tabla, x, y);
  1160.  
  1161.                     NoviPotez(tabla);
  1162.                 }
  1163.                 else if(!wcscmp(tabla.polje[y][x].figura, KRALJICA))
  1164.                 {
  1165.                     ret += PostaviKraljicu(tabla, x, y);
  1166.  
  1167.                     NoviPotez(tabla);
  1168.                 }
  1169.             }
  1170.  
  1171.     if(ret != 0)
  1172.         ret = 1;
  1173.  
  1174.     return ret;
  1175. }
  1176.  
  1177. short JelMozeIgratiCrni(Tabla tabla)
  1178. {
  1179.     short ret = 0;
  1180.  
  1181.     for(int y = 0; y < 8; y++)
  1182.         for(int x = 0; x < 8; x++)
  1183.             if(tabla.polje[y][x].bojaFigure == CRNO)
  1184.             {
  1185.                 if(!wcscmp(tabla.polje[y][x].figura, KRALJ))
  1186.                 {
  1187.                     ret += PostaviKralja(tabla, x, y);
  1188.  
  1189.                     NoviPotez(tabla);
  1190.                 }
  1191.                 else if(!wcscmp(tabla.polje[y][x].figura, PIJUN))
  1192.                 {
  1193.                     ret += PostaviPijuna(tabla, x, y);
  1194.  
  1195.                     NoviPotez(tabla);
  1196.                 }
  1197.                 else if(!wcscmp(tabla.polje[y][x].figura, KONJ))
  1198.                 {
  1199.                     ret += PostaviKonja(tabla, x, y);
  1200.  
  1201.                     NoviPotez(tabla);
  1202.                 }
  1203.                 else if(!wcscmp(tabla.polje[y][x].figura, TOP))
  1204.                 {
  1205.                     ret += PostaviTopa(tabla, x, y);
  1206.  
  1207.                     NoviPotez(tabla);
  1208.                 }
  1209.                 else if(!wcscmp(tabla.polje[y][x].figura, LOVAC))
  1210.                 {
  1211.                     ret += PostaviLovca(tabla, x, y);
  1212.  
  1213.                     NoviPotez(tabla);
  1214.                 }
  1215.                 else if(!wcscmp(tabla.polje[y][x].figura, KRALJICA))
  1216.                 {
  1217.                     ret += PostaviKraljicu(tabla, x, y);
  1218.  
  1219.                     NoviPotez(tabla);
  1220.                 }
  1221.             }
  1222.  
  1223.     if(ret != 0)
  1224.         ret = 1;
  1225.  
  1226.     return ret;
  1227. }
  1228.  
  1229. short ZameniPijuna()
  1230. {
  1231.     int x, y, pom = 1, izb;
  1232.  
  1233.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  1234.     _setmode(_fileno(stdout), _O_U8TEXT);
  1235.  
  1236.     if(boja == SVETLO)
  1237.         SetConsoleTextAttribute(console, 82);
  1238.     else if(boja == TAMNO)
  1239.         SetConsoleTextAttribute(console, 101);
  1240.     else if(boja == SIVO)
  1241.         SetConsoleTextAttribute(console, 152);
  1242.  
  1243.     gotoxy(8, 14);
  1244.     wprintf(KRALJICA);
  1245.     wprintf(L"    ");
  1246.     wprintf(TOP);
  1247.     wprintf(L"    ");
  1248.     wprintf(LOVAC);
  1249.     wprintf(L"    ");
  1250.     wprintf(KONJ);
  1251.  
  1252.     while(pom)
  1253.     {
  1254.         pom = 0;
  1255.         UcitajKlik(x, y);
  1256.  
  1257.         if((x == 8 || x == 9) && y == 14)
  1258.             izb = 0;
  1259.         else if((x == 14 || x == 15) && y == 14)
  1260.             izb = 1;
  1261.         else if((x == 20 || x == 21) && y == 14)
  1262.             izb = 2;
  1263.         else if((x == 26 || x == 27) && y == 14)
  1264.             izb = 3;
  1265.         else
  1266.             pom = 1;
  1267.     }
  1268.  
  1269.     Sleep(10);
  1270.  
  1271.     ObrisiTerminal();
  1272.  
  1273.     return izb;
  1274. }
  1275.  
  1276. void OsveziTablu(Tabla tabla)
  1277. {
  1278.     if((brPoteza % 2 && rotacija == UKLJUCENO && JelMozeIgratiCrni(tabla)) || (!JelMozeIgratiBeli(tabla) && rotacija == UKLJUCENO && brPoteza % 2 == 0))
  1279.     {
  1280.         if(sacekaj == UKLJUCENO && JelMozeIgratiBeli(tabla))
  1281.         {
  1282.             OdstampajTablu(tabla);
  1283.             Sleep(260);
  1284.         }
  1285.  
  1286.         ObrnutoOdstampajTablu(tabla);
  1287.     }
  1288.     else
  1289.     {
  1290.         if(sacekaj == UKLJUCENO && rotacija == UKLJUCENO && JelMozeIgratiCrni(tabla))
  1291.         {
  1292.             ObrnutoOdstampajTablu(tabla);
  1293.             Sleep(260);
  1294.         }
  1295.  
  1296.         OdstampajTablu(tabla);
  1297.     }
  1298. }
  1299.  
  1300. int main()
  1301. {
  1302.     Tabla tabla;
  1303.     NapraviTablu(tabla);
  1304.     vector<Tabla> istorija(0);
  1305.     istorija.push_back(tabla);
  1306.  
  1307.     PodesiKonzolu();
  1308.     CentrirajKonzolu();
  1309.     PodesiKonzolu2();
  1310.     OdstampajKonzolu();
  1311.     OdstampajTablu(tabla);
  1312.  
  1313.     int x, y, xizb, yizb, i = 35;
  1314.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  1315.     _setmode(_fileno(stdout), _O_U8TEXT);
  1316.  
  1317.     while(1)
  1318.     {
  1319.         if(brPoteza % 2 == 1 && !JelMozeIgratiCrni(tabla) && JelSahCrni(tabla, 0, 0))
  1320.         {
  1321.             if(boja == SVETLO)
  1322.                 SetConsoleTextAttribute(console, 82);
  1323.             else if(boja == TAMNO)
  1324.                 SetConsoleTextAttribute(console, 101);
  1325.             else if(boja == SIVO)
  1326.                 SetConsoleTextAttribute(console, 152);
  1327.  
  1328.             tabla.krajigre = 1;
  1329.             gotoxy(10, 14);
  1330.             wprintf(L"Beli je pobednik");
  1331.         }
  1332.         else if (brPoteza % 2 == 0 && !JelMozeIgratiBeli(tabla) && JelSahBeli(tabla, 0, 0))
  1333.         {
  1334.             if(boja == SVETLO)
  1335.                 SetConsoleTextAttribute(console, 82);
  1336.             else if(boja == TAMNO)
  1337.                 SetConsoleTextAttribute(console, 101);
  1338.             else if(boja == SIVO)
  1339.                 SetConsoleTextAttribute(console, 152);
  1340.  
  1341.             tabla.krajigre = 1;
  1342.             gotoxy(10, 14);
  1343.             wprintf(L"Crni je pobednik");
  1344.         }
  1345.         else if(brPoteza % 2 == 1 && !JelMozeIgratiCrni(tabla))
  1346.         {
  1347.             if(boja == SVETLO)
  1348.                 SetConsoleTextAttribute(console, 82);
  1349.             else if(boja == TAMNO)
  1350.                 SetConsoleTextAttribute(console, 101);
  1351.             else if(boja == SIVO)
  1352.                 SetConsoleTextAttribute(console, 152);
  1353.  
  1354.             tabla.krajigre = 1;
  1355.             gotoxy(8, 14);
  1356.             wprintf(L"Beli je napravio pat");
  1357.         }
  1358.         else if (brPoteza % 2 == 0 && !JelMozeIgratiBeli(tabla))
  1359.         {
  1360.             if(boja == SVETLO)
  1361.                 SetConsoleTextAttribute(console, 82);
  1362.             else if(boja == TAMNO)
  1363.                 SetConsoleTextAttribute(console, 101);
  1364.             else if(boja == SIVO)
  1365.                 SetConsoleTextAttribute(console, 152);
  1366.  
  1367.             tabla.krajigre = 1;
  1368.             gotoxy(8, 14);
  1369.             wprintf(L"Crni je napravio pat");
  1370.         }
  1371.  
  1372.         sacekaj = ISKLJUCENO;
  1373.         SetConsoleTextAttribute(console, 82);
  1374.  
  1375.         UcitajKlik(x, y);
  1376.  
  1377.         if(y == 0 && (x == 4 || x == 5))
  1378.         {
  1379.             NapraviTablu(tabla);
  1380.             istorija.clear();
  1381.             istorija.push_back(tabla);
  1382.             brPoteza = 0;
  1383.             NoviPotez(tabla);
  1384.             ObrisiTerminal();
  1385.  
  1386.             OsveziTablu(tabla);
  1387.         }
  1388.         else if(y == 0 && (x == 6 || x == 7))
  1389.         {
  1390.             boja++;
  1391.  
  1392.             if(boja == 3)
  1393.                 boja = 0;
  1394.  
  1395.             OdstampajKonzolu();
  1396.             NoviPotez(tabla);
  1397.  
  1398.             OsveziTablu(tabla);
  1399.         }
  1400.         else if(y == 0 && (x == 8 || x == 9))
  1401.         {
  1402.             PodesiVelicinu(i);
  1403.  
  1404.             if(i == 35)
  1405.                 i = 20;
  1406.             else if(i == 20)
  1407.                 i = 29;
  1408.             else if(i == 29)
  1409.                 i = 35;
  1410.  
  1411.             CentrirajKonzolu();
  1412.             CentrirajKonzolu();
  1413.             system("MODE 36, 18");
  1414.             PodesiKonzolu2();
  1415.             OdstampajKonzolu();
  1416.  
  1417.             OsveziTablu(tabla);
  1418.         }
  1419.         else if(y == 0 && (x == 10 || x == 11) && brPoteza > 0)
  1420.         {
  1421.             tabla = istorija[brPoteza - 1];
  1422.             brPoteza--;
  1423.             istorija.erase(istorija.begin() + brPoteza + 1);
  1424.             ObrisiTerminal();
  1425.  
  1426.             OsveziTablu(tabla);
  1427.         }
  1428.         else if(y == 0 && (x == 30 || x == 31))
  1429.         {
  1430.             if(rotacija == UKLJUCENO)
  1431.             {
  1432.                 rotacija = ISKLJUCENO;
  1433.  
  1434.                 if(boja == SVETLO)
  1435.                     SetConsoleTextAttribute(console, 36);
  1436.                 else if(boja == TAMNO)
  1437.                     SetConsoleTextAttribute(console, 87);
  1438.                 else if(boja == SIVO)
  1439.                     SetConsoleTextAttribute(console, 138);
  1440.  
  1441.                 gotoxy(30, 0);
  1442.                 wprintf(L"");
  1443.             }
  1444.             else
  1445.             {
  1446.                 rotacija = UKLJUCENO;
  1447.  
  1448.                 if(boja == SVETLO)
  1449.                     SetConsoleTextAttribute(console, 36);
  1450.                 else if(boja == TAMNO)
  1451.                     SetConsoleTextAttribute(console, 87);
  1452.                 else if(boja == SIVO)
  1453.                     SetConsoleTextAttribute(console, 138);
  1454.  
  1455.                 gotoxy(30, 0);
  1456.                 wprintf(L"");
  1457.             }
  1458.  
  1459.             NoviPotez(tabla);
  1460.  
  1461.             OsveziTablu(tabla);
  1462.         }
  1463.         else if(y == 0 && (x == 35 || x == 34))
  1464.         {
  1465.             ObrisiKonzoluPodesavanja();
  1466.             istorija.clear();
  1467.  
  1468.             return 0;
  1469.         }
  1470.         else if(y > 2 && y < 11 && x > 9 && x < 26 && tabla.krajigre == 0)
  1471.         {
  1472.             if(brPoteza % 2 && rotacija == UKLJUCENO && JelMozeIgratiCrni(tabla))
  1473.                 ObrnutaPozicijaNaTabli(x, y);
  1474.             else
  1475.                 PozicijaNaTabli(x, y);
  1476.  
  1477.             if(tabla.polje[y][x].stanjePolja == NAPADNUTO && wcscmp(tabla.polje[y][x].figura, KRALJ))
  1478.             {
  1479.                 PozicijaIzabranog(xizb, yizb, tabla);
  1480.  
  1481.                 if(tabla.polje[yizb][xizb].bojaFigure == BELO && tabla.brlevo < 8)
  1482.                 {
  1483.                     if(tabla.polje[y + 1][x].anpasan == UKLJUCENO)
  1484.                     {
  1485.                         wcscpy(tabla.levo[tabla.brlevo / 2][tabla.brlevo % 2].figura, PIJUN);
  1486.                         wcscpy(tabla.polje[y + 1][x].figura, PRAZNO);
  1487.                     }
  1488.                     else
  1489.                         wcscpy(tabla.levo[tabla.brlevo / 2][tabla.brlevo % 2].figura, tabla.polje[y][x].figura);
  1490.  
  1491.                     tabla.brlevo++;
  1492.                 }
  1493.                 else if(tabla.brdesno < 8)
  1494.                 {
  1495.                     if(tabla.polje[y - 1][x].anpasan == UKLJUCENO)
  1496.                     {
  1497.                         wcscpy(tabla.desno[tabla.brdesno / 2][tabla.brdesno % 2].figura, PIJUN);
  1498.                         wcscpy(tabla.polje[y - 1][x].figura, PRAZNO);
  1499.                     }
  1500.                     else
  1501.                         wcscpy(tabla.desno[tabla.brdesno / 2][tabla.brdesno % 2].figura, tabla.polje[y][x].figura);
  1502.  
  1503.                     tabla.brdesno++;
  1504.                 }
  1505.  
  1506.                 if((xizb == 7 && yizb == 7) || (x == 7 && y == 7))
  1507.                     tabla.malarbeli = ISKLJUCENO;
  1508.                 else if((xizb == 0 && yizb == 7) || (x == 0 && y == 7))
  1509.                     tabla.velikarbeli = ISKLJUCENO;
  1510.                 else if((xizb == 0 && yizb == 0) || (x == 0 && y == 0))
  1511.                     tabla.velikarcrni = ISKLJUCENO;
  1512.                 else if((xizb == 7 && yizb == 0) || (x == 7 && y == 0))
  1513.                     tabla.malarcrni = ISKLJUCENO;
  1514.                 else if(xizb == 4 && yizb == 7)
  1515.                 {
  1516.                     tabla.malarbeli = ISKLJUCENO;
  1517.                     tabla.velikarbeli = ISKLJUCENO;
  1518.                 }
  1519.                 else if(xizb == 4 && yizb == 0)
  1520.                 {
  1521.                     tabla.malarcrni = ISKLJUCENO;
  1522.                     tabla.velikarcrni = ISKLJUCENO;
  1523.                 }
  1524.  
  1525.                 wcscpy(tabla.polje[y][x].figura, tabla.polje[yizb][xizb].figura);
  1526.                 wcscpy(tabla.polje[yizb][xizb].figura, PRAZNO);
  1527.                 tabla.polje[y][x].bojaFigure = tabla.polje[yizb][xizb].bojaFigure;
  1528.                 NoviPotez(tabla);
  1529.                 ObrisiAnpasan(tabla);
  1530.  
  1531.                 if(!wcscmp(tabla.polje[y][x].figura, PIJUN) && ((tabla.polje[y][x].bojaFigure == BELO && y == 0) || (tabla.polje[y][x].bojaFigure == CRNO && y == 7)))
  1532.                 {
  1533.                     OdstampajTablu(tabla);
  1534.                     short zamena = ZameniPijuna();
  1535.  
  1536.                     switch(zamena)
  1537.                     {
  1538.                         case 0:
  1539.                             wcscpy(tabla.polje[y][x].figura, KRALJICA);
  1540.                             break;
  1541.  
  1542.                         case 1:
  1543.                             wcscpy(tabla.polje[y][x].figura, TOP);
  1544.                             break;
  1545.  
  1546.                         case 2:
  1547.                             wcscpy(tabla.polje[y][x].figura, LOVAC);
  1548.                             break;
  1549.  
  1550.                         case 3:
  1551.                             wcscpy(tabla.polje[y][x].figura, KONJ);
  1552.                     }
  1553.                 }
  1554.  
  1555.                 if(JelSahBeli(tabla, 0, 0))
  1556.                     for(int i = 0; i < 64; i++)
  1557.                         if(!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == BELO)
  1558.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  1559.  
  1560.                 if(JelSahCrni(tabla, 0, 0))
  1561.                     for(int i = 0; i < 64; i++)
  1562.                         if(!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == CRNO)
  1563.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  1564.  
  1565.                 Sleep(260);
  1566.  
  1567.                 OsveziTablu(tabla);
  1568.  
  1569.                 NoviPotez(tabla);
  1570.  
  1571.                 if(JelSahBeli(tabla, 0, 0))
  1572.                     for(int i = 0; i < 64; i++)
  1573.                         if(!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == BELO)
  1574.                         {
  1575.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  1576.                             OsveziTablu(tabla);
  1577.                             break;
  1578.                         }
  1579.  
  1580.                 if(JelSahCrni(tabla, 0, 0))
  1581.                     for(int i = 0; i < 64; i++)
  1582.                         if(!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == CRNO)
  1583.                         {
  1584.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  1585.                             OsveziTablu(tabla);
  1586.                             break;
  1587.                         }
  1588.  
  1589.                 istorija.push_back(tabla);
  1590.                 brPoteza++;
  1591.                 sacekaj = UKLJUCENO;
  1592.  
  1593.             }
  1594.             else if(!wcscmp(tabla.polje[y][x].figura, KRALJ))
  1595.             {
  1596.                 if((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  1597.                 {
  1598.                     NoviPotez(tabla);
  1599.  
  1600.                     PostaviKralja(tabla, x, y);
  1601.                 }
  1602.                 else
  1603.                     NoviPotez(tabla);
  1604.             }
  1605.             else if(!wcscmp(tabla.polje[y][x].figura, PIJUN))
  1606.             {
  1607.                 if((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  1608.                 {
  1609.                     NoviPotez(tabla);
  1610.                     PostaviPijuna(tabla, x, y);
  1611.                 }
  1612.                 else
  1613.                     NoviPotez(tabla);
  1614.             }
  1615.             else if(!wcscmp(tabla.polje[y][x].figura, KONJ))
  1616.             {
  1617.                 if((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  1618.                 {
  1619.                     NoviPotez(tabla);
  1620.                     PostaviKonja(tabla, x, y);
  1621.                 }
  1622.                 else
  1623.                     NoviPotez(tabla);
  1624.             }
  1625.             else if(!wcscmp(tabla.polje[y][x].figura, TOP))
  1626.             {
  1627.                 if((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  1628.                 {
  1629.                     NoviPotez(tabla);
  1630.                     PostaviTopa(tabla, x, y);
  1631.                 }
  1632.                 else
  1633.                     NoviPotez(tabla);
  1634.             }
  1635.             else if(!wcscmp(tabla.polje[y][x].figura, LOVAC))
  1636.             {
  1637.                 if((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  1638.                 {
  1639.                     NoviPotez(tabla);
  1640.                     PostaviLovca(tabla, x, y);
  1641.                 }
  1642.                 else
  1643.                     NoviPotez(tabla);
  1644.             }
  1645.             else if(!wcscmp(tabla.polje[y][x].figura, KRALJICA))
  1646.             {
  1647.                 if((tabla.polje[y][x].bojaFigure == BELO && brPoteza % 2 == 0) || (tabla.polje[y][x].bojaFigure == CRNO && brPoteza % 2 == 1))
  1648.                 {
  1649.                     NoviPotez(tabla);
  1650.                     PostaviKraljicu(tabla, x, y);
  1651.                 }
  1652.                 else
  1653.                     NoviPotez(tabla);
  1654.             }
  1655.             else if(!wcscmp(tabla.polje[y][x].figura, PRAZNO))
  1656.                 NoviPotez(tabla);
  1657.             else if(!wcscmp(tabla.polje[y][x].figura, TACKA))
  1658.             {
  1659.                 PozicijaIzabranog(xizb, yizb, tabla);
  1660.                 wcscpy(tabla.polje[y][x].figura, tabla.polje[yizb][xizb].figura);
  1661.                 wcscpy(tabla.polje[yizb][xizb].figura, PRAZNO);
  1662.                 tabla.polje[y][x].bojaFigure = tabla.polje[yizb][xizb].bojaFigure;
  1663.  
  1664.                 ObrisiAnpasan(tabla);
  1665.  
  1666.                 if(tabla.malarbeli == UKLJUCENO && xizb == 4 && yizb == 7 && x == 6 && y == 7)
  1667.                 {
  1668.                     wcscpy(tabla.polje[7][7].figura, PRAZNO);
  1669.                     wcscpy(tabla.polje[7][5].figura, TOP);
  1670.                     tabla.polje[7][5].bojaFigure = BELO;
  1671.                 }
  1672.  
  1673.                 if(tabla.velikarbeli == UKLJUCENO && xizb == 4 && yizb == 7 && x == 1 && y == 7)
  1674.                 {
  1675.                     wcscpy(tabla.polje[7][0].figura, PRAZNO);
  1676.                     wcscpy(tabla.polje[7][2].figura, TOP);
  1677.                     tabla.polje[7][2].bojaFigure = BELO;
  1678.                 }
  1679.  
  1680.                 if(tabla.malarcrni == UKLJUCENO && xizb == 4 && yizb == 0 && x == 6 && y == 0)
  1681.                 {
  1682.                     wcscpy(tabla.polje[0][7].figura, PRAZNO);
  1683.                     wcscpy(tabla.polje[0][5].figura, TOP);
  1684.                     tabla.polje[0][5].bojaFigure = CRNO;
  1685.                 }
  1686.  
  1687.                 if(tabla.velikarcrni == UKLJUCENO && xizb == 4 && yizb == 0 && x == 1 && y == 0)
  1688.                 {
  1689.                     wcscpy(tabla.polje[0][0].figura, PRAZNO);
  1690.                     wcscpy(tabla.polje[0][2].figura, TOP);
  1691.                     tabla.polje[0][2].bojaFigure = CRNO;
  1692.                 }
  1693.  
  1694.                 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)))
  1695.                     tabla.polje[y][x].anpasan = UKLJUCENO;
  1696.  
  1697.                 if(xizb == 7 && yizb == 7)
  1698.                     tabla.malarbeli = ISKLJUCENO;
  1699.                 else if(xizb == 0 && yizb == 7)
  1700.                     tabla.velikarbeli = ISKLJUCENO;
  1701.                 else if(xizb == 0 && yizb == 0)
  1702.                     tabla.velikarcrni = ISKLJUCENO;
  1703.                 else if(xizb == 7 && yizb == 0)
  1704.                     tabla.malarcrni = ISKLJUCENO;
  1705.                 else if(xizb == 4 && yizb == 7)
  1706.                 {
  1707.                     tabla.malarbeli = ISKLJUCENO;
  1708.                     tabla.velikarbeli = ISKLJUCENO;
  1709.                 }
  1710.                 else if(xizb == 4 && yizb == 0)
  1711.                 {
  1712.                     tabla.malarcrni = ISKLJUCENO;
  1713.                     tabla.velikarcrni = ISKLJUCENO;
  1714.                 }
  1715.  
  1716.                 NoviPotez(tabla);
  1717.  
  1718.                 if(JelSahBeli(tabla, 0, 0))
  1719.                     for(int i = 0; i < 64; i++)
  1720.                         if(!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == BELO)
  1721.                         {
  1722.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  1723.                             OsveziTablu(tabla);
  1724.                             break;
  1725.                         }
  1726.  
  1727.                 if(JelSahCrni(tabla, 0, 0))
  1728.                     for(int i = 0; i < 64; i++)
  1729.                         if(!wcscmp(tabla.polje[i / 8][i % 8].figura, KRALJ) && tabla.polje[i / 8][i % 8].bojaFigure == CRNO)
  1730.                         {
  1731.                             tabla.polje[i / 8][i % 8].stanjePolja = NAPADNUTO;
  1732.                             OsveziTablu(tabla);
  1733.                             break;
  1734.                         }
  1735.  
  1736.                 istorija.push_back(tabla);
  1737.                 brPoteza++;
  1738.                 sacekaj = UKLJUCENO;
  1739.             }
  1740.  
  1741.             OsveziTablu(tabla);
  1742.         }
  1743.     }
  1744. }
  1745.  
  1746. void NapraviTablu(Tabla &tabla)
  1747. {
  1748.     tabla.brlevo = 0;
  1749.     tabla.brdesno = 0;
  1750.     tabla.krajigre = 0;
  1751.     tabla.malarbeli = UKLJUCENO;
  1752.     tabla.malarcrni = UKLJUCENO;
  1753.     tabla.velikarbeli = UKLJUCENO;
  1754.     tabla.velikarcrni = UKLJUCENO;
  1755.  
  1756.     for(int i = 0; i < 8; i++)
  1757.         for(int j = 0; j < 8; j++)
  1758.         {
  1759.             tabla.polje[i][j].stanjePolja = NEUTRALNO;
  1760.             tabla.polje[i][j].anpasan = ISKLJUCENO;
  1761.  
  1762.             if((i + j) % 2 == 0)
  1763.                 tabla.polje[i][j].bojaPolja = BELO;
  1764.             else
  1765.                 tabla.polje[i][j].bojaPolja = CRNO;
  1766.         }
  1767.  
  1768.     for(int i = 0; i < 2; i++)
  1769.         for(int j = 0; j < 8; j++)
  1770.         {
  1771.             tabla.polje[i][j].bojaFigure = CRNO;
  1772.             tabla.polje[i + 6][j].bojaFigure = BELO;
  1773.         }
  1774.  
  1775.     for(int j = 0; j < 8; j++)
  1776.     {
  1777.         wcscpy(tabla.polje[1][j].figura, PIJUN);
  1778.         wcscpy(tabla.polje[6][j].figura, PIJUN);
  1779.     }
  1780.  
  1781.     wcscpy(tabla.polje[0][0].figura, TOP);
  1782.     wcscpy(tabla.polje[0][7].figura, TOP);
  1783.     wcscpy(tabla.polje[7][0].figura, TOP);
  1784.     wcscpy(tabla.polje[7][7].figura, TOP);
  1785.  
  1786.     wcscpy(tabla.polje[0][1].figura, KONJ);
  1787.     wcscpy(tabla.polje[0][6].figura, KONJ);
  1788.     wcscpy(tabla.polje[7][1].figura, KONJ);
  1789.     wcscpy(tabla.polje[7][6].figura, KONJ);
  1790.  
  1791.     wcscpy(tabla.polje[0][2].figura, LOVAC);
  1792.     wcscpy(tabla.polje[0][5].figura, LOVAC);
  1793.     wcscpy(tabla.polje[7][2].figura, LOVAC);
  1794.     wcscpy(tabla.polje[7][5].figura, LOVAC);
  1795.  
  1796.     wcscpy(tabla.polje[0][3].figura, KRALJICA);
  1797.     wcscpy(tabla.polje[7][3].figura, KRALJICA);
  1798.  
  1799.     wcscpy(tabla.polje[0][4].figura, KRALJ);
  1800.     wcscpy(tabla.polje[7][4].figura, KRALJ);
  1801.  
  1802.     for(int i = 2; i < 6; i++)
  1803.         for(int j = 0; j < 8; j++)
  1804.         {
  1805.             tabla.polje[i][j].bojaFigure = ZELENO;
  1806.             wcscpy(tabla.polje[i][j].figura, PRAZNO);
  1807.         }
  1808.  
  1809.     for(int i = 0; i < 8; i++)
  1810.         for(int j = 0; j < 2; j++)
  1811.         {
  1812.             tabla.levo[i][j].anpasan = ISKLJUCENO;
  1813.             tabla.levo[i][j].bojaFigure = CRNO;
  1814.             tabla.levo[i][j].stanjePolja = NEUTRALNO;
  1815.             tabla.desno[i][j].anpasan = ISKLJUCENO;
  1816.             tabla.desno[i][j].bojaFigure = BELO;
  1817.             tabla.desno[i][j].stanjePolja = NEUTRALNO;
  1818.             wcscpy(tabla.levo[i][j].figura, PRAZNO);
  1819.             wcscpy(tabla.desno[i][j].figura, PRAZNO);
  1820.         }
  1821. }
  1822.  
  1823. void SakriKursor()
  1824. {
  1825.     HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
  1826.  
  1827.     if(prviput3)
  1828.     {
  1829.         GetConsoleCursorInfo(consoleHandle, &kursor);
  1830.         prviput3 = 0;
  1831.     }
  1832.  
  1833.     CONSOLE_CURSOR_INFO info;
  1834.     info.dwSize = 100;
  1835.     info.bVisible = FALSE;
  1836.     SetConsoleCursorInfo(consoleHandle, &info);
  1837. }
  1838.  
  1839. void ObrisiEkran()
  1840. {
  1841.     HANDLE hStdOut;
  1842.     CONSOLE_SCREEN_BUFFER_INFO csbi;
  1843.     DWORD count;
  1844.     DWORD cellCount;
  1845.     COORD homeCoords = {0, 0};
  1846.  
  1847.     hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  1848.  
  1849.     if (hStdOut == INVALID_HANDLE_VALUE)
  1850.         return;
  1851.  
  1852.     GetConsoleScreenBufferInfo(hStdOut, &csbi);
  1853.     cellCount = csbi.dwSize.X * csbi.dwSize.Y;
  1854.  
  1855.     FillConsoleOutputCharacter(hStdOut, (TCHAR) ' ', cellCount, homeCoords, &count);
  1856.     FillConsoleOutputAttribute(hStdOut, csbi.wAttributes, cellCount, homeCoords, &count);
  1857.     SetConsoleCursorPosition(hStdOut, homeCoords);
  1858. }
  1859.  
  1860. void gotoxy(int x, int y)
  1861. {
  1862.     COORD koordinate;
  1863.     koordinate.X = x;
  1864.     koordinate.Y = y;
  1865.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), koordinate);
  1866. }
  1867.  
  1868. int UcitajKlik(int &x, int &y)
  1869. {
  1870.     DWORD info;
  1871.     INPUT_RECORD input;
  1872.     HANDLE in = GetStdHandle(STD_INPUT_HANDLE);
  1873.     SetConsoleMode(in, ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT);
  1874.     ReadConsoleInput(in, &input, 1, &info);
  1875.  
  1876.     if(input.Event.MouseEvent.dwButtonState !=  0x0001)
  1877.     {
  1878. GOBACK:
  1879.         ReadConsoleInput(in, &input, 1, &info);
  1880.  
  1881.         if(input.Event.MouseEvent.dwButtonState ==  0x0001)
  1882.         {
  1883. GOBACK2:
  1884.             ReadConsoleInput(in, &input, 1, &info);
  1885.  
  1886.             if(input.Event.MouseEvent.dwButtonState !=  0x0001)
  1887.             {
  1888.                 x = input.Event.MouseEvent.dwMousePosition.X;
  1889.                 y = input.Event.MouseEvent.dwMousePosition.Y;
  1890.             }
  1891.             else
  1892.                 goto GOBACK2;
  1893.         }
  1894.         else
  1895.             goto GOBACK;
  1896.     }
  1897.     else
  1898.         UcitajKlik(x, y);
  1899.  
  1900.     return 0;
  1901. }
  1902.  
  1903. void CentrirajKonzolu()
  1904. {
  1905.     RECT rectClient, rectWindow;
  1906.     HWND hWnd = GetConsoleWindow();
  1907.     GetClientRect(hWnd, &rectClient);
  1908.     GetWindowRect(hWnd, &rectWindow);
  1909.     int posx, posy;
  1910.     posx = GetSystemMetrics(SM_CXSCREEN) / 2 - (rectWindow.right - rectWindow.left) / 2;
  1911.     posy = GetSystemMetrics(SM_CYSCREEN) / 2 - (rectWindow.bottom - rectWindow.top) / 2;
  1912.  
  1913.     SetWindowPos(GetConsoleWindow(), HWND_TOP, posx, posy, 0, 0, SWP_NOSIZE);
  1914. }
  1915.  
  1916. void PodesiKonzolu()
  1917. {
  1918.     HWND consoleWindow = GetConsoleWindow();
  1919.  
  1920.     if(prviput1)
  1921.     {
  1922.         winlog = GetWindowLong(consoleWindow, GWL_STYLE);
  1923.         SetWindowLong(consoleWindow, GWL_STYLE, winlog & ~WS_MAXIMIZEBOX & ~WS_SIZEBOX & ~WS_VSCROLL);
  1924.         prviput1 = 0;
  1925.     }
  1926.     else
  1927.         SetWindowLong(consoleWindow, GWL_STYLE, GetWindowLong(consoleWindow, GWL_STYLE) & ~WS_MAXIMIZEBOX & ~WS_SIZEBOX & ~WS_VSCROLL);
  1928.  
  1929.  
  1930.     SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),  ENABLE_EXTENDED_FLAGS);
  1931.  
  1932.     _setmode(_fileno(stdout), _O_U8TEXT);
  1933.     SetConsoleTitleW(L"ŠAH");
  1934.     _setmode(_fileno(stdout), _O_TEXT);
  1935.  
  1936.     if(boja == SVETLO)
  1937.         system("color 23");
  1938.     else if(boja == TAMNO)
  1939.         system("color 56");
  1940.     else if(boja == SIVO)
  1941.         system("color 89");
  1942.  
  1943.     _CONSOLE_SCREEN_BUFFER_INFOEX info;
  1944.     info.cbSize = sizeof(info);
  1945.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  1946.     GetConsoleScreenBufferInfoEx(hConsole, &info);
  1947.  
  1948.     if(prviput2)
  1949.     {
  1950.         screenbuffer = info;
  1951.         prviput2 = 0;
  1952.     }
  1953.  
  1954.     info.dwSize = {36, 19};
  1955.     info.ColorTable[0] = RGB(242, 242, 242);
  1956.     info.ColorTable[1] = RGB(10, 10, 10);
  1957.     info.ColorTable[2] = RGB(198, 175, 141);
  1958.     info.ColorTable[3] = RGB(114, 71, 56);
  1959.     info.ColorTable[4] = RGB(50, 31, 26);
  1960.     info.ColorTable[5] = RGB(132, 94, 73);
  1961.     info.ColorTable[6] = RGB(73, 47, 37);
  1962.     info.ColorTable[7] = RGB(22, 11, 4);
  1963.     info.ColorTable[8] = RGB(158, 158, 158);
  1964.     info.ColorTable[9] = RGB(102, 102, 102);
  1965.     info.ColorTable[10] = RGB(43, 43, 43);
  1966.     info.ColorTable[11] = RGB(0, 119, 65);
  1967.     info.ColorTable[12] = RGB(126, 33, 35);
  1968.     info.ColorTable[13] = RGB(10, 10, 130);
  1969.     info.ColorTable[14] = RGB(240, 191, 40);
  1970.     info.ColorTable[15] = RGB(255, 255, 255);
  1971.  
  1972.     SetConsoleScreenBufferInfoEx(hConsole, &info);
  1973.     PodesiVelicinu(29);
  1974.     SakriKursor();
  1975.     system("MODE 36, 18");
  1976. }
  1977.  
  1978. void PodesiKonzolu2()
  1979. {
  1980.     _CONSOLE_SCREEN_BUFFER_INFOEX info;
  1981.     info.cbSize = sizeof(info);
  1982.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  1983.     GetConsoleScreenBufferInfoEx(hConsole, &info);
  1984.     info.dwSize = {36, 17};
  1985.     SetConsoleScreenBufferInfoEx(hConsole, &info);
  1986. }
  1987.  
  1988. void PodesiVelicinu(int i)
  1989. {
  1990.     CONSOLE_FONT_INFOEX cfi;
  1991.     cfi.cbSize = sizeof(cfi);
  1992.     cfi.nFont = 0;
  1993.     cfi.dwFontSize.X = 0;
  1994.     cfi.dwFontSize.Y = i;
  1995.     cfi.FontFamily = TMPF_TRUETYPE;
  1996.     cfi.FontWeight = FW_NORMAL;
  1997.     std::wcscpy(cfi.FaceName, L"MS Gothic");
  1998.     SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &cfi);
  1999. }
  2000.  
  2001. void OdstampajTablu(Tabla tabla)
  2002. {
  2003.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  2004.     _setmode(_fileno(stdout), _O_U8TEXT);
  2005.  
  2006.     for(int i = 0; i < 8; i++)
  2007.         for(int j = 0; j < 8; j++)
  2008.         {
  2009.             if(tabla.polje[i][j].stanjePolja == IZABRANO && tabla.polje[i][j].bojaFigure == CRNO)
  2010.                 SetConsoleTextAttribute(console, 177);
  2011.             else if(tabla.polje[i][j].stanjePolja == IZABRANO && tabla.polje[i][j].bojaFigure == BELO)
  2012.                 SetConsoleTextAttribute(console, 176);
  2013.             else if(tabla.polje[i][j].stanjePolja == NAPADNUTO && (tabla.polje[i][j].bojaFigure == CRNO || tabla.polje[i][j].bojaFigure == ZELENO))
  2014.                 SetConsoleTextAttribute(console, 193);
  2015.             else if(tabla.polje[i][j].stanjePolja == NAPADNUTO && tabla.polje[i][j].bojaFigure == BELO)
  2016.                 SetConsoleTextAttribute(console, 192);
  2017.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  2018.                 SetConsoleTextAttribute(console, 32);
  2019.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  2020.                 SetConsoleTextAttribute(console, 33);
  2021.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  2022.                 SetConsoleTextAttribute(console, 80);
  2023.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  2024.                 SetConsoleTextAttribute(console, 81);
  2025.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  2026.                 SetConsoleTextAttribute(console, 128);
  2027.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  2028.                 SetConsoleTextAttribute(console, 129);
  2029.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  2030.                 SetConsoleTextAttribute(console, 48);
  2031.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  2032.                 SetConsoleTextAttribute(console, 49);
  2033.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  2034.                 SetConsoleTextAttribute(console, 96);
  2035.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  2036.                 SetConsoleTextAttribute(console, 97);
  2037.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  2038.                 SetConsoleTextAttribute(console, 144);
  2039.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  2040.                 SetConsoleTextAttribute(console, 145);
  2041.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  2042.                 SetConsoleTextAttribute(console, 43);
  2043.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  2044.                 SetConsoleTextAttribute(console, 91);
  2045.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  2046.                 SetConsoleTextAttribute(console, 139);
  2047.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  2048.                 SetConsoleTextAttribute(console, 59);
  2049.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  2050.                 SetConsoleTextAttribute(console, 107);
  2051.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  2052.                 SetConsoleTextAttribute(console, 155);
  2053.  
  2054.             gotoxy(10 + j * 2, 3 + i);
  2055.             wprintf(tabla.polje[i][j].figura);
  2056.         }
  2057.  
  2058.     OdstampajLevoDesno(tabla);
  2059. }
  2060.  
  2061. void ObrnutoOdstampajTablu(Tabla tabla)
  2062. {
  2063.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  2064.     _setmode(_fileno(stdout), _O_U8TEXT);
  2065.  
  2066.     for(int i = 0; i < 8; i++)
  2067.         for(int j = 0; j < 8; j++)
  2068.         {
  2069.             if(tabla.polje[i][j].stanjePolja == IZABRANO && tabla.polje[i][j].bojaFigure == CRNO)
  2070.                 SetConsoleTextAttribute(console, 177);
  2071.             else if(tabla.polje[i][j].stanjePolja == IZABRANO && tabla.polje[i][j].bojaFigure == BELO)
  2072.                 SetConsoleTextAttribute(console, 176);
  2073.             else if(tabla.polje[i][j].stanjePolja == NAPADNUTO && tabla.polje[i][j].bojaFigure == CRNO)
  2074.                 SetConsoleTextAttribute(console, 193);
  2075.             else if(tabla.polje[i][j].stanjePolja == NAPADNUTO && tabla.polje[i][j].bojaFigure == BELO)
  2076.                 SetConsoleTextAttribute(console, 192);
  2077.             else if(tabla.polje[i][j].stanjePolja == NAPADNUTO && !wcscmp(tabla.polje[i][j].figura, PRAZNO))
  2078.                 SetConsoleTextAttribute(console, 192);
  2079.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  2080.                 SetConsoleTextAttribute(console, 32);
  2081.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  2082.                 SetConsoleTextAttribute(console, 33);
  2083.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  2084.                 SetConsoleTextAttribute(console, 80);
  2085.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  2086.                 SetConsoleTextAttribute(console, 81);
  2087.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  2088.                 SetConsoleTextAttribute(console, 128);
  2089.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  2090.                 SetConsoleTextAttribute(console, 129);
  2091.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  2092.                 SetConsoleTextAttribute(console, 48);
  2093.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  2094.                 SetConsoleTextAttribute(console, 49);
  2095.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  2096.                 SetConsoleTextAttribute(console, 96);
  2097.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  2098.                 SetConsoleTextAttribute(console, 97);
  2099.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == BELO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  2100.                 SetConsoleTextAttribute(console, 144);
  2101.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == CRNO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  2102.                 SetConsoleTextAttribute(console, 145);
  2103.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SVETLO && tabla.polje[i][j].bojaPolja == BELO)
  2104.                 SetConsoleTextAttribute(console, 43);
  2105.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == TAMNO && tabla.polje[i][j].bojaPolja == BELO)
  2106.                 SetConsoleTextAttribute(console, 91);
  2107.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SIVO && tabla.polje[i][j].bojaPolja == BELO)
  2108.                 SetConsoleTextAttribute(console, 139);
  2109.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SVETLO && tabla.polje[i][j].bojaPolja == CRNO)
  2110.                 SetConsoleTextAttribute(console, 59);
  2111.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == TAMNO && tabla.polje[i][j].bojaPolja == CRNO)
  2112.                 SetConsoleTextAttribute(console, 107);
  2113.             else if(tabla.polje[i][j].stanjePolja == NEUTRALNO && tabla.polje[i][j].bojaFigure == ZELENO && boja == SIVO && tabla.polje[i][j].bojaPolja == CRNO)
  2114.                 SetConsoleTextAttribute(console, 155);
  2115.  
  2116.             gotoxy(24 - j * 2, 10 - i);
  2117.             wprintf(tabla.polje[i][j].figura);
  2118.         }
  2119.  
  2120.     OdstampajLevoDesno(tabla);
  2121. }
  2122.  
  2123. void OdstampajLevoDesno(Tabla tabla)
  2124. {
  2125.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  2126.     _setmode(_fileno(stdout), _O_U8TEXT);
  2127.  
  2128.     for(int i = 0; i < 8; i++)
  2129.         for(int j = 0; j < 2; j++)
  2130.         {
  2131.             if(boja == SVETLO)
  2132.                 SetConsoleTextAttribute(console, 81);
  2133.             else if(boja == TAMNO)
  2134.                 SetConsoleTextAttribute(console, 97);
  2135.             else if(boja == SIVO)
  2136.                 SetConsoleTextAttribute(console, 145);
  2137.  
  2138.             gotoxy(2 + j * 2, 3 + i);
  2139.             wprintf(tabla.levo[i][j].figura);
  2140.         }
  2141.  
  2142.     for(int i = 0; i < 8; i++)
  2143.         for(int j = 0; j < 2; j++)
  2144.         {
  2145.             if(boja == SVETLO)
  2146.                 SetConsoleTextAttribute(console, 80);
  2147.             else if(boja == TAMNO)
  2148.                 SetConsoleTextAttribute(console, 96);
  2149.             else if(boja == SIVO)
  2150.                 SetConsoleTextAttribute(console, 144);
  2151.  
  2152.             gotoxy(30 + j * 2, 3 + i);
  2153.             wprintf(tabla.desno[i][j].figura);
  2154.         }
  2155.  
  2156.     if(boja == SVETLO)
  2157.         SetConsoleTextAttribute(console, 68);
  2158.     else if(boja == TAMNO)
  2159.         SetConsoleTextAttribute(console, 119);
  2160.     else if(boja == SIVO)
  2161.         SetConsoleTextAttribute(console, 170);
  2162.  
  2163.  
  2164.     gotoxy(26, 3);
  2165.     wprintf(L"██");
  2166.     gotoxy(26, 4);
  2167.     wprintf(L"██");
  2168.     gotoxy(26, 5);
  2169.     wprintf(L"██");
  2170.     gotoxy(26, 6);
  2171.     wprintf(L"██");
  2172.     gotoxy(26, 7);
  2173.     wprintf(L"██");
  2174.     gotoxy(26, 8);
  2175.     wprintf(L"██");
  2176.     gotoxy(26, 9);
  2177.     wprintf(L"██");
  2178.     gotoxy(26, 10);
  2179.     wprintf(L"██");
  2180. }
  2181.  
  2182. void PozicijaNaTabli(int &x, int &y)
  2183. {
  2184.     switch(x)
  2185.     {
  2186.         case 10:
  2187.         case 11:
  2188.             x = 0;
  2189.             break;
  2190.  
  2191.         case 12:
  2192.         case 13:
  2193.             x = 1;
  2194.             break;
  2195.  
  2196.         case 14:
  2197.         case 15:
  2198.             x = 2;
  2199.             break;
  2200.  
  2201.         case 16:
  2202.         case 17:
  2203.             x = 3;
  2204.             break;
  2205.  
  2206.         case 18:
  2207.         case 19:
  2208.             x = 4;
  2209.             break;
  2210.  
  2211.         case 20:
  2212.         case 21:
  2213.             x = 5;
  2214.             break;
  2215.  
  2216.         case 22:
  2217.         case 23:
  2218.             x = 6;
  2219.             break;
  2220.  
  2221.         case 24:
  2222.         case 25:
  2223.             x = 7;
  2224.     }
  2225.  
  2226.     switch(y)
  2227.     {
  2228.         case 10:
  2229.             y = 7;
  2230.             break;
  2231.  
  2232.         case 9:
  2233.             y = 6;
  2234.             break;
  2235.  
  2236.         case 8:
  2237.             y = 5;
  2238.             break;
  2239.  
  2240.         case 7:
  2241.             y = 4;
  2242.             break;
  2243.  
  2244.         case 6:
  2245.             y = 3;
  2246.             break;
  2247.  
  2248.         case 5:
  2249.             y = 2;
  2250.             break;
  2251.  
  2252.         case 4:
  2253.             y = 1;
  2254.             break;
  2255.  
  2256.         case 3:
  2257.             y = 0;
  2258.     }
  2259. }
  2260.  
  2261. void ObrnutaPozicijaNaTabli(int &x, int &y)
  2262. {
  2263.     switch(x)
  2264.     {
  2265.         case 10:
  2266.         case 11:
  2267.             x = 7;
  2268.             break;
  2269.  
  2270.         case 12:
  2271.         case 13:
  2272.             x = 6;
  2273.             break;
  2274.  
  2275.         case 14:
  2276.         case 15:
  2277.             x = 5;
  2278.             break;
  2279.  
  2280.         case 16:
  2281.         case 17:
  2282.             x = 4;
  2283.             break;
  2284.  
  2285.         case 18:
  2286.         case 19:
  2287.             x = 3;
  2288.             break;
  2289.  
  2290.         case 20:
  2291.         case 21:
  2292.             x = 2;
  2293.             break;
  2294.  
  2295.         case 22:
  2296.         case 23:
  2297.             x = 1;
  2298.             break;
  2299.  
  2300.         case 24:
  2301.         case 25:
  2302.             x = 0;
  2303.     }
  2304.  
  2305.     switch(y)
  2306.     {
  2307.         case 10:
  2308.             y = 0;
  2309.             break;
  2310.  
  2311.         case 9:
  2312.             y = 1;
  2313.             break;
  2314.  
  2315.         case 8:
  2316.             y = 2;
  2317.             break;
  2318.  
  2319.         case 7:
  2320.             y = 3;
  2321.             break;
  2322.  
  2323.         case 6:
  2324.             y = 4;
  2325.             break;
  2326.  
  2327.         case 5:
  2328.             y = 5;
  2329.             break;
  2330.  
  2331.         case 4:
  2332.             y = 6;
  2333.             break;
  2334.  
  2335.         case 3:
  2336.             y = 7;
  2337.     }
  2338. }
  2339.  
  2340. void NoviPotez(Tabla &tabla)
  2341. {
  2342.     for(int a = 0; a < 8; a++)
  2343.         for(int b = 0; b < 8; b++)
  2344.         {
  2345.             if(tabla.polje[a][b].stanjePolja == IZABRANO)
  2346.                 tabla.polje[a][b].stanjePolja = NEUTRALNO;
  2347.  
  2348.             if(tabla.polje[a][b].stanjePolja == NAPADNUTO)
  2349.                 tabla.polje[a][b].stanjePolja = NEUTRALNO;
  2350.  
  2351.             if(!wcscmp(tabla.polje[a][b].figura, TACKA))
  2352.                 wcscpy(tabla.polje[a][b].figura, PRAZNO);
  2353.  
  2354.             if(!wcscmp(tabla.polje[a][b].figura, PRAZNO))
  2355.                 tabla.polje[a][b].bojaFigure = ZELENO;
  2356.         }
  2357. }
  2358.  
  2359. void ObrisiAnpasan(Tabla &tabla)
  2360. {
  2361.     for(int a = 0; a < 8; a++)
  2362.         for(int b = 0; b < 8; b++)
  2363.             if(tabla.polje[a][b].anpasan == UKLJUCENO)
  2364.                 tabla.polje[a][b].anpasan = ISKLJUCENO;
  2365.  
  2366. }
  2367.  
  2368. void PozicijaIzabranog(int &xizb, int &yizb, Tabla tabla)
  2369. {
  2370.     for(int a = 0; a < 8; a++)
  2371.         for(int b = 0; b < 8; b++)
  2372.             if(tabla.polje[a][b].stanjePolja == IZABRANO)
  2373.             {
  2374.                 yizb = a;
  2375.                 xizb = b;
  2376.                 return;
  2377.             }
  2378. }
  2379.  
  2380. short JelUnutarTable(int x, int y)
  2381. {
  2382.     if(x >= 0 && x <= 7 && y >= 0 && y <= 7)
  2383.         return 1;
  2384.     else
  2385.         return 0;
  2386. }
  2387.  
  2388. void OdstampajKonzolu()
  2389. {
  2390.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  2391.     _setmode(_fileno(stdout), _O_U8TEXT);
  2392.  
  2393.     gotoxy(0, 0);
  2394.  
  2395.     if(boja == SVETLO)
  2396.         SetConsoleTextAttribute(console, 45);
  2397.     else if(boja == TAMNO)
  2398.         SetConsoleTextAttribute(console, 93);
  2399.     else if(boja == SIVO)
  2400.         SetConsoleTextAttribute(console, 141);
  2401.  
  2402.     wprintf(L"");  // save
  2403.  
  2404.     if(boja == SVETLO)
  2405.         SetConsoleTextAttribute(console, 46);
  2406.     else if(boja == TAMNO)
  2407.         SetConsoleTextAttribute(console, 94);
  2408.     else if(boja == SIVO)
  2409.         SetConsoleTextAttribute(console, 142);
  2410.  
  2411.     wprintf(L"");  // open
  2412.  
  2413.     if(boja == SVETLO)
  2414.         SetConsoleTextAttribute(console, 44);
  2415.     else if(boja == TAMNO)
  2416.         SetConsoleTextAttribute(console, 92);
  2417.     else if(boja == SIVO)
  2418.         SetConsoleTextAttribute(console, 140);
  2419.  
  2420.     wprintf(L"");  // restart      
  2421.  
  2422.     if(boja == SVETLO)
  2423.         SetConsoleTextAttribute(console, 36);
  2424.     else if(boja == TAMNO)
  2425.         SetConsoleTextAttribute(console, 87);
  2426.     else if(boja == SIVO)
  2427.         SetConsoleTextAttribute(console, 138);
  2428.  
  2429.     // gear 
  2430.     wprintf(L"");  // color
  2431.     wprintf(L"");  // resize
  2432.     wprintf(L"");  // back
  2433.     wprintf(L"                  "); // space
  2434.  
  2435.     if(rotacija == UKLJUCENO)
  2436.         wprintf(L"");  // rotation 
  2437.     else
  2438.         wprintf(L"");  // rotation 
  2439.  
  2440.     if(boja == SVETLO)
  2441.         SetConsoleTextAttribute(console, 47);
  2442.     else if(boja == TAMNO)
  2443.         SetConsoleTextAttribute(console, 95);
  2444.     else if(boja == SIVO)
  2445.         SetConsoleTextAttribute(console, 143);
  2446.  
  2447.     wprintf(L"");  // info
  2448.  
  2449.     if(boja == SVETLO)
  2450.         SetConsoleTextAttribute(console, 44);
  2451.     else if(boja == TAMNO)
  2452.         SetConsoleTextAttribute(console, 92);
  2453.     else if(boja == SIVO)
  2454.         SetConsoleTextAttribute(console, 140);
  2455.  
  2456.     wprintf(L"\n");  // quit
  2457.  
  2458.     if(boja == SVETLO)
  2459.         SetConsoleTextAttribute(console, 36);
  2460.     else if(boja == TAMNO)
  2461.         SetConsoleTextAttribute(console, 87);
  2462.     else if(boja == SIVO)
  2463.         SetConsoleTextAttribute(console, 138);
  2464.  
  2465.     wprintf(L"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");
  2466.     wprintf(L"┏━━━━━┓                     ┏━━━━━┓ \n");
  2467.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  2468.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  2469.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  2470.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  2471.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  2472.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  2473.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  2474.     wprintf(L"┃     ┃                     ┃     ┃ \n");
  2475.     wprintf(L"┗━━━━━┛                     ┗━━━━━┛ \n");
  2476.     wprintf(L"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ \n");
  2477.     wprintf(L"┃                                 ┃ \n");
  2478.     wprintf(L"┃                                 ┃ \n");
  2479.     wprintf(L"┃                                 ┃ \n");
  2480.     wprintf(L"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ");
  2481.  
  2482.     ObrisiTerminal();
  2483.  
  2484.     if(boja == SVETLO)
  2485.         SetConsoleTextAttribute(console, 68);
  2486.     else if(boja == TAMNO)
  2487.         SetConsoleTextAttribute(console, 119);
  2488.     else if(boja == SIVO)
  2489.         SetConsoleTextAttribute(console, 170);
  2490.  
  2491.     gotoxy(8, 2);
  2492.     wprintf(L"████████████████████");
  2493.     gotoxy(8, 3);
  2494.     wprintf(L"██");
  2495.     gotoxy(8, 4);
  2496.     wprintf(L"██");
  2497.     gotoxy(8, 5);
  2498.     wprintf(L"██");
  2499.     gotoxy(8, 6);
  2500.     wprintf(L"██");
  2501.     gotoxy(8, 7);
  2502.     wprintf(L"██");
  2503.     gotoxy(8, 8);
  2504.     wprintf(L"██");
  2505.     gotoxy(8, 9);
  2506.     wprintf(L"██");
  2507.     gotoxy(8, 10);
  2508.     wprintf(L"██");
  2509.     gotoxy(26, 3);
  2510.     wprintf(L"██");
  2511.     gotoxy(26, 4);
  2512.     wprintf(L"██");
  2513.     gotoxy(26, 5);
  2514.     wprintf(L"██");
  2515.     gotoxy(26, 6);
  2516.     wprintf(L"██");
  2517.     gotoxy(26, 7);
  2518.     wprintf(L"██");
  2519.     gotoxy(26, 8);
  2520.     wprintf(L"██");
  2521.     gotoxy(26, 9);
  2522.     wprintf(L"██");
  2523.     gotoxy(26, 10);
  2524.     wprintf(L"██");
  2525.     gotoxy(8, 11);
  2526.     wprintf(L"████████████████████");
  2527. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement