- •1 Постановка задачі
- •2 Математична модель та структура програми
- •3 Огляд існуючих рішень
- •3.1 Аналіз аналогічних програм
- •Програма для гри у карткову гру «Дурбецел»
- •Програма для гри у карткову гру «produrak»
- •3.1.3 Підсумковий аналіз розглянутої програми
- •3.2 Використання основних принципів ооп
- •5 Структура даних та ресурсів програми
- •6 Опис програми
- •7 Керівництво адміністратора
- •4 Перелік і визначення режимів, опис діалогу
- •8 Керівництво користувача
- •Список використаних джерел
- •Додаток а – Текст програми
- •Додаток б – Діаграми класів
- •Додаток в – Діаграма агрегацій
Список використаних джерел
1. C#. Создание приложений для Windows - Лабор В. В. Л 39 Си Шарп: Создание приложений для Windows/ В. В. Лабор.— Мн.: Харвест, 2003. - 384 с.
2. Приемы объектно-ориентированного проектирования Паттерны проектирования - Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. П75 — СПб: Питер, 2001. — 368 с.: ил. (Серия «Библиотека программиста»).
3. Основы Microsoft Visual Studio .NET 2003 - Пер. с англ. - M.: Изда- тельско-торговый дом «Русская Редакция», 2003. — 464 стр.: ил.
4. Язык программирования C# 2010 и платформа .NET 4 - Автор: Эндрю Троелсен, Переводчики: Я. Волкова, А. Моргунова, Н. Мухина.
5. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C# - Автор: Джеффри Рихтер, Языки: Русский, Издательство: Питер.
Додаток а – Текст програми
Лістинг А.1 – Клас «Гравець» (файл Player.cs)
class Player
{
public int x = 200;
public int y = 550;
public int tek = 0;
public Koloda KolodaP;
public Player()
{
KolodaP = new Koloda(x, y, 2);
KolodaP.kolvo = 0;
}
public void PlPrKey(int NumKey)
{
if (NumKey == 1)
{
if (tek < KolodaP.kolvo - 1)
{
KolodaP._Koloda[tek].Pic.Location = new Point(KolodaP._Koloda[tek].Pic.Location.X, KolodaP._Koloda[tek].Pic.Location.Y + 20);
tek = tek + 1;
KolodaP._Koloda[tek].Pic.Location = new Point(KolodaP._Koloda[tek].Pic.Location.X, KolodaP._Koloda[tek].Pic.Location.Y - 20);
KolodaP._Koloda[tek].Pic.BringToFront();
}
}
if (NumKey == 2)
{
if (tek > 0)
{
KolodaP._Koloda[tek].Pic.Location = new Point(KolodaP._Koloda[tek].Pic.Location.X, KolodaP._Koloda[tek].Pic.Location.Y + 20);
tek = tek - 1;
KolodaP._Koloda[tek].Pic.Location = new Point(KolodaP._Koloda[tek].Pic.Location.X, KolodaP._Koloda[tek].Pic.Location.Y - 20);
KolodaP._Koloda[tek].Pic.BringToFront();
}
}
if (NumKey == 3)
{
if (KolodaP.kolvo-1 >= 0)
{
for (int i = tek; i < KolodaP.kolvo - 1; i++)
{
KolodaP._Koloda[i].setmast_nom(KolodaP._Koloda[i + 1].getmast(), KolodaP._Koloda[i + 1].getnom());
}
KolodaP._Koloda[KolodaP.kolvo - 1].Pic.Dispose();
KolodaP.kolvo = KolodaP.kolvo - 1;
KolodaP._Koloda[tek].Pic.Location = new Point(KolodaP._Koloda[tek].Pic.Location.X, KolodaP._Koloda[tek].Pic.Location.Y + 20);
tek = 0;
KolodaP._Koloda[tek].Pic.Location = new Point(KolodaP._Koloda[tek].Pic.Location.X, KolodaP._Koloda[tek].Pic.Location.Y - 20);
KolodaP._Koloda[tek].Pic.BringToFront();
}
}
}
}
}
Лістинг А.2. – Клас «Колода» (файл Koloda.cs)
class Koloda
{
public int x;
public int y;
private int typek;
public Cards[] _Koloda = new Cards [36];
public int kolvo = 0;
private int glk = 10;
public Koloda(int _x, int _y, int _type)
{
x = _x;
y = _y;
typek = _type;
}
public void InitMainKoloda(Form1 F1)
{
typek = 1;
kolvo = 0;
for (int i = 1; i < 5; i++)
for (int j = 1; j < 10; j++)
{
_Koloda[kolvo] = new Cards(x + 3 * kolvo, y + 3 * kolvo, i, j);
kolvo = kolvo + 1;
}
}
public void KolRand()
{
int k;
Cards carddop = new Cards(0, 0, 1, 1);
for (int i = 35; i >=0; i--)
{
Random R1 = new Random();
carddop.setmast_nom(_Koloda[i].getmast(), _Koloda[i].getnom());
Thread.Sleep(2);
k = R1.Next(36);
_Koloda[i].setmast_nom(_Koloda[k].getmast(), _Koloda[k].getnom());
_Koloda[k].setmast_nom(carddop.getmast(), carddop.getnom());
}
}
public void ShowKoloda(Form1 F1)
{
switch (typek)
{
case 1:// главная колода
{ if (kolvo==0)
_Koloda[0].Pic.Dispose();
for (int i = 0; i < kolvo; i++)
{
_Koloda[i].SetXY(x - 3 * i, y + 3 * i);
if (i < 10)
{
_Koloda[i].Showcard(F1);
_Koloda[i].Pic.BringToFront();
glk = i;
}
}
_Koloda[0].Pic.Location = new Point(_Koloda[0].Pic.Location.X, _Koloda[0].Pic.Location.Y - 40);
_Koloda[0].SetLico(true);
for (int j = glk+1; j < glk+9 ;j++ )
_Koloda[j].Pic.Dispose();
if (kolvo == 0)
_Koloda[0].Pic.Dispose();
break;
}
case 2: //колода игрока
{
for (int i = 0; i < kolvo; i++)
{
_Koloda[i].SetLico(true);
_Koloda[i].SetXY(x +40 * i, _Koloda[i].Pic.Location.Y );
_Koloda[i].Showcard(F1);
}
break;
}
case 3: // Компьютера
{
for (int i = 0; i < kolvo; i++)
{
_Koloda[i].SetLico(false);
_Koloda[i].SetXY(x + 40 * i, y);
_Koloda[i].Showcard(F1);
}
break;
}
case 4: // игровая
{
for (int i = 0; i < kolvo; i++)
{
_Koloda[i].SetLico(true);
_Koloda[i].SetXY(x + 140* i, y);
_Koloda[i].Showcard(F1);
}
break;
}
}
}
}
}
Лістинг А.3 – Класс «Карти» (файл Cards.cs)
class Cards
{
private int x;
private int y;
public PictureBox Pic;
public string A=@"";
private Image Shirt = Image.FromFile(@"C:\ProjectCards\Cards\Back.jpg");
private int mast;
private int nominal;
public bool lico=false;
//------------------------------------------------------------------------------------------------
public Cards(int _x, int _y, int _mast, int _nominal)
{
x = _x;
y = _y;
mast = _mast;
nominal = _nominal;
Pic=new PictureBox();
Pic.Size = new Size(120, 180);
Pic.TabStop = false;
Pic.SizeMode = PictureBoxSizeMode.StretchImage;
Pic.Location = new Point(x, y);
if (lico == false)
{
Pic.Image = Shirt;
}
A = @"C:\ProjectCards\Cards\";
switch (mast)
{
case 1: A = A + @"Spades - ";
break;
case 2: A = A + @"Clubs - ";
break;
case 3: A = A + @"Diamonds - ";
break;
case 4: A = A + @"Hearts - ";
break;
}
switch (nominal)
{
case 1:
A = A + @"6.jpg";
break;
case 2:
A = A + @"7.jpg";
break;
case 3:
A = A + @"8.jpg";
break;
case 4:
A = A + @"9.jpg";
break;
case 5:
A = A + @"10.jpg";
break;
case 6:
A = A + @"Jack.jpg";
break;
case 7:
A = A + @"Queen.jpg";
break;
case 8:
A = A + @"King.jpg";
break;
case 9:
A = A + @"Ace.jpg";
break;
}
if (lico == true)
{
Pic.Image =Image.FromFile(A);
}
}
//---------------------------------------------------------------------
public void Showcard(Form1 F1)
{
F1.Controls.Add(this.Pic);
}
//---------------------------------------------------------------------
public void SetLico(bool _lico)
{
lico = _lico;
if (lico == false)
Pic.Image = Shirt;
else
Pic.Image = Image.FromFile(A);
}
//________________________________________________________________________________
public int getnom()
{
return nominal;
}
//___________________________________________________________________________________
public int getmast()
{
return mast;
}
//_________________________________________________________________________________
public void setmast_nom(int _mast, int _nom)
{
mast = _mast;
nominal = _nom;
A = @"C:\ProjectCards\Cards\";
switch (mast)
{
case 1: A = A + @"Spades - ";
break;
case 2: A = A + @"Clubs - ";
break;
case 3: A = A + @"Diamonds - ";
break;
case 4: A = A + @"Hearts - ";
break;
}
switch (nominal)
{
case 1:
A = A + @"6.jpg";
break;
case 2:
A = A + @"7.jpg";
break;
case 3:
A = A + @"8.jpg";
break;
case 4:
A = A + @"9.jpg";
break;
case 5:
A = A + @"10.jpg";
break;
case 6:
A = A + @"Jack.jpg";
break;
case 7:
A = A + @"Queen.jpg";
break;
case 8:
A = A + @"King.jpg";
break;
case 9:
A = A + @"Ace.jpg";
break;
}
if (lico == true)
{
Pic.Image = Image.FromFile(A);
}
}
//__________________________________________________
public void SetXY(int _x, int _y)
{
x = _x;
y = _y;
Pic.Location = new Point(x, y);
}
}
}
Лістинг А.4 – Клас «Головний комп’ютер» (файл CompMain.cs)
class CompMain
{
public int x = 200;
public int y = 30;
public int tek = 0;
protected int[] hod = new int[18];
protected Cards dopcard = new Cards(1, 1, 1, 1);
protected int[] index = new int[18];
public Koloda KolodaP;
protected int h = 0;
public CompMain()
{
KolodaP = new Koloda(x, y, 3);
KolodaP.kolvo = 0;
}
//______________________________________________________________________________
public void schet_index(int trump)
{
for (int i = 0; i <KolodaP.kolvo; i++)
{
index[i] = 0;
index[i] = KolodaP._Koloda[i].getnom();
if (KolodaP._Koloda[i].getmast()==trump)
index[i] = index[i] + 9;
}
}
//______________________________________________________________________________
public virtual int Attack(int kolvo, int nom, int _trump, int MKK)
{
return -1;
}
//_____________________________________________________________________________________
public virtual int Guard(int mast, int nom, int trump, int MKK)
{
return -1;
}
public virtual int Dodat(int trump, int MKK)
{
return -1;
}
}
}
