Matlab Blackjack Report.

Innholdsfortegnelse.

Abstrakt.

Blackjack er et av de mest popul re kortspillene i verden med relativt enkle regler. Spilleren ma prove a sla dealeren ved a ha en hoyere score uten a ga over 21 poeng. I dette prosjektet var malet a gjenopprette en blackjack-simulator. Forst leser vi om casino regler for blackjack hvor spilleren er mot forhandleren. Deretter planla vi ut vart prosjekt ved a tenke pa hvilke programmer vi matte lage og implementere. Etter at vi hadde skrevet alle programmene, gjorde vi mange test og lagt til flere kodelinjer for a sikre at alt fungerte riktig.

Introduksjon.

Vart hovedmal for dette siste prosjektet var a skape en noyaktig Blackjack-simulator. A forsta hvordan Effektiv og effektiv bruk av Matlab var ofte frustrerende gjennom aret, sa vi onsket a bruke dette siste prosjektet som en mate a fa ekstra praksis med programmet. Vi onsket a bedre forsta kodingsteknikker og tanke a lage et spill som blackjack ville v re en morsom mate a gjore det pa. Siden blackjack er et spill, trodde vi det ville v re interessant a lage en simulator der vi kan satse chips i stedet.

Bakgrunn / Theory.

Utvidede regler for blackjack.

Som kort sagt, for a vinne blackjack mot en forhandler, ma spilleren ha flere poeng enn forhandleren uten a ga over 21 poeng. Spilleren og forhandleren har begge folt to kort, men forst en av forhandlerne motes opprinnelig. Kort er verdt deres nummerverdi med jacks gjennom konger som ogsa er ti poeng og ess kan v re elleve eller ett poeng avhengig av hvilken som fungerer bedre. Forst, det er spilleren sin tur og brukeren kan bestemme seg for a treffe (fa et annet kort) eller sta (avslutte sin tur). Hvis spilleren gar over 21 poeng, bryter han / hun og taper automatisk. Ellers vil det da v re forhandlerens tur som vil vende over sitt andre kort og ma fortsette a sla til han enten har bust eller har 17 poeng eller hoyere. Hvis verken spilleren eller forhandleren bryter, er vinneren personen med flere poeng, og den personen vil vinne innsatsen. Spilleren far en blackjack, som er et ti-verdi kort sammen med et ess, vinner spilleren automatisk 1,5 ganger sin innsats. Hvis spilleren og forhandleren knytter en runde, blir innsatsen delt og ingen mister eller tjener penger.

Programmeringsideer.

Etter fullt ut a forsta regler for blackjack ble det umiddelbart klart enn mange om pastander og mens lokker skulle v re nodvendige. Hvis og ellers hvis setningen bare utfores hvis spesifikke betingelser er oppfylt, vil programmet hoppe over den delen av koden. Dette er viktig fordi vi for eksempel vil ha runden til a ende med en gang hvis spilleren gar over 21 poeng fordi det ikke ville v re nyttig a ha forhandleren ga om hans tur hvis denne tilstanden er oppfylt. Mens sloyfer er ubestemte sloyfer som vil fortsette a utfores til visse forhold endres. Disse var ogsa viktige for kodingsprosessen fordi for eksempel nar vi ber brukeren a legge inn en innsats, vil en stundsloyfe fortsette a sporre brukeren om en gyldig innsats til innsatsen er storre enn minimumsinnsatsen, men mindre enn summen antall sjetonger spilleren har.

Fullfort Prosjektdesign.

