«Дурак» - игра честных людей, игра неподвластная жуликам.
Обратившись почти к любой другой карточной игре, мы увидим, насколько силен бывает элемент случайности и какой большой простор оставляет это для всякого рода махинаций. Неограниченные возможности в этой области породили профессию карточного шулера – старую, как сами карты.
И, напротив, освоив игру в "дурака" (имеющую, кстати, очень простые правила), любой человек сразу убедится, что шулерство здесь совершенно невозможно – все карты в процессе игры вскрываются, будучи легко доступными для проверки. Очень затруднительно незаметно подложить или сбросить лишнюю карту, т.к. общее количество их - четное, и для проведения подобной операции в тайне необходимо сбрасывать (или подкладывать) карты парами.
Даже знаменитый шулерский прием – выставление крапа на рубашке (оборотной стороне) карт – не имеет серьезных последствий, поскольку человек со средними способностями в состоянии держать в памяти более 2/3 карт из колоды, в числе которых самые важные.
«Дурак» - игра интеллектуалов.
Это одна из немногих карточных игр, в которой есть возможность выработки четкого плана действий. По богатству различных комбинаций, «дурак» оставляет далеко позади шашки, и отчасти сопоставим с шахматами.
«Дурак» - игра ума, а не случая.
Выше уже говорилось о том, сколь малое значение при игре в «дурака» имеет случай. Даже вооруженный всеми козырями дилетант может не устоять против профессионала, сила которого - в знании. Конечно, 1-2 раза фортуна в состоянии помочь «чайникам». Но ничто не спасет того, кто, не освоив всех тонкостей игры, вздумает сесть за стол с сильным противником на 10 партий и более.
«Дурак» - игра с большим будущим.
Вспомним другие карточные игры - что принципиально нового в конструкцию игры, в расширение ее потенциальных возможностей могут они предложить? Их ресурсы давно на исходе, тогда как в нашем случае достаточно взять преферансную колоду и количество карт увеличится на 55 с
1. АНАЛИЗ ЗАДАЧИ
1.1. Характеристика требований на разработку
Разработка программы «Карточная игра Дурак», создание справочной системы приложения, обеспечение организации интерфейса приложения средствами создания меню, кнопочных форм, панелей инструментов. Данный программный продукт должен работать под управлением операционной системы Windows Vista/7/8/10. Программный продукт должен поставляться на дисках (CD-R) емкостью 700 Мбайт с соответствующими обозначениями и документацией.
1.2. Выбор и обоснование среды разработки
При выборе среды реализации сравнивают программные продукты и пользуются различными средствами разработки приложений. Использование возможностей средств разработки приложений позволяет автоматизировать процесс разработки. Инструментальные средства позволяют:
-создавать интерфейс, используя стандартные компоненты;
-передавать управление процессам, в зависимости от состояния системы;
-создавать оболочки для баз данных, как и сами базы данных;
-разрабатывать более надежные программы путем обработки исключительных ситуаций возникающих при некорректной работе программы.
Современные средства разработки характеризуются параметрами:
-поддержка объектно-ориентированного стиля программирования;
-возможность использования CASE-технологий, как для проектирования разрабатываемой системы, так и для разработки моделей реляционных баз данных;
-использование визуальных компонент для наглядного проектирования интерфейса;
-поддержка БД.
Выше перечисленными свойствами обладают языки программирования:
-Visual Fox Pro;
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 <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "game.h"
//-----------------------------------------------------------------------------------------
#define MIN_SIZEX 600
#define MIN_SIZEY 500
//-----------------------------------------------------------------------------------------
HINSTANCE g_hinstance;
HWND g_hwnd;
HBITMAP *g_hBitmaps;
HBITMAP g_hBack;
int g_bmWidth, g_bmHeight;
TGame *g_game = NULL;
bool g_show_card = false;
//-----------------------------------------------------------------------------------------
int GetCard(tagCard *cads)
{
int img;
if (cads->suit == 0)img = -1;
if (cads->suit == 1)img = cads->value - 1;
if (cads->suit == 2)img = cads->value + 12;
if (cads->suit == 3)img = cads->value + 25;
if (cads->suit == 4)img = cads->value + 38;
return img;
}
//-----------------------------------------------------------------------------------------
void DrawBitmap(HBITMAP hBitmap, HDC hdc, int x, int y)
{
BITMAP bm;
GetObject(hBitmap, sizeof(BITMAP), &bm);
HDC memHdc = CreateCompatibleDC(hdc);
SelectBitmap(memHdc, hBitmap);
BitBlt(hdc, x, y, bm.bmWidth, bm.bmHeight, memHdc, 0, 0, SRCCOPY);
DeleteDC(memHdc);
}
В процессе выполнения курсового проекта был разработан программный продукт, имеющий название «Карточная игра Дурак», и имеющий широкую специализацию в применении. Разработан интерфейс программы, алгоритм и программа согласно анализу технического задания. Кроме этого создана документация к разработанному программному продукту «Карточная игра Дурак».
Получившаяся программа является приложением начального уровня и обладает возможностью дальнейшего усовершенствования.
В процессе разработки программы «Карточная игра Дурак» расширены навыки самостоятельной деятельности.
Программный продукт, разрабатывался для простых и сложных игровых последовательностей. Программа была протестирована на наличие ошибок, а также на совместимость с операционной системой Windows XP. И на основании его испытания был сделан вывод о том, что программа полностью отвечает техническим требованиям, которые имеются на сегодняшний день.
Задачи поставлены перед программистом были выполнены, и программный продукт может применяться пользователями на персональных компьютерах для игры.
Программа написана на языке программирования Microsoft Visual C++, которая позволяет программисту свободно ориентироваться в программе, использовать ресурсы программы на сто процентов, и делать программы доступными как для начинающего пользователя, так и для профессионалов.
1. «Винт». Сост М. Шевляковский, Новосибирск, 1991
2. «Коммерческие карточные игры». Сост. М. Шевляковский, Новосибирск, 1991.
3. «Коммерческие карточные игры». — СПб.: «ИнКА»; «ЭКИП», 1992. — С. 192. — ISBN 5879960013.
4. Лесной Д. С. «Игорный дом». Энциклопедия, Вильнюс, М.,1994.
5. Мальшинский А. П. Московские игроки. 1795—1805 гг. // Исторический вестник, 1891. — Т. 45. — № 7. — С. 108—124.
6. Розалиев, Н.Ю. «Карточные игры для дома и казино». — М.: Гранд, 1998-1999. — С. 384. — ISBN 5818300145.
7. Энциклопедический словарь Брокгауза и Ефрона, том 28, стр. 631, изд 1890 г. или репринтное 1991.
8. Люблинский П. И. «Азартная игра» // Большая советская энциклопедия, 1 издание, — М.: Советская энциклопедия, 1926, Т. 1, С. 635—638
9. Малыгин В. Л., Хвостиков Г. С., Малыгин Я. В. Особенности характерологических свойств патологических азартных игроков и психопатологические феномены, сопровождающие азартную игру // Прикладные информационные аспекты медицины. — Воронежская государственная медицинская академия им. Н. Н. Бурденко, 2007. — Вып. 10. — С. 135-141. — ISSN 2070-9277.
10. Олег Тарасов «Азартные игры в Советском Союзе» (23.07.2010)
11. История азартных игр в России на casinojack.ru
12. Гай Кальверт. Азартные игры в Америке. InLiberty.ru.
13. Американцы позитивно относятся к азартным играм. ratingbet.com. Проверено 13 июня 2016.
14. И. И. Срезневский. Материалы для словаря древнерусского языка по письменным памятникам. Санкт-Петербург, 1890—1912.
15. И. И. Срезневский. Материалы для словаря древнерусского языка по письменным памятникам. Санкт-Петербург, 1890—1912. Том II. Л — П 1902 год. колонка 71.
16. Бенешевич В. Н. Древлеславянская Кормчая. том 1, Издание 1906 год стр. 178
17. Кормчая 1650 года. стр. 523