Advertisement
Momir

ČAH v0.1.0

May 7th, 2019
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 13.63 KB | None | 0 0
  1. #define _WIN32_WINNT 0x0600
  2. #define STRICT
  3. #include <dos.h>
  4. #include <dir.h>
  5. #include <iostream>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <conio.h>
  9. #include <io.h>
  10. #include <shlwapi.h>
  11. #include <fcntl.h>
  12. #include <unistd.h>
  13. #include <windows.h>
  14. #include <cwchar>
  15. #include <winreg.h>
  16. #include <Wincon.h>
  17. //#include <graphics.h>
  18. #define _O_U16TEXT  0x20000
  19. #define _O_U8TEXT   0x40000
  20. using namespace std;
  21.  
  22. typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX
  23. {
  24.     ULONG      cbSize;
  25.     COORD      dwSize;
  26.     COORD      dwCursorPosition;
  27.     WORD       wAttributes;
  28.     SMALL_RECT srWindow;
  29.     COORD      dwMaximumWindowSize;
  30.     WORD       wPopupAttributes;
  31.     BOOL       bFullscreenSupported;
  32.     COLORREF   ColorTable[16];
  33. } CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
  34.  
  35. typedef struct _CONSOLE_FONT_INFOEX
  36. {
  37.     ULONG cbSize;
  38.     DWORD nFont;
  39.     COORD dwFontSize;
  40.     UINT  FontFamily;
  41.     UINT  FontWeight;
  42.     WCHAR FaceName[LF_FACESIZE];
  43. } CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
  44.  
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif
  48. BOOL WINAPI SetCurrentConsoleFontEx(HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx);
  49. #ifdef __cplusplus
  50. }
  51. #endif
  52.  
  53. #ifdef __cplusplus
  54. extern "C" {
  55. #endif
  56. BOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx);
  57. #ifdef __cplusplus
  58. }
  59. #endif
  60.  
  61. #ifdef __cplusplus
  62. extern "C" {
  63. #endif
  64. BOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx);
  65. #ifdef __cplusplus
  66. }
  67. #endif
  68.  
  69. void SakriKursor()
  70. {
  71.     HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
  72.     CONSOLE_CURSOR_INFO info;
  73.     info.dwSize = 100;
  74.     info.bVisible = FALSE;
  75.     SetConsoleCursorInfo(consoleHandle, &info);
  76. }
  77.  
  78. void ObrisiEkran()
  79. {
  80.     HANDLE hStdOut;
  81.     CONSOLE_SCREEN_BUFFER_INFO csbi;
  82.     DWORD count;
  83.     DWORD cellCount;
  84.     COORD homeCoords = {0, 0};
  85.  
  86.     hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  87.  
  88.     if (hStdOut == INVALID_HANDLE_VALUE)
  89.         return;
  90.  
  91.     GetConsoleScreenBufferInfo(hStdOut, &csbi);
  92.     cellCount = csbi.dwSize.X * csbi.dwSize.Y;
  93.  
  94.     FillConsoleOutputCharacter(hStdOut, (TCHAR) ' ', cellCount, homeCoords, &count);
  95.     FillConsoleOutputAttribute(hStdOut, csbi.wAttributes, cellCount, homeCoords, &count);
  96.     SetConsoleCursorPosition(hStdOut, homeCoords);
  97. }
  98.  
  99. void gotoxy(int x, int y)
  100. {
  101.     COORD koordinate;
  102.     koordinate.X = x;
  103.     koordinate.Y = y;
  104.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), koordinate);
  105. }
  106.  
  107. int UcitajKlik(int &x, int &y)
  108. {
  109.     DWORD info;
  110.     CONSOLE_SCREEN_BUFFER_INFO scrinfo;
  111.     INPUT_RECORD input;
  112.     HANDLE in = GetStdHandle(STD_INPUT_HANDLE);
  113.     SetConsoleMode(in, ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT);
  114.     ReadConsoleInput(in, &input, 1, &info);
  115.  
  116.     if(input.Event.MouseEvent.dwButtonState !=  0x0001)
  117.     {
  118. GOBACK:
  119.         int x2 = x, y2 = y;
  120.         ReadConsoleInput(in, &input, 1, &info);
  121.  
  122.         if(input.Event.MouseEvent.dwButtonState ==  0x0001)
  123.         {
  124.             x = input.Event.MouseEvent.dwMousePosition.X;
  125.             y = input.Event.MouseEvent.dwMousePosition.Y;
  126.         }
  127.         else
  128.             goto GOBACK;
  129.     }
  130.     else
  131.         UcitajKlik(x, y);
  132.  
  133.     return 0;
  134. }
  135.  
  136. void CentrirajKonzolu()
  137. {
  138.     RECT rectClient, rectWindow;
  139.     HWND hWnd = GetConsoleWindow();
  140.     GetClientRect(hWnd, &rectClient);
  141.     GetWindowRect(hWnd, &rectWindow);
  142.     int posx, posy;
  143.     posx = GetSystemMetrics(SM_CXSCREEN) / 2 - (rectWindow.right - rectWindow.left) / 2;
  144.     posy = GetSystemMetrics(SM_CYSCREEN) / 2 - (rectWindow.bottom - rectWindow.top) / 2;
  145.  
  146.     SetWindowPos(GetConsoleWindow(), HWND_TOP, posx, posy, 0, 0, SWP_NOSIZE);
  147. }
  148.  
  149. void PodesiKonzolu()
  150. {
  151.     HWND consoleWindow = GetConsoleWindow();
  152.     SetWindowLong(consoleWindow, GWL_STYLE, GetWindowLong(consoleWindow, GWL_STYLE) & ~WS_MAXIMIZEBOX & ~WS_SIZEBOX);
  153.  
  154.     SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),  ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS);
  155.     SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),  ENABLE_EXTENDED_FLAGS);
  156.  
  157.     _setmode(_fileno(stdout), _O_U8TEXT);
  158.     SetConsoleTitleW(L"Što se kriješ fešiš");
  159.     _setmode(_fileno(stdout), _O_TEXT);
  160.  
  161.     system("color e6");
  162.  
  163.     _CONSOLE_SCREEN_BUFFER_INFOEX info;
  164.     info.cbSize = sizeof(info);
  165.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  166.     GetConsoleScreenBufferInfoEx(hConsole, &info);
  167.     info.dwSize = {36, 19};
  168.  
  169.     SetConsoleScreenBufferInfoEx(hConsole, &info);
  170.  
  171.     CONSOLE_FONT_INFOEX cfi;
  172.     cfi.cbSize = sizeof(cfi);
  173.     cfi.nFont = 0;
  174.     cfi.dwFontSize.X = 0;
  175.     cfi.dwFontSize.Y = 29;
  176.     cfi.FontFamily = TMPF_TRUETYPE;
  177.     cfi.FontWeight = FW_NORMAL;
  178.     std::wcscpy(cfi.FaceName, L"MS Gothic");
  179.     SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &cfi);
  180.  
  181.     SakriKursor();
  182. }
  183.  
  184. void PodesiKonzolu2()
  185. {
  186.     _CONSOLE_SCREEN_BUFFER_INFOEX info;
  187.     info.cbSize = sizeof(info);
  188.     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  189.     GetConsoleScreenBufferInfoEx(hConsole, &info);
  190.     info.dwSize = {36, 17};
  191.     SetConsoleScreenBufferInfoEx(hConsole, &info);
  192. }
  193.  
  194. void ObrisiKonzoluPodesavanja()
  195. {
  196.     RegDeleteKeyA(HKEY_CURRENT_USER, "Console\\C:_Program Files (x86)_CodeBlocks_cb_console_runner.exe");
  197.     RegDeleteKeyA(HKEY_CURRENT_USER, "Console\\");
  198.     RegDeleteKeyA(HKEY_CURRENT_USER, "Console");
  199. }
  200.  
  201. void OdstampajKonzolu()
  202. {
  203.     HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
  204.     _setmode(_fileno(stdout), _O_U8TEXT);
  205.     wprintf(L"                    \n");
  206.     wprintf(L"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");
  207.  
  208.     gotoxy(0, 2);
  209.     wprintf(L"                            ┏━━━━━┓\n");
  210.     wprintf(L"                            ┃     ┃\n");
  211.     wprintf(L"                            ┃     ┃\n");
  212.     wprintf(L"                            ┃     ┃\n");
  213.     wprintf(L"                            ┃     ┃\n");
  214.     wprintf(L"                            ┃     ┃\n");
  215.     wprintf(L"                            ┃     ┃\n");
  216.     wprintf(L"                            ┃     ┃\n");
  217.     wprintf(L"                            ┃     ┃\n");
  218.     wprintf(L"                            ┗━━━━━┛\n");
  219.  
  220.  
  221.  
  222.     gotoxy(0, 2);
  223.     wprintf(L"┏━━━━━┓\n");
  224.     wprintf(L"┃     ┃\n");
  225.     wprintf(L"┃     ┃\n");
  226.     wprintf(L"┃     ┃\n");
  227.     wprintf(L"┃     ┃\n");
  228.     wprintf(L"┃     ┃\n");
  229.     wprintf(L"┃     ┃\n");
  230.     wprintf(L"┃     ┃\n");
  231.     wprintf(L"┃     ┃\n");
  232.     wprintf(L"┗━━━━━┛\n");
  233.  
  234.  
  235.  
  236.     gotoxy(8, 3);
  237.     wprintf(L"  ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜");
  238.     gotoxy(8, 4);
  239.     wprintf(L"  ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟");
  240.     gotoxy(8, 9);
  241.     wprintf(L"  ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟");
  242.     gotoxy(8, 10);
  243.     wprintf(L"  ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜");
  244.  
  245.  
  246.  
  247.     gotoxy(0, 2);
  248.     wprintf(L"                            ┏━━━━━┓\n");
  249.     wprintf(L"                            ┃     ┃\n");
  250.     wprintf(L"                            ┃     ┃\n");
  251.     wprintf(L"                            ┃     ┃\n");
  252.     wprintf(L"                            ┃     ┃\n");
  253.     wprintf(L"                            ┃     ┃\n");
  254.     wprintf(L"                            ┃     ┃\n");
  255.     wprintf(L"                            ┃     ┃\n");
  256.     wprintf(L"                            ┃     ┃\n");
  257.     wprintf(L"                            ┗━━━━━┛\n");
  258.  
  259.  
  260.  
  261.     gotoxy(0, 2);
  262.     wprintf(L"┏━━━━━┓\n");
  263.     wprintf(L"┃ ████┃\n");
  264.     wprintf(L"┃ ████┃\n");
  265.     wprintf(L"┃ ████┃\n");
  266.     wprintf(L"┃ ████┃\n");
  267.     wprintf(L"┃ ████┃\n");
  268.     wprintf(L"┃ ████┃\n");
  269.     wprintf(L"┃ ████┃\n");
  270.     wprintf(L"┃ ████┃\n");
  271.     wprintf(L"┗━━━━━┛\n");
  272.  
  273.  
  274.  
  275.     gotoxy(8, 2);
  276.     wprintf(L"████████████████████");
  277.     gotoxy(8, 3);
  278.     wprintf(L"██♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ██");
  279.     gotoxy(8, 4);
  280.     wprintf(L"██♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ██");
  281.     gotoxy(8, 5);
  282.     wprintf(L"██                ██");
  283.     gotoxy(8, 6);
  284.     wprintf(L"██                ██");
  285.     gotoxy(8, 7);
  286.     wprintf(L"██                ██");
  287.     gotoxy(8, 8);
  288.     wprintf(L"██                ██");
  289.     gotoxy(8, 9);
  290.     wprintf(L"██♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ██");
  291.     gotoxy(8, 10);
  292.     wprintf(L"██♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ██");
  293.     gotoxy(8, 11);
  294.     wprintf(L"████████████████████");
  295.  
  296.  
  297.  
  298.     gotoxy(0, 12);
  299.     wprintf(L"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ \n");
  300.     wprintf(L"┃                                 ┃ \n");
  301.     wprintf(L"┃                                 ┃ \n");
  302.     wprintf(L"┃                                 ┃ \n");
  303.     wprintf(L"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ");
  304.  
  305.  
  306.  
  307.     SetConsoleTextAttribute(console, 136);
  308.     gotoxy(2, 13);
  309.     wprintf(L"████████████████████████████████\n");
  310.     gotoxy(2, 14);
  311.     wprintf(L"████████████████████████████████\n");
  312.     gotoxy(2, 15);
  313.     wprintf(L"████████████████████████████████\n");
  314.  
  315.  
  316.  
  317.     gotoxy(2, 3);
  318.     wprintf(L"████\n");
  319.     gotoxy(2, 4);
  320.     wprintf(L"████\n");
  321.     gotoxy(2, 5);
  322.     wprintf(L"████\n");
  323.     gotoxy(2, 6);
  324.     wprintf(L"████\n");
  325.     gotoxy(2, 7);
  326.     wprintf(L"████\n");
  327.     gotoxy(2, 8);
  328.     wprintf(L"████\n");
  329.     gotoxy(2, 9);
  330.     wprintf(L"████\n");
  331.     gotoxy(2, 10);
  332.     wprintf(L"████\n");
  333.  
  334.  
  335.  
  336.     gotoxy(30, 3);
  337.     wprintf(L"████\n");
  338.     gotoxy(30, 4);
  339.     wprintf(L"████\n");
  340.     gotoxy(30, 5);
  341.     wprintf(L"████\n");
  342.     gotoxy(30, 6);
  343.     wprintf(L"████\n");
  344.     gotoxy(30, 7);
  345.     wprintf(L"████\n");
  346.     gotoxy(30, 8);
  347.     wprintf(L"████\n");
  348.     gotoxy(30, 9);
  349.     wprintf(L"████\n");
  350.     gotoxy(30, 10);
  351.     wprintf(L"████\n");
  352.  
  353.  
  354.  
  355.     gotoxy(8, 2);
  356.     wprintf(L"████████████████████");
  357.     gotoxy(8, 3);
  358.     wprintf(L"██");
  359.     gotoxy(8, 4);
  360.     wprintf(L"██");
  361.     gotoxy(8, 5);
  362.     wprintf(L"██");
  363.     gotoxy(8, 6);
  364.     wprintf(L"██");
  365.     gotoxy(8, 7);
  366.     wprintf(L"██");
  367.     gotoxy(8, 8);
  368.     wprintf(L"██");
  369.     gotoxy(8, 9);
  370.     wprintf(L"██");
  371.     gotoxy(8, 10);
  372.     wprintf(L"██");
  373.     gotoxy(26, 3);
  374.     wprintf(L"██");
  375.     gotoxy(26, 4);
  376.     wprintf(L"██");
  377.     gotoxy(26, 5);
  378.     wprintf(L"██");
  379.     gotoxy(26, 6);
  380.     wprintf(L"██");
  381.     gotoxy(26, 7);
  382.     wprintf(L"██");
  383.     gotoxy(26, 8);
  384.     wprintf(L"██");
  385.     gotoxy(26, 9);
  386.     wprintf(L"██");
  387.     gotoxy(26, 10);
  388.     wprintf(L"██");
  389.     gotoxy(8, 11);
  390.     wprintf(L"████████████████████");
  391.  
  392. }
  393.  
  394. int main()
  395. {
  396.     ObrisiKonzoluPodesavanja();
  397.     PodesiKonzolu();
  398.     CentrirajKonzolu();
  399.     PodesiKonzolu2();
  400.     OdstampajKonzolu();
  401.  
  402.  
  403.  
  404. //    info.ColorTable[14] = RGB(30, 128, 0);SetConsoleScreenBufferInfoEx(hConsole, &info);
  405. //    Sleep(1000);
  406. //    info.ColorTable[14] = RGB(160, 128, 0);SetConsoleScreenBufferInfoEx(hConsole, &info);
  407. //    Sleep(1000);
  408. //    info.ColorTable[14] = RGB(255, 18, 0);SetConsoleScreenBufferInfoEx(hConsole, &info);
  409. //    Sleep(1000);
  410. //    info.ColorTable[14] = RGB(25, 18, 0);SetConsoleScreenBufferInfoEx(hConsole, &info);
  411. //    Sleep(1000);
  412. //    info.ColorTable[14] = RGB(100, 128, 0);SetConsoleScreenBufferInfoEx(hConsole, &info);
  413. //    Sleep(1000);
  414.  
  415.  
  416. //    int x, y;
  417. //    int i = 0, j = 0;
  418. //
  419. //
  420. //
  421. //
  422. //    while(1)
  423. //    {
  424. //        SakriKursor();
  425. //        //ObrisiEkran();
  426. //        UcitajKlik(x, y);
  427. ////        gotoxy(x,y);
  428. //        //SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 238);
  429. ////        _setmode(_fileno(stdout), _O_U8TEXT);
  430. ////        wprintf(L"█");//}
  431. //        //system("cls");
  432. //
  433. //        gotoxy(3, 4);
  434. //        printf("1");
  435. //        gotoxy(8, 10);
  436. //        printf("2");
  437. //        gotoxy(12, 3);
  438. //        printf("3");
  439. //        gotoxy(17, 6);
  440. //        printf("4");
  441. //
  442. //        gotoxy(0, 0);
  443. //        printf("             ", x, y);
  444. //        gotoxy(0, 0);
  445. //        printf("%d , %d", x, y);  //}
  446. //        gotoxy(i, 1);
  447. //
  448. //        if(x == 3 && y == 4)
  449. //            printf("a");
  450. //
  451. //        if(x == 8 && y == 10)
  452. //            printf("b");
  453. //
  454. //        if(x == 12 && y == 3)
  455. //            printf("c");
  456. //
  457. //        if(x == 17 && y == 6)
  458. //            printf("d");
  459. //
  460. //        i++;
  461. //    }
  462.  
  463. //_setmode(_fileno(stdout), _O_U16TEXT);
  464. //wprintf(L"\x265B\x265B\x265B\x265B\n");
  465. //wprintf(L"    ");
  466.  
  467. //#ifdef _WIN32
  468. //    _setmode(_fileno(stdout), 0x00020000);
  469. //#else
  470. //    setlocale(LC_CTYPE, "");
  471. //#endif
  472. //    PrintTopRow(Black);
  473. //    PrintPawns(Black);
  474. //    fputws(L"\n\n\n\n", stdout);
  475. //    PrintPawns(White);
  476. //    PrintTopRow(White);
  477.  
  478.     SakriKursor();
  479.     ObrisiKonzoluPodesavanja();
  480.     Sleep(99999999999);
  481.  
  482.     return 0;
  483. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement