Проектната задача е имплементација на едноставна слот машина. Оваа игра е позната и забавна, при што играчите се обидуваат да освојат кредити вртејќи ролните на слот машината и добивајќи одредени комбинации на симболи.
Проектната задача е изработена од стдентите: Зоран Ѓорѓијески 225003; Андреј Велков 225126; Мартин Ѓорѓески 221540.
Апликација: Имплементација на слот машина со различни симболи (на пр. цреша, лимон, бар и сл.). Играта се игра со избирање на облог и притискање на копчето "Spin" за вртење на ролните. Играчите добиваат поени според комбинациите на симболи кои се појавуваат.
Функционалности:
- Внесување на облог (бет) со помош на нумеричка контрола.
- Вртење на ролните и прикажување на резултатите.
- Пресметка на добивките според појавувањата на симболите.
- Прикажување на добивките и кредитите.
- Цртање на линии за големи добивки.
Податоци: Се чуваат симболите во низа од слики. Се користат нумерички променливи за кредитите, облогот и добивката.
Структури и класи:
Form1
: Главната класа на формата која го содржи кодот за слот машината.IntUtil
: Класа за генерација на случајни броеви.Image[] images
: Низа која ги содржи сликите за симболите.
CalculateWin: Функција за пресметка на добивките според броењето на симболите.
private int CalculateWin(params int[] positions)
{
int total = 0;
int[] symbolCounts = new int[images.Length]; // Низа за броење на симболите
// Пресметај колку пати се појавува секој симбол
foreach (int position in positions)
{
symbolCounts[position]++;
}
// Пресметај добивки според бројот на појавувања на симболите
for (int i = 0; i < symbolCounts.Length; i++)
{
int count = symbolCounts[i];
switch (i)
{
case 0: // Цреша
if (count >= 4) total += 5;
else if (count == 3) total += 2;
else if (count == 2) total += 1;
break;
case 1: // Лубеница
if (count >= 4) total += 6;
else if (count == 3) total += 1;
break;
case 2: // Лимон
if (count >= 3) total += 3;
break;
case 3: // Бар
if (count >= 4) total += 4;
else if (count == 3) total += 1;
break;
case 4: // Слива
if (count >= 4) total += 5;
else if (count == 3) total += 1;
break;
case 5: // Срце
if (count >= 4) total += 15;
else if (count == 3) total += 5;
else if (count == 2) total += 2;
break;
case 6: // Детелина
if (count >= 4) total += 15;
else if (count == 3) total += 7;
else if (count == 2) total += 2;
if (count >= 3) AddLinePoints(i);
break;
case 7: // Портокал
if (count >= 4) total += 7;
else if (count == 3) total += 4;
else if (count == 2) total += 1;
break;
case 8: // Ѕвонче
if (count >= 4) total += 18;
else if (count == 3) total += 10;
else if (count == 2) total += 3;
if (count >= 3) AddLinePoints(i);
break;
case 9: // Монета
if (count >= 4) total += 16;
else if (count == 3) total += 8;
else if (count == 2) total += 3;
if (count >= 3) AddLinePoints(i);
break;
case 10: // Потковица
if (count >= 4) total += 26;
else if (count == 3) total += 10;
else if (count == 2) total += 3;
if (count >= 3) AddLinePoints(i);
break;
case 11: // Грозје
if (count >= 4) total += 10;
else if (count == 3) total += 3;
break;
case 12: // Јаболко
if (count >= 4) total += 6;
else if (count == 3) total += 2;
break;
case 13: // Дијамант
if (count >= 4) total += 48;
else if (count == 3) total += 15;
else if (count == 2) total += 7;
if (count >= 3) AddLinePoints(i);
break;
}
}
// Ако има голема добивка, овозможи цртање на линијата
if (total > 0)
{
drawLine = true;
}
return total;
}
Главниот екран на слот машината со ролните и копчето "Spin". Екран со добивка и цртани линии за големи добивки.
Изберете облог (бет) со помош на нумеричката контрола. Притиснете "Spin" за да ги вртите ролните. Гледајте ги резултатите и проверете дали има добивка. Добиените поени се пресметуваат според комбинациите на симболите. Правила на игра Дозволено е користење на готов код или готови класи и функции како и копирање на идеи, но не е дозволено копирање и користење на готови проекти и менување на неколку функционалности. Секој обид за предавање на проектна задача која е претходно изработена за овој предмет или некој друг сличен, ќе се смета за плагијат и ќе биде најстрого санкциониран (проектната задача нема да биде признаена, што значи нема да може да се добие потпис и предметот ќе мора да се презапише).