diff --git a/Backgammon.sln b/Backgammon.sln new file mode 100644 index 0000000..9ae6057 --- /dev/null +++ b/Backgammon.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Backgammon", "Backgammon\Backgammon.vcxproj", "{4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}" +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 + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}.Debug|x64.ActiveCfg = Debug|x64 + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}.Debug|x64.Build.0 = Debug|x64 + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}.Debug|x86.ActiveCfg = Debug|Win32 + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}.Debug|x86.Build.0 = Debug|Win32 + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}.Release|x64.ActiveCfg = Release|x64 + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}.Release|x64.Build.0 = Release|x64 + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}.Release|x86.ActiveCfg = Release|Win32 + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Backgammon/Backgammon.cpp b/Backgammon/Backgammon.cpp new file mode 100644 index 0000000..8176297 --- /dev/null +++ b/Backgammon/Backgammon.cpp @@ -0,0 +1,141 @@ +#include "stdafx.h" +#include +#include +#include +#include +#define vecint vector +#define vecstr vector + +using namespace std; + +vecstr chip(25); +vecint amount(25); +int player = 1, dice1, dice2; +string p[2] = { "#", "*" }; + +void init() +{ + amount[12] = 15; + chip[12] = "*"; + amount[0] = 15; + chip[0] = "#"; +} + +void show_field() +{ + int pos = 11; // ��������� � 11 ������ + cout << " 11 10 9 8 7 6 5 4 3 2 1 0" << endl; + cout << "---------------------------------------------------------------" << endl; + for (int i = 0; i < 15; i++) // ������ 15 ����� + { + pos = 11; + cout << "| "; + for (int j = 0; j < 12; j++) + { + if (amount[pos] - i > 0) + { + cout << " " + chip[pos] + " "; + } + else cout << " "; + if (j == 5) + cout << "|"; + pos--; + } + cout << "|" << endl; + } + for (int i = 15; i > 0; i--) // ��������� 15 ����� + { + pos = 12; + cout << "| "; + for (int j = 0; j < 12; j++) + { + if (amount[pos] - i >= 0) + { + cout << " " + chip[pos] + " "; + } + else cout << " "; + if (j == 5) + cout << "|"; + pos++; + } + cout << "|" << endl; + } + + + cout << "---------------------------------------------------------------" << endl; + cout << " 12 13 14 15 16 17 18 19 20 21 22 23" << endl; + for (int i = 0; i < 3; i++) + cout << endl; +} + +void throw_dice() +{ + srand(time(0)); + dice1 = rand() % 6 + 1; + dice2 = rand() % 6 + 1; + cout << " �� ������ ������ ������: " << dice1 << endl; + cout << " �� ������ ������ ������: " << dice2 << endl; +} + +void turn(int player) +{ + vecint dices; + int pos, points; + bool flag = 0; // ������� ����, ��� ��� ����� + throw_dice(); + dices.push_back(dice1); + dices.push_back(dice2); + if (dice1 == dice2) // ����� + { + cout << "��� ����� �����!!!" << endl << endl;; + dices.push_back(dice1); + dices.push_back(dice2); + } + while (!dices.empty()) + { + cout << "������� ����� ������, ������ ������������: "; + cin >> pos; + while (chip[pos] != p[player - 1]) + { + cout << "������ ������ ������ �������!" << endl; + cin >> pos; + } + cout << "���������� �����: "; + cin >> points; + for (int i = 0; i < dices.size(); i++) + if (points == dices[i]) + { + dices.erase(dices.begin() + i); // ������� ����� �� ������� ������� + flag = true; + break; + } + if (flag) + { + chip[pos + points] = chip[pos]; + amount[pos]--; + amount[pos + points]++; + + system("cls"); + show_field(); + + if (!dices.empty()) + cout << "� ��� �������� ��������� ����: " << endl; + for (int i = 0; i < dices.size(); i++) + cout << dices[i] << " "; + cout << endl; + flag = false; + } + } + player = (player % 2) + 1; +} + + +int main() +{ + setlocale(LC_ALL, "Rus"); + init(); + show_field(); + turn(player); + system("pause"); + return 0; +} diff --git a/Backgammon/Backgammon.vcxproj b/Backgammon/Backgammon.vcxproj new file mode 100644 index 0000000..1fe35ef --- /dev/null +++ b/Backgammon/Backgammon.vcxproj @@ -0,0 +1,162 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {4051CE38-20C9-4D2C-9DCC-B4DDB0C9EEE5} + Win32Proj + Backgammon + 8.1 + + + + Application + true + v140 + Unicode + + + Application + false + v140 + true + Unicode + + + Application + true + v140 + Unicode + + + Application + false + v140 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + + + Level3 + Disabled + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Backgammon/Backgammon.vcxproj.filters b/Backgammon/Backgammon.vcxproj.filters new file mode 100644 index 0000000..3e65ed5 --- /dev/null +++ b/Backgammon/Backgammon.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;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/Backgammon/ReadMe.txt b/Backgammon/ReadMe.txt new file mode 100644 index 0000000..32b2a3d --- /dev/null +++ b/Backgammon/ReadMe.txt @@ -0,0 +1,30 @@ +======================================================================== + КОНСОЛЬНОЕ ПРИЛОЖЕНИЕ. Обзор проекта Backgammon +======================================================================== + +Это приложение Backgammon создано автоматически с помощью мастера приложений. + +В этом файле представлена сводка содержимого всех файлов, входящих в состав приложения Backgammon. + + +Backgammon.vcxproj + Это основной файл проекта VC++, создаваемый с помощью мастера приложений. Он содержит данные о версии языка Visual C++, использованной для создания файла, а также сведения о платформах, конфигурациях и функциях проекта, выбранных с помощью мастера приложений. + +Backgammon.vcxproj.filters + Это файл фильтров для проектов VC++, созданный с помощью мастера приложений. Он содержит сведения о сопоставлениях между файлами в вашем проекте и фильтрами. Эти сопоставления используются в среде IDE для группировки файлов с одинаковыми расширениями в одном узле (например CPP-файлы сопоставляются с фильтром "Исходные файлы"). + +Backgammon.cpp + Это основной исходный файл приложения. + +///////////////////////////////////////////////////////////////////////////// +Другие стандартные файлы: + +StdAfx.h, StdAfx.cpp + Эти файлы используются для построения файла предкомпилированного заголовка (PCH) с именем Backgammon.pch и файла предкомпилированных типов с именем StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Прочие примечания. + +С помощью комментариев «TODO:» в мастере приложений обозначаются фрагменты исходного кода, которые необходимо дополнить или изменить. + +///////////////////////////////////////////////////////////////////////////// diff --git a/Backgammon/stdafx.cpp b/Backgammon/stdafx.cpp new file mode 100644 index 0000000..84bebd8 --- /dev/null +++ b/Backgammon/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp: �������� ����, ���������� ������ ����������� ���������� ������ +// Backgammon.pch ����� ������������������� ���������� +// stdafx.obj ����� ��������� �������������� ����������������� �������� � ���� + +#include "stdafx.h" + +// TODO: ���������� ������ �� ����� ����������� �������������� ��������� � ����� STDAFX.H +// , � �� � ������ ����� diff --git a/Backgammon/stdafx.h b/Backgammon/stdafx.h new file mode 100644 index 0000000..3b40a7b --- /dev/null +++ b/Backgammon/stdafx.h @@ -0,0 +1,15 @@ +// stdafx.h: ���������� ���� ��� ����������� ��������� ���������� ������ +// ��� ���������� ������ ��� ����������� �������, ������� ����� ������������, �� +// �� ����� ���������� +// + +#pragma once + +#include "targetver.h" + +#include +#include + + + +// TODO: ���������� ����� ������ �� �������������� ���������, ����������� ��� ��������� diff --git a/Backgammon/targetver.h b/Backgammon/targetver.h new file mode 100644 index 0000000..fd33074 --- /dev/null +++ b/Backgammon/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// ��������� SDKDDKVer.h ������������ ����������� ����� ��������� ��������� ��������� Windows. + +// ���� ��������� ��������� ������ ���������� ��� ���������� ������ Windows, �������� WinSDKVer.h � +// ������� ��� ������� _WIN32_WINNT �������� �������������� ��������� ����� ���������� SDKDDKVer.h. + +#include