Fra det ytre nivaet, blackjack simulatoren vi opprettet er en gigantisk mens sloyfe. Betingelsene for mens lokke til slutt er hvis brukeren ikke har nok chips til a gjore minimumsinnsatsen, har over 1.000.000 chips, eller hvis brukeren skriver inn 0 for innsatsen. Hver lop gjennom menslokken vil utfore en enkelt runde med svart jack. for denne hovedmenyen slar programmet inn en introfunksjon som informerer spilleren om spillereglene og vil identifisere hvor mange chips spilleren starter med. Den forste funksjonen inne i lokken er en «getbet» -funksjon. Denne funksjonen inneholder en stundsloyfe for a sikre at spilleren legger inn en passende innsats. Deretter kaller hovedkoden en «getcard» -funksjon som vil tilfeldigvis velge et tall mellom 1 og 52 og tilordne et kort dress og nummer til det nummeret. Neste er «getvlaue» -funksjonen som konverterer et kort til en poengverdi, slik at den kan bli opptatt. Nar spilleren har to kort og forhandleren har sitt ene oppad-kort, gar koden gjennom en annen lokke som gir spilleren et annet kort til de slutter a skrive inn ‘h’ for a treffe. Hver lop gjennom denne lokken vil handtere ett kort og legge opp spillernes totale poengverdi for a sikre at spilleren ikke gar i stykker. Hvis spilleren gar over 21, hvis setninger brukes til a sjekke om noen av kortene var et ess, slik at verdien sin kunne overfores fra en 11 til en 1. Bruk en annen hvis setningen, hvis brukeren avslutter sin tur uten busting, sa vil forhandleren motta sitt andre kort og gar gjennom en lignende mens lokken selv. Forhandleren ma fortsette a treffe og legge til sin totale poengverdi til han bytter eller har mer enn 17. Om igjen, hvis setninger brukes til a kontrollere om et es kan overfores til en 1 hvis forhandleren bryter. Hvis verken spilleren eller forhandleren bryter, sa brukes noen endelige om og elseif-setninger for a sjekke om forhandleren eller spilleren hadde flere poeng og omfordeler chipets totale tilstrekkelig. For slutten av hvert lop gjennom hovedunderlaget kalles en «getwinloss» -funksjon som bestemmer om spilleren har nok chips til a fortsette a spille eller ikke. Hvis spilleren har nok, starter programmet en annen runde blackjack ved a ga tilbake til begynnelsen av denne ytre sloyfen. Hvis ikke, vil spillet skrive ut et spill over meldingen, og programmet avsluttes.

Se linker nederst pa siden for a se den faktiske koden med klare kommentarer.

Som helhet var vi fornoyd med resultatet av var blackjack-simulator. Vi nadde vart mal om a lage et blackjack-spill ved hjelp av Matlab, og vi var i stand til a tillate betting. Alt mens lokkene fungerte bra, og spillet fortsetter a spille jevnt til brukeren loper ut av sjetonger eller skriver en ‘0’ for a avslutte. Alle spillene syntes a fungere spesielt godt. Programmet kan noyaktig avgjore hvem som vinner hver runde og totalt antall sjetonger som spilleren har fatt tildelt pa nytt basert pa resultatet og hvor mye som ble bedt. Til tross for vare suksesser innser vi at simulatoren ikke er perfekt. Vi kunne ikke fa var «getcard» -funksjon til a fungere akkurat slik vi onsket. Funksjonen returnerer et tilfeldig kort funnet med et nummer mellom 1 og 52 hver gang det kalles. Dette betyr at funksjonen potensielt kan returnere noyaktig samme kort mange ganger pa rad. I normal blackjack, av deg folte og ess, ville det v re litt mindre sannsynlig at ditt neste kort ogsa skulle v re et ess, men i var simulator endres sannsynligheten ikke. Ogsa, med tidsbegrensningene, kunne vi ikke legge til funksjoner for dobbelt ned eller for splitting som er tilleggsregler for blackjack som er tillatt pa mange kasinoer. Vi har imidlertid lykkes med a implementere standardreglene for blackjack.

Konklusjon.

Nar vi skrev blackjack-simulatoren, matte vi holde orden og bruke de forskjellige programmeringsteknikkene vi har l rt. Er implementering av mens sloyfer og hvis setninger fungerte bra, men nar du ser pa koden, ser alt ut jumbled og rotete siden det er flere lag med sloyfer og om / annet setninger. Kanskje det ville v rt bedre hvis vi klarte a gjore koden enklere a se pa. Ogsa vi fant ut at vi matte v re forsiktige med variable navn og holde seg konsekvent gjennom hele. Nar vi feilsoker programmet, sparte vi mye tid pa a prove a finne enkle feil som a skrive i variable navn feil. Hvis vi skulle fortsette med denne blackjack-simulatoren, ville vi fikse «fa kort» -funksjonen slik at en gang et kort er valgt, ville det bli fjernet fra kortstokken og ikke kunne velges igjen. Noen utvidelser vi kunne lage, ville v re a legge til alternativene for dobbel ned og splitting, eller tillate spilleren a spille flere hender mot forhandleren om gangen.

Vedlegg.

Koden for blackjack-simulatoren og funksjonene finnes i denne zip-filen. Alle koden har kommentarer.


Hi! Do you want to play in the most popular casino? We gathered it for you. Click here now!