GithubHelp home page GithubHelp logo

slots's Introduction

Slots

1.Опис на апликацијата

Апликацијата што ќе ја развиваме е класична Slots игра како во онлајн казината.

slots

2.Упатство за користење

На почетокот на прозорецот имаме 4 копчиња New Game , Exit, Spin и Add Funds

2.1. Add Funds

За да започнеме со играње најпрво потребно е да додадеме парички во нашиот новчаник. Тоа го правиме со кликање на копчето Add Funds каде што при клик ни отвара нова форма во која ја внесуваме сумата со која што сакаме да играме.

addfunds

2.2. Spin Cost

Во овој дел имаме DropDown мени каде што можеме да избереме колкав би ни бил влогот на секој спин. Влогот може да биде 10, 20, 50,100, 500, 1000

spincost

2.3. Spin

При кликање на спин копчето ни се прикажуваат сликите во рандом редослед каде што доколку во сите колони имаме барем по една иста слика имаме добивка инаку немаме.

won

2.4. New Game

При клик на ова копче ни се отвара нова форма со почетните вредности.

2.5. Exit

Ја исклучува апликацијата.

3. Претставување на проблемот

3.1. Податочни структури

Главните податоци и функции за играта се чуваат во класата public partial class Slots : Form која што наследува од класата Form што претставува прозорец или дијалог прозорец што го сочинува корисничкиот интерфејс на самата апликација. Во самата класа имаме 3 properties public int Wins { get; set; } public int amount { get; set; } public Random random { get; set; }. Каде што Wins променливата ја кориситиме доколку имаме добивка т.е. доколку имаме иста слика во сите три колони.

3.1.2 Класата Slots : Form

Оваа класа има две int променливи, amount (износ на пари со кои располагаме во моментот) и wins (променлива во која се пресметува вкупната добивка од моменталната игра). Исто така има и еден објект од тип Random (ја користиме функцијата Random.Next() за генерирање на случаен број во даден опсег). Во конструкторот на wins и amount им задаваме вредност 0, го инцијалицираме Random објектот, ComboBox - от за цена на едно вртење го пополнуваме со вредности (5, 10, 20, 50, 100, 500 и 1000), на почетокот сликата на сите PictureBox – ови е иста, односно сликата Slots.jpg (Size 200х200 и SizeMode -> PictureBoxSizeMode.StretchImage). Исто така текстот во TextBox – овите се пополнува.

3.1.3 private void btnSpin_Click(object sender, EventArgs e)

Со притискање на копчето Spin (со лев клик или Space), најпрво се проверува дали имаме доволно средства за да играме. Доколку немаме доволно средства со MessageBox се испишува порака. Доколку имаме доволно средства, се генерираат 9 случајни броеви во опсег [0 – 1000), односно за секоја ќелија по еден. Потоа креираме 3 листи (кои ги претставуваат колоните) и ги додаваме броевите во нив. Потоа се повикува функцијата newSpin(broj, PictureBox) девет пати, по еднаш за секоја ќелија.

asd

3.1.4 private void newSpin(int n, PictureBox pb)

Оваа функција поставува слика во PictureBox – от во зависност од бројот n, односно:

  • Ако n ∈ [0, 100) тогаш се паднало јаболко.
  • Ако n ∈ [100, 200) тогаш се паднала цреша.
  • Ако n ∈ [200, 300) тогаш се паднало грозје.
  • Ако n ∈ [200, 300) тогаш се паднал ананас.
  • Ако n ∈ [300, 400) тогаш се паднало грозје.
  • Ако n ∈ [400, 600) тогаш се паднала диња.
  • Ако n ∈ [600, 700) тогаш се паднал портокал.
  • Ако n ∈ [700, 750) тогаш се паднал џекпот.
  • Ако n ∈ [750, 850) тогаш се паднала банана.
  • Ако n ∈ [850, 1000) тогаш се паднала јагода.

Потоа се повикува функцијата checkCurrent(Column1, Column2, Column3).

3.1.5 private void checkCurrent(List<int> c1, List<int> c2, List<int> c3)

Оваа функција како аргументи ги прима трите колони. Како што кажавме секое овошје има свој опсег. Идејата е да провериме дали во секоја колона имаме барем по еден број кој припаѓа на ист опсег. На пример нека c1 = {219, 570, 463}, c2 = {155, 666, 209}, c3 = {444, 491, 288}. Односно:

asd

Овде имаме добивка бидејќи во сите три колони имаме ананас, односно во сите три колони имаме по еден број кој припаѓа на опсегот [200, 300), а тоа се броевите 209 во првата, 219 во втората и 288 во третата колона. Овде исто така имаме четири дињи, но тие не даваат добивка бидејќи во втората колона нема диња. Кога имаме добивка исто така и броиме колку пати се појавил дадена слика (овошје) бидејќи тоа влијае на добивката, колку повеќе појаувавња толку поголема добивка. Добивката се пресметува на следниот начин : win = (n1 + n2 + n3) * spin * bonus, каде ni е број на појавувања на слика во i – тата колона, spin е вредноста на вртењето и bonus има различна вредност во зависност од големината на опсегот (помал опсег -> поголем бонус). Најпрвин се одзема од amount вредноста на вртењето (вредноста што сме ја избрале во cbCost) а потоа се проверува за сите опсези и доколку има добивка таа се додава во променливата totalWin (која се ресетира на 0 при ново вртење), а totalWin се додава на amount.

slots's People

Contributors

gorgievskiff avatar

Stargazers

 avatar

Watchers

 avatar  avatar

slots's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.