p align="left">{// Скопировать параметры переданного прямоугольника и // уменьшить его размеры. // CRect rect; rect.CopyRect (pRect); rect.DeflateRect (10, 10); // // Создать красный карандаш и нарисовать им Х. // CPen pen (PS_SOLID, 10, RGB (255, 0, 0)); //нужный карандаш выбирается в контекст устройства с помощью функции CDC::SelectObject CPen* pOldPen = pDC->SelectObject (&pen); pDC->MoveTo (rect.left, rect.top); // pDC->LineTo (rect.right, rect.bottom); // pDC->MoveTo (rect.left, rect.bottom); //рисуются две пересекающиеся линии pDC->LineTo (rect.right, rect.top); // //карандаш возвращается обратно по завершении работ с ним pDC->SelectObject (pOldPen); } void CXvsOv1View::Draw0(CDC *pDC, CRect *pRect) {// Скопировать параметры переданного прямоугольника и // уменьшить его размеры. // CRect rect; rect.CopyRect (pRect); rect.DeflateRect (10, 10); // // Создать синий карандаш и нарисовать им 0. // CPen pen (PS_SOLID, 10, RGB (0, 0, 255)); CPen* pOldPen = pDC->SelectObject (&pen); pDC->SelectStockObject (NULL_BRUSH); pDC->Ellipse (rect);//рисуется эллипс //карандаш возвращается обратно по завершении работ с ним pDC->SelectObject (pOldPen); } Функция VinControl()осуществляет проверку, выстроены ли в ряд 4 крестика или нолика и выводит соответствующие сообщения при выполнении этих условий. Функция содержит 56 циклов, при выполнении каждого из которого выводится соответствующее сообщение: "Крестики выстроили ряд!" или "Нолики выстроили ряд!". Функция VinControl()выглядит следующим образом: void CXvsOv1View::VinControl() { CXvsOv1Doc* pDoc = GetDocument (); // Получаем указатель на класс document: //Проверка победы крестиков по горизонталям if ((pDoc->m_grid[0][0] == 1) && (pDoc->m_grid[1][0] == 1) && (pDoc->m_grid[2][0] == 1) && (pDoc->m_grid[3][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][0] == 1) && (pDoc->m_grid[2][0] == 1) && (pDoc->m_grid[3][0] == 1) && (pDoc->m_grid[4][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[0][1] == 1) && (pDoc->m_grid[1][1] == 1) && (pDoc->m_grid[2][1] == 1) && (pDoc->m_grid[3][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][1] == 1) && (pDoc->m_grid[2][1] == 1) && (pDoc->m_grid[3][1] == 1) && (pDoc->m_grid[4][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[0][2] == 1) && (pDoc->m_grid[1][2] == 1) && (pDoc->m_grid[2][2] == 1) && (pDoc->m_grid[3][2] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][2] == 1) && (pDoc->m_grid[2][2] == 1) && (pDoc->m_grid[3][2] == 1) && (pDoc->m_grid[4][2] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[0][3] == 1) && (pDoc->m_grid[1][3] == 1) && (pDoc->m_grid[2][3] == 1) && (pDoc->m_grid[3][3] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][3] == 1) && (pDoc->m_grid[2][3] == 1) && (pDoc->m_grid[3][3] == 1) && (pDoc->m_grid[4][3] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[0][4] == 1) && (pDoc->m_grid[1][4] == 1) && (pDoc->m_grid[2][4] == 1) && (pDoc->m_grid[3][4] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][4] == 1) && (pDoc->m_grid[2][4] == 1) && (pDoc->m_grid[3][4] == 1) && (pDoc->m_grid[4][4] == 1)) AfxMessageBox("Крестики выстроили ряд!"); //Проверка победы крестиков по вертикалям if ((pDoc->m_grid[0][4] == 1) && (pDoc->m_grid[0][3] == 1) && (pDoc->m_grid[0][2] == 1) && (pDoc->m_grid[0][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[0][3] == 1) && (pDoc->m_grid[0][2] == 1) && (pDoc->m_grid[0][1] == 1) && (pDoc->m_grid[0][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][4] == 1) && (pDoc->m_grid[1][3] == 1) && (pDoc->m_grid[1][2] == 1) && (pDoc->m_grid[1][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][3] == 1) && (pDoc->m_grid[1][2] == 1) && (pDoc->m_grid[1][1] == 1) && (pDoc->m_grid[1][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[2][4] == 1) && (pDoc->m_grid[2][3] == 1) && (pDoc->m_grid[2][2] == 1) && (pDoc->m_grid[2][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[2][3] == 1) && (pDoc->m_grid[2][2] == 1) && (pDoc->m_grid[2][1] == 1) && (pDoc->m_grid[2][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[3][4] == 1) && (pDoc->m_grid[3][3] == 1) && (pDoc->m_grid[3][2] == 1) && (pDoc->m_grid[3][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[3][3] == 1) && (pDoc->m_grid[3][2] == 1) && (pDoc->m_grid[3][1] == 1) && (pDoc->m_grid[3][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[4][4] == 1) && (pDoc->m_grid[4][3] == 1) && (pDoc->m_grid[4][2] == 1) && (pDoc->m_grid[4][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[4][3] == 1) && (pDoc->m_grid[4][2] == 1) && (pDoc->m_grid[4][1] == 1) && (pDoc->m_grid[4][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); //Проверка победы крестиков по диагоналям снизу слева - вверх вправо if ((pDoc->m_grid[0][3] == 1) && (pDoc->m_grid[1][2] == 1) && (pDoc->m_grid[2][1] == 1) && (pDoc->m_grid[3][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[0][4] == 1) && (pDoc->m_grid[1][3] == 1) && (pDoc->m_grid[2][2] == 1) && (pDoc->m_grid[3][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][3] == 1) && (pDoc->m_grid[2][2] == 1) && (pDoc->m_grid[3][1] == 1) && (pDoc->m_grid[4][0] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][4] == 1) && (pDoc->m_grid[2][3] == 1) && (pDoc->m_grid[3][2] == 1) && (pDoc->m_grid[4][1] == 1)) AfxMessageBox("Крестики выстроили ряд!"); //Проверка победы крестиков по диагоналям снизу справа - вверх влево if ((pDoc->m_grid[1][0] == 1) && (pDoc->m_grid[2][1] == 1) && (pDoc->m_grid[3][2] == 1) && (pDoc->m_grid[4][3] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[0][0] == 1) && (pDoc->m_grid[1][1] == 1) && (pDoc->m_grid[2][2] == 1) && (pDoc->m_grid[3][3] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[1][1] == 1) && (pDoc->m_grid[2][2] == 1) && (pDoc->m_grid[3][3] == 1) && (pDoc->m_grid[4][4] == 1)) AfxMessageBox("Крестики выстроили ряд!"); if ((pDoc->m_grid[0][1] == 1) && (pDoc->m_grid[1][2] == 1) && (pDoc->m_grid[2][3] == 1) && (pDoc->m_grid[3][4] == 1)) AfxMessageBox("Крестики выстроили ряд!"); //--------------------------------------------------------------------------------- //Проверка победы ноликов по горизонталям if ((pDoc->m_grid[0][0] == 2) && (pDoc->m_grid[1][0] == 2) && (pDoc->m_grid[2][0] == 2) && (pDoc->m_grid[3][0] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[1][0] == 2) && (pDoc->m_grid[2][0] == 2) && (pDoc->m_grid[3][0] == 2) && (pDoc->m_grid[4][0] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[0][1] == 2) && (pDoc->m_grid[1][1] == 2) && (pDoc->m_grid[2][1] == 2) && (pDoc->m_grid[3][1] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[1][1] == 2) && (pDoc->m_grid[2][1] == 2) && (pDoc->m_grid[3][1] == 2) && (pDoc->m_grid[4][1] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[0][2] == 2) && (pDoc->m_grid[1][2] == 2) && (pDoc->m_grid[2][2] == 2) && (pDoc->m_grid[3][2] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[1][2] == 2) && (pDoc->m_grid[2][2] == 2) && (pDoc->m_grid[3][2] == 2) && (pDoc->m_grid[4][2] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[0][3] == 2) && (pDoc->m_grid[1][3] == 2) && (pDoc->m_grid[2][3] == 2) && (pDoc->m_grid[3][3] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[1][3] == 2) && (pDoc->m_grid[2][3] == 2) && (pDoc->m_grid[3][3] == 2) && (pDoc->m_grid[4][3] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[0][4] == 2) && (pDoc->m_grid[1][4] == 2) && (pDoc->m_grid[2][4] == 2) && (pDoc->m_grid[3][4] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[1][4] == 2) && (pDoc->m_grid[2][4] == 2) && (pDoc->m_grid[3][4] == 2) && (pDoc->m_grid[4][4] == 2)) AfxMessageBox("Нолики выстроили ряд!"); //Проверка победы крестиков по вертикалям if ((pDoc->m_grid[0][4] == 2) && (pDoc->m_grid[0][3] == 2) && (pDoc->m_grid[0][2] == 2) && (pDoc->m_grid[0][1] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[0][3] == 2) && (pDoc->m_grid[0][2] == 2) && (pDoc->m_grid[0][1] == 2) && (pDoc->m_grid[0][0] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[1][4] == 2) && (pDoc->m_grid[1][3] == 2) && (pDoc->m_grid[1][2] == 2) && (pDoc->m_grid[1][1] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[1][3] == 2) && (pDoc->m_grid[1][2] == 2) && (pDoc->m_grid[1][1] == 2) && (pDoc->m_grid[1][0] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[2][4] == 2) && (pDoc->m_grid[2][3] == 2) && (pDoc->m_grid[2][2] == 2) && (pDoc->m_grid[2][1] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[2][3] == 2) && (pDoc->m_grid[2][2] == 2) && (pDoc->m_grid[2][1] == 2) && (pDoc->m_grid[2][0] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[3][4] == 2) && (pDoc->m_grid[3][3] == 2) && (pDoc->m_grid[3][2] == 2) && (pDoc->m_grid[3][1] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[3][3] == 2) && (pDoc->m_grid[3][2] == 2) && (pDoc->m_grid[3][1] == 2) && (pDoc->m_grid[3][0] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[4][4] == 2) && (pDoc->m_grid[4][3] == 2) && (pDoc->m_grid[4][2] == 2) && (pDoc->m_grid[4][1] == 2)) AfxMessageBox("Нолики выстроили ряд!"); if ((pDoc->m_grid[4][3] == 2) && (pDoc->m_grid[4][2] == 2) && (pDoc->m_grid[4][1] == 2) && (pDoc->m_grid[4][0] == 2))
Страницы: 1, 2, 3
|