diff --git a/Lab16/Lab16.sln b/Lab16/Lab16.sln deleted file mode 100644 index 0edfdc7..0000000 --- a/Lab16/Lab16.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.11.35312.102 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lab16", "Lab16\Lab16.vcxproj", "{D6201B12-C5E8-44BC-94E7-03A7CFC72925}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D6201B12-C5E8-44BC-94E7-03A7CFC72925}.Debug|x64.ActiveCfg = Debug|x64 - {D6201B12-C5E8-44BC-94E7-03A7CFC72925}.Debug|x64.Build.0 = Debug|x64 - {D6201B12-C5E8-44BC-94E7-03A7CFC72925}.Debug|x86.ActiveCfg = Debug|Win32 - {D6201B12-C5E8-44BC-94E7-03A7CFC72925}.Debug|x86.Build.0 = Debug|Win32 - {D6201B12-C5E8-44BC-94E7-03A7CFC72925}.Release|x64.ActiveCfg = Release|x64 - {D6201B12-C5E8-44BC-94E7-03A7CFC72925}.Release|x64.Build.0 = Release|x64 - {D6201B12-C5E8-44BC-94E7-03A7CFC72925}.Release|x86.ActiveCfg = Release|Win32 - {D6201B12-C5E8-44BC-94E7-03A7CFC72925}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B76A9DBD-9880-4452-83D7-F17A7A99AD82} - EndGlobalSection -EndGlobal diff --git a/Lab16/Lab16/Lab16.cpp b/Lab16/Lab16/Lab16.cpp deleted file mode 100644 index 350e52b..0000000 --- a/Lab16/Lab16/Lab16.cpp +++ /dev/null @@ -1,528 +0,0 @@ -// Lab16.cpp : Определяет точку входа для приложения. -// -#include -#include - -#include "framework.h" -#include "Lab16.h" -#define _CRIT_SECURE_NO_WARNINGS - -#define N 10 -#define M 15 - -#define WIDTH 30 -#define HEIGHT 20 - -int steps = 0; -int gold = 0; - -void Save(); -void Load(); - - - - - - - - -#define MAX_LOADSTRING 100 - -// Глобальные переменные: -HINSTANCE hInst; // текущий экземпляр -WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка -WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна - -// Отправить объявления функций, включенных в этот модуль кода: -ATOM MyRegisterClass(HINSTANCE hInstance); -BOOL InitInstance(HINSTANCE, int); -LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); -INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); - -int APIENTRY wWinMain(_In_ HINSTANCE hInstance, - _In_opt_ HINSTANCE hPrevInstance, - _In_ LPWSTR lpCmdLine, - _In_ int nCmdShow) -{ - UNREFERENCED_PARAMETER(hPrevInstance); - UNREFERENCED_PARAMETER(lpCmdLine); - - // TODO: Разместите код здесь. - - // Инициализация глобальных строк - LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); - LoadStringW(hInstance, IDC_LAB16, szWindowClass, MAX_LOADSTRING); - MyRegisterClass(hInstance); - - // Выполнить инициализацию приложения: - if (!InitInstance (hInstance, nCmdShow)) - { - return FALSE; - } - - HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_LAB16)); - - MSG msg; - - // Цикл основного сообщения: - while (GetMessage(&msg, nullptr, 0, 0)) - { - if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - - return (int) msg.wParam; -} - - - -// -// ФУНКЦИЯ: MyRegisterClass() -// -// ЦЕЛЬ: Регистрирует класс окна. -// -ATOM MyRegisterClass(HINSTANCE hInstance) -{ - WNDCLASSEXW wcex; - - wcex.cbSize = sizeof(WNDCLASSEX); - - wcex.style = CS_HREDRAW | CS_VREDRAW; - wcex.lpfnWndProc = WndProc; - wcex.cbClsExtra = 0; - wcex.cbWndExtra = 0; - wcex.hInstance = hInstance; - wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_LAB16)); - wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_LAB16); - wcex.lpszClassName = szWindowClass; - wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); - - return RegisterClassExW(&wcex); -} - -// -// ФУНКЦИЯ: InitInstance(HINSTANCE, int) -// -// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно -// -// КОММЕНТАРИИ: -// -// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также -// создается и выводится главное окно программы. -// -BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) -{ - hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной - - HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); - - if (!hWnd) - { - return FALSE; - } - - ShowWindow(hWnd, nCmdShow); - UpdateWindow(hWnd); - - return TRUE; -} - -// -// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) -// -// ЦЕЛЬ: Обрабатывает сообщения в главном окне. -// -// WM_COMMAND - обработать меню приложения -// WM_PAINT - Отрисовка главного окна -// WM_DESTROY - отправить сообщение о выходе и вернуться -// -// - -// Коды ячеек: -// 0 - свободна -// 1 - игрок -// 2 - препятствие -// 3 - золото -int map[N][M] = { - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, - {0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 3, 3, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 3, 0, 0, 0}, - - {0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 0, 0, 2, 0}, - {0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0}, - {0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -}; - -void drawMap(HDC hdc) { - // кисть для пустого поля - HBRUSH hBrushEmptyCell = CreateSolidBrush(RGB(200, 200, 200)); // серый - // кисть для поля с золотом - HBRUSH hBrushGold = CreateSolidBrush(RGB(255, 255, 0)); // желтый - // кисть для стены - HBRUSH hBrushWall = CreateSolidBrush(RGB(0, 0, 0)); // черный - // кисть для игрока - HBRUSH hBrushMan = CreateSolidBrush(RGB(0, 0, 255)); // синий - - // Коды ячеек: - // 0 - свободна - // 1 - игрок - // 2 - препятствие - // 3 - золото - HBRUSH brush[4] = { hBrushEmptyCell, hBrushMan, hBrushWall, hBrushGold }; - int i, j; - - for (i = 0; i < N; i++) { - for (j = 0; j < M; j++) { - - int x1 = j * WIDTH; - int x2 = (j + 1) * WIDTH; - int y1 = i * HEIGHT; - int y2 = (i + 1) * HEIGHT; - - RECT r = { x1, y1, x2, y2 }; - FillRect(hdc, &r, brush[map[i][j]]); - } - } - - - // Все кисти удаляем!!! - for (i = 0; i < 4; i++) - DeleteObject(brush[i]); -} - -void Left() { - int i, j; - - for (i = 0; i < N; i++) { - for (j = 1; j < M; j++) { - if (map[i][j] == 1) { // если в map[i][j] игрок - if (map[i][j - 1] == 0) { // если слева от игрока - пустая клетка - map[i][j - 1] = 1; - map[i][j] = 0; - steps++; - } - else if (map[i][j - 1] == 3) {// если слева от игрока - золото - map[i][j - 1] = 1; - map[i][j] = 0; - steps++; - gold++; - } - } - } - } -} -void Right() { - int i, j; - - for (i = 0; i < N; i++) { - - for (j = M - 2; j >= 0; j--) { - - if (map[i][j] == 1) { // если в map[i][j] игрок - if (map[i][j + 1] == 0) { - map[i][j + 1] = 1; - map[i][j] = 0; - steps++; - } - else if (map[i][j + 1] == 3) { - map[i][j + 1] = 1; - map[i][j] = 0; - steps++; - gold++; - } - } - } - } -} -void Up() { - int i, j; - - for (i = 1; i < N; i++) { - - for (j = 0; j < M; j++) { - - if (map[i][j] == 1) { // если в map[i][j] игрок - if (map[i - 1][j] == 0) { - map[i - 1][j] = 1; - map[i][j] = 0; - steps++; - } - else if (map[i - 1][j] == 3) { - map[i - 1][j] = 1; - map[i][j] = 0; - steps++; - gold++; - } - } - } - } -} -void Down() { - int i, j; - - for (i = N - 2; i >= 0; i--) { - for (j = 0; j < M; j++) { - if (map[i][j] == 1) { // если в map[i][j] игрок - if (i + 1 < N && (map[i + 1][j] == 0 || map[i + 1][j] == 3)) { // если ниже игрока - пустая клетка или золото - map[i + 1][j] = 1; - map[i][j] = 0; - steps++; - if (map[i + 1][j] == 3) { - gold++; - } - } - } - } - } -} - -void Save() { - - - FILE* fout; - errno_t err = fopen_s(&fout, "D:\\Temp\\game.txt", "wt"); - if (fout == NULL) { - printf("Выходной файл не создался"); - return; - } - - - fprintf(fout, "&d ", N); - fprintf(fout, "&d\n", M); - int i, j; - - for (i = 0; i < N; i++) { - for (j = 0; j < M; j++) { - fprintf(fout, "%d ", map[i][j]); - } - fprintf(fout, "\n"); - } - fprintf(fout, "&d ", steps); - fprintf(fout, "&d", gold); - - fclose(fout); -} -void Load() { - - - FILE* fin; - errno_t err = fopen_s(&fin, "D:\\Temp\\game.txt", "rt"); - if (fin == NULL) { - printf("Выходной файл не создался"); - return; - } - - int n, m; - fscanf_s(fin,"&d ", &n); - fscanf_s(fin,"&d\n", &m); - int i, j; - - for (i = 0; i < N; i++) { - for (j = 0; j < M; j++) { - fscanf_s(fin, "%d ", &map[i][j]); - } - fprintf(fin, "\n"); - } - fscanf_s(fin, "&d ", &steps); - fscanf_s(fin, "&d\n", &gold); - fclose(fin); -} - -void createWall() { - int i, j; - - for (i = 0; i < N; i++) { - for (j = 1; j < M; j++) { - if (map[i][j] == 1) { // если в map[i][j] игрок - if (map[i][j - 1] == 0) { // если слева от игрока - пустая клетка - map[i][j - 1] = 2; - } - } - } - } -} - -void createGold() { - int i, j; - - for (i = 0; i < N; i++) { - for (j = 1; j < M; j++) { - if (map[i][j] == 1) { // если в map[i][j] игрок - if (map[i][j + 1] == 0) { // если слева от игрока - пустая клетка - map[i][j + 1] = 3; - } - } - } - } -} -void createWallUp() { - int i, j; - - for (i = 1; i < N; i++) { - - for (j = 0; j < M; j++) { - - if (map[i][j] == 1) { // если в map[i][j] игрок - if (map[i - 1][j] == 0) { - map[i - 1][j] = 2; - - } - } - } - } -} -void createGoldDown() { - int i, j; - - for (i = 0; i < N; i++) { - for (j = 1; j < M; j++) { - if (map[i][j] == 1) { // если в map[i][j] игрок - if (map[i+1][j ] == 0) { // если слева от игрока - пустая клетка - map[i+1][j] = 3; - } - } - } - } -} -void destroy() { - - int i, j; - - for (i = 0; i < N; i++) { - - for (j = M - 2; j >= 0; j--) { - - if (map[i][j] == 1) { // если в map[i][j] игрок - for (int k = 0; k < M; k++) { - if (map[i][k] == 2) { - map[i][k] = 0; - } - } - } - } - } -} - - - - - - - -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch (message) - { - case WM_COMMAND: - { - int wmId = LOWORD(wParam); - // Разобрать выбор в меню: - switch (wmId) - { - case IDM_ABOUT: - DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); - break; - case IDM_EXIT: - DestroyWindow(hWnd); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - } - break; - case WM_PAINT: - { - PAINTSTRUCT ps; - HDC hdc = BeginPaint(hWnd, &ps); - // TODO: Добавьте сюда любой код прорисовки, использующий HDC... - - drawMap(hdc); - - EndPaint(hWnd, &ps); - } - break; - - case WM_KEYDOWN: - switch (wParam) - { - case 0x5A: - destroy(); - InvalidateRect(hWnd, NULL, TRUE); - break; - case 0x44: - createGoldDown(); - InvalidateRect(hWnd, NULL, TRUE); - break; - case 0x55: - createWallUp(); - InvalidateRect(hWnd, NULL, TRUE); - break; - case 0x52: - createGold(); - InvalidateRect(hWnd, NULL, TRUE); - break; - case VK_DOWN: - Down(); - InvalidateRect(hWnd, NULL, TRUE); - break; - case VK_LEFT: - Left(); - InvalidateRect(hWnd, NULL, TRUE); - break; - case VK_UP: - Up(); - InvalidateRect(hWnd, NULL, TRUE); - break; - case VK_RIGHT: - Right(); - InvalidateRect(hWnd, NULL, TRUE); - break; - case 0x53: - Save(); - break; - case 0x4c: - createWall(); - /*Load();*/ - InvalidateRect(hWnd, NULL, TRUE); - break; - } - break; - - case WM_DESTROY: - PostQuitMessage(0); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - return 0; -} - -// Обработчик сообщений для окна "О программе". -INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - UNREFERENCED_PARAMETER(lParam); - switch (message) - { - case WM_INITDIALOG: - return (INT_PTR)TRUE; - - case WM_COMMAND: - if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) - { - EndDialog(hDlg, LOWORD(wParam)); - return (INT_PTR)TRUE; - } - break; - } - return (INT_PTR)FALSE; -} diff --git a/Lab16/Lab16/Lab16.h b/Lab16/Lab16/Lab16.h deleted file mode 100644 index ca26010..0000000 --- a/Lab16/Lab16/Lab16.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include "resource.h" -void drawMap(HDC hdc); -void Right(); -void Left(); -void Up(); -void Down(); -void Save(); -void Left(); \ No newline at end of file diff --git a/Lab16/Lab16/Lab16.ico b/Lab16/Lab16/Lab16.ico deleted file mode 100644 index b3ec03b..0000000 Binary files a/Lab16/Lab16/Lab16.ico and /dev/null differ diff --git a/Lab16/Lab16/Lab16.rc b/Lab16/Lab16/Lab16.rc deleted file mode 100644 index e119fc4..0000000 Binary files a/Lab16/Lab16/Lab16.rc and /dev/null differ diff --git a/Lab16/Lab16/Lab16.vcxproj b/Lab16/Lab16/Lab16.vcxproj deleted file mode 100644 index 069ffd9..0000000 --- a/Lab16/Lab16/Lab16.vcxproj +++ /dev/null @@ -1,148 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 17.0 - Win32Proj - {d6201b12-c5e8-44bc-94e7-03a7cfc72925} - Lab16 - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - Level3 - true - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - - - Windows - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - - - Windows - true - true - true - - - - - Level3 - true - _DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - - - Windows - true - - - - - Level3 - true - true - true - NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - - - Windows - true - true - true - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Lab16/Lab16/Lab16.vcxproj.filters b/Lab16/Lab16/Lab16.vcxproj.filters deleted file mode 100644 index ab062b3..0000000 --- a/Lab16/Lab16/Lab16.vcxproj.filters +++ /dev/null @@ -1,49 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Файлы заголовков - - - Файлы заголовков - - - Файлы заголовков - - - Файлы заголовков - - - - - Исходные файлы - - - - - Файлы ресурсов - - - - - Файлы ресурсов - - - Файлы ресурсов - - - \ No newline at end of file diff --git a/Lab16/Lab16/Resource.h b/Lab16/Lab16/Resource.h deleted file mode 100644 index d6df156..0000000 --- a/Lab16/Lab16/Resource.h +++ /dev/null @@ -1,30 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Включаемый файл, созданный в Microsoft Visual C++. -// Используется Lab16.rc - -#define IDS_APP_TITLE 103 - -#define IDR_MAINFRAME 128 -#define IDD_LAB16_DIALOG 102 -#define IDD_ABOUTBOX 103 -#define IDM_ABOUT 104 -#define IDM_EXIT 105 -#define IDI_LAB16 107 -#define IDI_SMALL 108 -#define IDC_LAB16 109 -#define IDC_MYICON 2 -#ifndef IDC_STATIC -#define IDC_STATIC -1 -#endif -// Следующие стандартные значения для новых объектов -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS - -#define _APS_NO_MFC 130 -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git a/Lab16/Lab16/framework.h b/Lab16/Lab16/framework.h deleted file mode 100644 index a8f6dc8..0000000 --- a/Lab16/Lab16/framework.h +++ /dev/null @@ -1,15 +0,0 @@ -// header.h: включаемый файл для стандартных системных включаемых файлов -// или включаемые файлы для конкретного проекта -// - -#pragma once - -#include "targetver.h" -#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows -// Файлы заголовков Windows -#include -// Файлы заголовков среды выполнения C -#include -#include -#include -#include diff --git a/Lab16/Lab16/main.txt b/Lab16/Lab16/main.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Lab16/Lab16/main1.txt b/Lab16/Lab16/main1.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Lab16/Lab16/small.ico b/Lab16/Lab16/small.ico deleted file mode 100644 index b3ec03b..0000000 Binary files a/Lab16/Lab16/small.ico and /dev/null differ diff --git a/Lab16/Lab16/targetver.h b/Lab16/Lab16/targetver.h deleted file mode 100644 index d90003d..0000000 --- a/Lab16/Lab16/targetver.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. -// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и -// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. -#include