Slot Machine Eksempel i C ++

Slot Machine Eksempel i C ++

Jeg ble kjedelig, og det kan v re en farlig ting. Som doodling i telefonboken mens du snakker i telefon, klager jeg pa kode mens du svarer pa sporsmal pa DIC. Ja, det betyr at jeg ikke har noe liv og ja det betyr at jeg ble fodt en koder. Under denne lille doodle bestemte jeg meg for a lage en spilleautomat. Men ikke din standard spilleautomat per si, men en designet litt mer som den virkelige ting. Sikker pa at det kunne v rt gjort litt enklere og ikke engang a bruke en hjulklasse i det hele tatt, men hvor morsomt er det? I denne oppforingen viser jeg opprettelsen av en spilleautomat fra litt mer av et mekanisk aspekt enn en rent datamaskinisert. Det skal gi et lite utvalg av klasser og hvordan de kan representere virkelige maskiner. Vi dekker det helt her pa Programmerings Underground!

Sa som jeg allerede har sagt, var dette lille prosjektet bare noe a leke med. Det viste seg ganske fint, sa jeg trodde jeg ville dele den. Men hva mente jeg om at det var mekanisk i naturen? Vel, hvis du noen gang har spilt en ekte spilleautomat, ikke de digitale de har pa kasinoer na, ville du se et metallhus med en serie hjul. Vanligvis ville det v re tre hjul med bilder pa dem. Nar du legger pengene inn og trekker handtaket, vil hjulene bli satt i bevegelse. De ville snurre, og sa ville det forste hjulet stoppe, etterfulgt av den andre og den tredje. Etter at de alle har stoppet, er gevinsten bestemt og du blir utbetalt i mynter eller kreditter.

Jeg trodde, hvorfor ikke v re litt mekanisk i denne spilleautomaten, og opprett hjulene som en klasse som heter «Wheel & # 8221; og gi den muligheten til a spinne uavhengig av de andre hjulene? Fa hjulet til a holde oversikt over hvilket bilde (eller i vart saksnummer) flyr av og rapportere resultatene til selve spilleautomaten. Jeg kunne ha gjort denne mekanismen uten behov for et hjul i det hele tatt, og i stedet laste opp en matrise og fa det tilfeldig valgt et nummer fra rattet. Litt slankere, litt mer effektiv, men ville ikke vise mye programmeringsteori.

Hva far vi ved a gjenskape disse hjulklassene og spinne dem uavhengig? Vel, du far litt fleksibilitet. Uavhengig er vi i stand til a kontrollere spinnens hastighet hvis vi onsket a, vi er i stand til a forsta ideen om hjulet som et konsept i vart sinn og manipulere det. Vi kunne lett bygge inn funksjoner som om hjulet lander pa et bestemt tall, vil det justere seg selv. Som noen slots i Vegas, hvis du lander pa, kan vi si en rakett i midtlinjen, ville maskinen se raketten og rette hjulet for a spinne bakover 1 punkt (i retning av raketten som om raketten var a kontrollere hjulet) . Vi kunne rotere ett hjul pa en og annen mate et annet hjul. Vi kunne arve fra det hjulet og skape et spesialisert hjul som gjor en rekke nye, forskjellige oppforinger. Alt er innkapslet i et solidt objekt som gjor den faktiske maskinklassen uvitende om kj rligheten til selve hjulet og # 8230; innkapsling pa sitt beste!

Maskinklassen vi lager vil inneholde 3 pekere. Hver til en av hjulene. Maskinen selv vil v re ansvarlig for noen forskjellige oppgaver. A ta penger, utstede og fjerne kreditter, bestemme nar du skal snurre, fortelle hvert hjul a snurre og sjekke vare gevinster basert pa noe diagram som vi oppretter. Den har nok pa platen sin enn a bekymre seg for hjulene og lese verdiene sine.

Sa kan vi begynne med vart Hjulklasse og dens erkl ring / implementering & # 8230;

Som du ser, er selve hjulet ikke et vanskelig konsept a forestille seg. Hoveddelen av arbeidet er i read () -metoden. Her leser vi bare verdiene fra vart interne utvalg av heltall (verdiene pa hjulet) og returnerer disse verdiene som en rekke av de tre heltallene & # 8230; som representerer den synlige kolonnen. Denne kolonnen vil da lastes inn i var 2-dimensjonale array tilbake i maskinsklassen. 2D-arrayet representerer visningen eller skjermen hvor brukeren ser resultatene. Husk at brukeren aldri far se hele hjulet. Bare de tre pafolgende verdiene pa hjulets side.

Slik ser det ut i den virkelige verden. Vi har var maskin med de tre hjulene og var 2D-serie kalt & # 8220; Skjerm & # 8221; som fungerer som vart visningsvindu. Hvert hjul vil rapportere sine verdier og disse verdiene vil bli satt inn i skjermen & # 8230;

Nedenfor er var maskinklasse & # 8230;

Dette ser ut som mye kode, men egentlig er det ikke om du ser pa hver funksjon. De fleste av dem er veldig veldig enkle a forsta. Vi har en spinnmetode som hovedsakelig spinner hvert hjul, leser verdiene tilbake fra hjulklassen til en peker (som representerer hver kolonne), sa blir de lastet inn i 2D-arrayen en kolonne ad gangen (var visningsskjerm), trykt for brukeren a se resultatene og til slutt blir gevinsten sjekket. Metoden checkwinnings () bestemmer hvilke rader som skal kontrolleres ut fra mengden av innsatsen. Hvis de valgte 1 linje, kontrollerer den bare om vinnerkombinasjoner pa den midterste raden. Hvis de velger 2 linjer, kontrollerer de mellomste og overste linjer, 3 linjebetegn kontrollerer alle tre horisontale rader, 4 linjebetegn kontrollerer ogsa den forste diagonalen og 5 linjebetegn kontrollerer begge diagonalene i tillegg til linjene.

Hvordan sjekker linjene? Vel hver linje er gitt til kontrolllinjens () hjelperfunksjon som sammenligner de tre verdiene til linjen mot en opptegnet type forskjellige symboler. Her tilordner vi bare et symbol mot hver nummerert verdi for a hjelpe programmereren a bestemme hvilke tall som tilsvarer hvilke vinnende kombinasjoner. For eksempel representerer luckyseven tallet 3 i opptellingen. Sa hvis den gar over en linje med 3 nummer 3, vet den at den treffer den store jackpotten og krediterer spilleren 1000. Denne metoden gjor det enkelt, for hvis vi noen gang onsket a endre vinnemonstrene senere, kunne vi endre enum og checkline metode for a gjore det. Vi kan ogsa bygge i flere typer symboler og til og med la brukeren velge hvilket spill som de vil ga forbi. Det blir veldig fleksibelt og er et testament til flott design!

Til slutt kan vi sette noen tester sammen bare for a vise noen forskjellige aspekter av hvordan denne tingen fungerer og hvordan programmereren kan bruke klassene & # 8230;

Dette legger ganske enkelt inn en 5 dollar regning og en mynt for lykke til. Deretter satser 5 linjer og spinner. Til tross for utfallet gar vi og satser fem linjer igjen og spinner igjen. Forhapentligvis vinner vi noe denne gangen! Men uansett, det er klassene for deg, og jeg haper du liker dem. Som alltid er all kode her pa Programmerings Underground i offentlig domene og gratis for a ta (bare ikke forarsake et rot i isle 3, jeg er lei av a lope der ute for opprydding). Takk for at du stoppet ved og leser bloggen min.



Hilsen! Vil du spille i det mest heldige kasinoet? Vi fant det for deg. Klikk her nå!