Формулировка задачи на курсовую работу:
Написать программу играющую в ГЕКСАГОН. Поле состоит из 6-гранных клеток. Размер поля – по выбору. Два игрока ходят по очереди. Возможны ходы:
- Поставить новую свою шашку на любую свободную из 6 клеток, смежных со своей шашкой.
- Переставить свою шашку на любую свободную клетку, смежную с клетками, смежными с прежним положением этой шашки.
- В любом случае, если на клетках, смежных с новым положением своей шашки, есть шашки противника, они заменяются на свои.
- Игра заканчивается, когда все клетки заняты. Выигрывает тот, кто занял больше клеток.
Фрагмент программного кода:
bool Game::draw() { //получаем dc окна PAINTSTRUCT ps; HDC dc = BeginPaint(wnd, &ps); RECT r; //получаем координаты клиентской области GetClientRect(wnd, &r); //создаем dc на который будем рисовать HDC hdcMem=::CreateCompatibleDC(dc); HBITMAP hBmp=::CreateCompatibleBitmap(dc, r.right, r.bottom); SelectObject(hdcMem, hBmp); HBRUSH brush = CreateSolidBrush(RGB(240, 240, 240)); SetBkColor(hdcMem, COLOR_3DFACE); this->dc = hdcMem; //заполняем область цветом фона FillRect(hdcMem, &r, brush); //рисуем int sz = (poleSize + 1)/2; int dy = sz * 17.5; int szy = sz; //выводим поле for (int i=0; i<poleSize; i++) { for (int j=0; j<szy; j++) { setColor(i, j); //устанавливаем цвет drawGeck(i* 30, j * 35 + dy); //рисуем клетку } //поправка на столбцы if (i<poleSize/2) { szy ++ ; dy -= 17.5; } else { szy--; dy += 17.5; } }
Содержание архива
- исходный код на C# для Visual Studio
- краткое текстовое описание с фрагментами программного кода (с комментариями) (18 страниц)
klausms