Шашки увлекательная игра, созданная народом.
Шашки — игра столь же древняя, что и шахматы. Но, в отличие от шахмат, шашечные системы развивались внутри национальных традиций. Существуют английские, немецкие, итальянские, испанские, русские, канадские шашки. А в Китае и в Японии распространена похожая на шашки игра в го. Шашки знакомы и любимы многими. Эта настольная игра немного напоминает шахматы, но в её «упрощённом» виде. Для шашек используется многоклеточная доска (по виду шахматной), а также шашки, которые не отличаются друг от друга по внешнему виду и имеют различный цвет для двух игроков.
Шашечное творчество содержит элементы науки. В шашках применяются научные методы исследования. Прежде всего – анализ. Он пронизывает шашки снизу доверху. Без кропотливого, всестороннего анализа нельзя серьёзно говорить о творчестве, но исчерпывающий анализ очень труден и не всегда возможен. Нередко возникают такие позиции, которые вообще плохо поддаются анализу. Тут приходит на помощь оценка позиций. Научиться правильно оценивать позиции нелегко. Здесь нужны, и богатая практика, и знания, и интуиция.
Трудность понимания процесса шашечного мышления заключаются в том, что в шашках выступает единственное по своей специфике сочетания элементов игры, искусства, научного познания. Каждый из этих элементов разнороден и требует своего аналитического подхода, а стало быть – и педагогического наблюдения и исследования. Предметный и объективный характер мышления – специфика творчества шашиста. А сила воображения, способность установления единства мыслительного процесса, анализ и синтез частей объекта – всё это обогащает личность ученика, его разум и стремление к трудовой деятельности. Шашки безжалостны к ошибкам человека, также как математика. Неправильно решенная задача, снижает оценку.
Для рассеянного и невнимательного ученика, способность к длительной и неослабевающей концентрации внимания развивающая за шашечной доской – драгоценное приобретение. Многие случаи резкого уменьшения рассеянности у детей совпадают с началом их серьезного увлечения
1. АНАЛИЗ ЗАДАЧИ
1.1. Характеристика требований на разработку
Разработка программы «Шашки», создание справочной системы приложения, обеспечение организации интерфейса приложения средствами создания меню, кнопочных форм, панелей инструментов. Данный программный продукт должен работать под управлением операционной системы Windows Vista/7/8/10. Программный продукт должен поставляться на дисках (CD-R) емкостью 700 Мбайт с соответствующими обозначениями и документацией.
1.2. Анализ предметной области
Алгоритм решения задачи представлен графически в виде блок-схемы на рисунке 1.
Рисунок 1 – Блок-схема программы «Игра в шашки»
Ходят шашки только по диагонали на одно поле вперед.
Выбить шашку противника можно только перескочив ее. Для этого шашка должна находиться рядом с шашкой противника, а позади нее должно быть свободное поле. Причем выбивать можно не только ходом вперед, но и назад. Если после ударного хода, есть возможность выбить этой же шашкой другую враждебную шашку, то игрок делает еще один ударный ход, не передавая права хода сопернику. То есть за раз можно выбить одну-две-три и более шашек.
2. ПРОЕКТИРОВАНИЕ ЗАДАЧИ
В ходе проектирования архитектором или опытным программистом создается проектная документация, включающая текстовые описания, диаграммы, модели будущей программы. В этом деле используется язык UML.
UML — является графическим языком для визуализации, описания параметров, конструирования и документирования различных систем (программ в частности). Диаграммы создаются с помощью специальных CASE средств, например, Rational Rose (http://www-01.ibm.com/software/rational/) и Enterprise Architect (http://www.sparxsystems.com.au/). На основе технологии UML строится единая информационная модель. Приведенные выше CASE средства способны генерировать код на различных объектно-ориентированных языках, а также обладают очень полезной функцией реверсивного инжиниринга.
Рассмотрим типы диаграмм для визуализации модели (это must have, хотя типов гораздо больше):
1. Диаграмма вариантов использования (use case diagram).
2. Диаграмма классов (class diagram).
3. Диаграмма деятельности (activity diagram).
4. Диаграмма последовательности (sequence diagram).
5. Диаграмма компонентов (component diagram).
Диаграмма вариантов использования (use case diagram).
Проектируемая система представляется в виде множества сущностей или актеров, взаимодействующих с системой с помощью, так называемых прецедентов. При этом актером (actor) или действующим лицом называется любая сущность, взаимодействующая с системой извне. Другими словами, каждый вариант использования определяет некоторый набор действий, совершаемый системой при диалоге с актером. При этом ничего не говорится о том, каким образом будет реализовано взаимодействие актеров с системой. Диаграмма вариантов использования представлена на рисунке П.1.
Диаграмма классов (class diagram).
Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного
3. РЕАЛИЗАЦИЯ
В данном разделе представлен листинг приложения.
#include "window.h"
#include "util.h"
#include "resource.h"
#ifdef __BORLANDC__
#pragma resource "resource.res"
#endif
#define CHK_NEXT 1
#define CHK_GAME_OVER 2
static void draw_field(void);
static void coord_to_index(int px, int py, int* row, int* col);
static int index_is_valid(int row, int col);
static void call_game_victory(int kto);
static void change_size(int lvl);
static void start_game(HWND hwnd);
static HWND g_hwnd = NULL;
static HWND g_mwnd = NULL;
static HPEN g_spen = NULL;
static int g_size = 0;
static int g_cell = 0;
static int g_next = 0;
static int g_imsg = 0;
static int g_index = -1;
static bitmap_t g_canvas;
static bitmap_t g_tiles;
static checkers_t g_user;
static checkers_t g_cpu;
static int g_hov_user;
static int g_sel_user;
polyline_t g_poly;
void OnCreate(void){
HINSTANCE inst = (HINSTANCE)GetModuleHandle(NULL);
srand((unsigned int)time(NULL));
bitmap_create(g_hwnd, g_size, g_size, &g_canvas);
bitmap_resource(g_hwnd, inst, IDB_BITMAP1, &g_tiles);
SetStretchBltMode(g_canvas.hdc, HALFTONE);
g_spen = CreatePen(PS_SOLID, 2, RGB(0, 0x77, 0xFF));
g_mwnd = g_createMsgDlg(inst, 210, 80);
polyline_init(&g_poly, RGB(0xFF, 0x22, 0x11));
}
//--------------------------------------------------------------------------
void OnInitialize(HWND hwnd){
start_game(hwnd);
}
//---------------------------------------------------------------------------
//команды меню
void OnCommand(WPARAM wParam){
После запуска программного продукта откроется главное окно программы (рис. 3.1).
Рисунок 3.1 – Главное окно программы
В меню программы «Игра», есть пункт «Новая игра», которая позволяет начать новую игру и выбрать кто первым будет ходить «компьютер» или «человек» (рис. 3.2).
Рисунок 3.2 – Выбор первого хода
В процессе выполнения курсового проекта был разработан программный продукт, имеющий название «Игра в шашки», и имеющий широкую специализацию в применении. Разработан интерфейс программы, алгоритм и программа согласно анализу технического задания. Кроме этого создана документация к разработанному программному продукту «Игра в шашки».
Получившаяся программа является приложением начального уровня и обладает возможностью дальнейшего усовершенствования. Например, можно создать горизонтальное расположение доски, разработать различные формы кнопок и другие задумки программиста.
В процессе разработки программы «Игра в шашки» расширены навыки самостоятельной деятельности.
Программный продукт, разрабатывался для простых и сложных игровых последовательностей. Программа была протестирована на наличие ошибок, а также на совместимость с операционной системой Windows XP. И на основании его испытания был сделан вывод о том, что программа полностью отвечает техническим требованиям, которые имеются на сегодняшний день.
Задачи поставлены перед программистом были выполнены, и программный продукт может применяться пользователями на персональных компьютерах для игры.
Программа написана на языке программирования Borland C++ Builder, которая позволяет программисту свободно ориентироваться в программе, использовать ресурсы программы на сто процентов, и делать программы доступными как для начинающего пользователя, так и для профессионалов.
1. Маньшин С.С., Громов Г.В. Программа подготовки юных шашистов. 1 часть. Русские шашки. – СПб., 1992.
2. Султанов Р.А. Шашки (Интегрированный курс подготовки шашистов для групп начальной подготовки, учебно-тренировочных групп, групп спортивного совершенствования, групп высшего спортивного мастерства). – Нижний Тагил, 2009. – 46 с.
3. Примерные требования к программам дополнительного образования детей (Приложение к письму Департамента молодежной политики, воспитания и социальной защиты детей Минобрнауки России от 11.12.2006 г. № 06-1844)
4. Адамович В.К. Позиционные приемы борьбы в русских шашках. М., “Физкультура и спорт”, 1976.
5. Литвинович В.С., Перченок И.Р. Школа позиционной игры. Русские шашки. – М.: Физкультура и спорт, 1984. – 190 с.
6. Берлинков Б.Л., Рокитницкий А.В. Шашечные партии белорусских мастеров. –Минск.: Полымя, 1983. – 272 с.
7. Пак Н.М. Популярный шашечный практикум. – Донецк: АСТ, 2004.
8. Маламед В.Р., Барский Ю.П. Курс шашечных окончаний; Международные и русские шашки: Энциклопедическое изд.- М.: Физкультура и спорт, 1989. – 464 с.
9. Герцензон. Б.М. Напреенков А.А. Шашки - это интересно. Учебник шашечной игры. – СПб.: Литература, 1989. – 256 с.
10. Громов Г.В., Свечников А. А.. На старт, новички! - СПб., 2003.
11. Юровский Е.М, Кондратьева Л.П.. Зайкины шашки. – СПб., 2001
12. Блиндер. Б.М. Избранные партии, окончания, этюды. – М., 1960.
13. Куличихин А.И. История развития русских шашек. – М.: ФиС, 1982. 1989, вып. 5. – с. 1-7.11
14. Цирик З.И. Шашечный эндшпиль. Учебник по шашечным окончаниям. – Черкассы, 2010. – 183 с.