Hulp nodig bij het programmeren van een bet/dicing calculator in excel

Status
Niet open voor verdere reacties.

Cowsbelieve

Nieuwe gebruiker
Lid geworden
13 sep 2015
Berichten
3
Dag allen,

Ik ben nieuw op dit forum en hoop dat jullie mij kunnen verder helpen/op weg helpen met het volgende probleem.

Ik zal eerst uitleggen wat ik juist wil maken en waarvoor dit zal dienen.
Op een bepaalde website kan je met fictief geld dice spelletjes spelen (dus ik benadruk alvast dat dit niets met echt geld te maken heeft)
Het spelletje dat ik er op speel is dat je een bepaalde inzet kan plaatsen, bijvoorbeeld 100.000 (100k). Er wordt dan een random nummer tussen 0 en 100 gerold, als het 0 tem 51 is verlies je 52 tem 100 win je. dus je hebt een 49% win kans.
Nu heb ik zelf een excel document met alle mogelijke win/verlies combinaties die je kan bereiken in 10 bets achter elkaar. dit zijn er ongeveer een 100tal.

Hier een afbeelding die de eerste 4 bet mogelijkheden weergeeft. Elke bet wordt berekend aan de hand van een bepaalde formule, maar die doet momenteel niet terzijde.
Het nut van deze calculator is dus ook zo dat je uiteindelijk 99% kans hebt op altijd winst en dat wanneer je een loss streak meemaakt (1/100) dat je ondertussen meer dan genoeg verdiend hebt om die 1 loss op te vangen en nog steeds enorm veel winst hebt. Dit werkt want heb het al veel getest, maar het probleem is dus dat je constant tussen 600 kolommen in excel moet bladeren om je volgende bet te vinden, enzovoorts... Dit vergt veel tijd en met het gene wat ik wil maken zal dit véél efficienter zijn.
Nog 1 vraag die jullie zich stellen zal waarschijnlijk zijn waarom als het toch fictief is. Buiten dicen kan je er nog veel doen en met het geld dat je verdiend kan je bepaalde items en dergelijke aankopen die je kan gebruiken voor die activiteiten etc. Dus het dicing gedeelte is bedoeld voor het geld te verdienen, het geld gebruik je om leukere activiteiten uit te voeren (:
winlose.jpg

Wat ik wil doen is dit automatiseren dat je niet telkens de lijn moet volgen maar dat je op een knop drukt (win of verlies) en dat er dan in een bepaald veld wordt weergegeven welk bedrag je moet inzetten. (de meest veilige bet)
img1.png

Uiteindelijk komt het er op neer dat na 10 bets, het bedrag terug op 100k staat, de start inzet. En dat de code terug van begin opnieuw start.
Wat ik vermoed is dat je met zeer veel IF situaties in de code moet gaan werken, maar ik krijg dit momenteel niet werkende. Als iemand mij hierbij op weg zou kunnen helpen zou echt fantastisch zijn!

Alvast bedankt en bij meer vragen hoor ik het wel (:
 
Laatst bewerkt:
Oke, even een update.
Ik ben door enorm veel te proberen toch al verder geraakt en ben ik op volgende code gekomen.
Om dit te programmeren tot bet 10 ben je wel enorm veel uren bezig, dus daarmee dat ik de code even zal posten en dat jullie mij misschien een vereenvoudigde manier kunnen geven.
+ dit zal jullie waarschijnlijk nog een beter overzicht geven over wat ik wil maken.

Code:
Private Sub txtStart_Change()
txtBet.value = txtStart.value
'Men kan een gewenste start bet value ingeven, deze wordt dan in het vak ingevuld voor de 1ste bet
End Sub

Private Sub UserForm_activate()
txtAantal.value = 0
'Deze counter houd bij hoeveel bets je gedaan hebt
End Sub


Private Sub btnWin_Click()
txtAantal.value = txtAantal.value + 1
'Er is 1 bet gedaan, dus wordt de counter verhoogd met 1
txtWinLoss.Text = txtWinLoss.Text + "1"
'Deze counter maakt een decimale code van de volgorde bets die er gemaakt is.
'een winnende bet staat voor 1, en verliezende bet staat voor 0
    If txtAantal.value = 10 Then
    txtWinLoss.Text = ""
    txtAantal.value = 0
    txtBet.Text = txtStart.Text
    End If
    'Deze if structuur zorgt ervoor dat zodra er 10 bets zijn gebeurd dat men terug bij bet 1 begint
    
'Hieronder zijn er enorm veel if codes, deze gaan kijken welke win/verlies structuur je momenteel gehad hebt en gaat dan de volgende bet berekenen.
'om de structuur te controleren gaat hij kijken bij de decimale code die er momenteel is

'Bet 2
If txtWinLoss.Text = "0" Then
txtBet.Text = txtBet.value * 150 / 100
End If
If txtWinLoss.Text = "1" Then
txtBet.Text = txtBet.value * 70 / 100
End If
'Bet 3
If txtWinLoss.Text = "00" Then
txtBet.Text = txtBet.value * 190 / 100
End If
If txtWinLoss.Text = "01" Then
txtBet.Text = txtStart.value * 70 / 100
End If
If txtWinLoss.Text = "10" Then
txtBet.Text = txtBet.value * 220 / 100
End If
If txtWinLoss.Text = "11" Then
txtBet.Text = txtBet.value * 99 / 100
End If
'Bet 4
If txtWinLoss.Text = "000" Then
txtBet.Text = txtBet.value * 160 / 100
End If
If txtWinLoss.Text = "001" Then
txtBet.Text = txtStart.value * 60 / 100
End If
If txtWinLoss.Text = "010" Then
txtBet.Text = txtBet.value * 150 / 100
End If
If txtWinLoss.Text = "011" Then
txtBet.Text = txtStart.value * 80 / 100
End If
If txtWinLoss.Text = "100" Then
txtBet.Text = txtBet.value * 200 / 100
End If
If txtWinLoss.Text = "101" Then
txtBet.Text = txtStart.value * 50 / 100
End If
If txtWinLoss.Text = "110" Then
txtBet.Text = txtBet.value * 250 / 100
End If
If txtWinLoss.Text = "111" Then
txtBet.Text = txtStart.value * 100 / 100
End If
'Bet 5
If txtWinLoss.Text = "0000" Then
txtBet.Text = txtBet.value * 160 / 100
End If
If txtWinLoss.Text = "0001" Then
txtBet.Text = txtStart.value * 60 / 100
End If
If txtWinLoss.Text = "0010" Then
txtBet.Text = txtBet.value * 150 / 100
End If
If txtWinLoss.Text = "0011" Then
txtBet.Text = txtStart.value * 80 / 100
End If
If txtWinLoss.Text = "0100" Then
txtBet.Text = txtBet.value * 200 / 100
End If
If txtWinLoss.Text = "0101" Then
txtBet.Text = txtStart.value * 60 / 100
End If
If txtWinLoss.Text = "0110" Then
txtBet.Text = txtBet.value * 250 / 100
End If
If txtWinLoss.Text = "0111" Then
txtBet.Text = txtStart.value * 100 / 100
End If
If txtWinLoss.Text = "1000" Then
txtBet.Text = txtBet.value * 190 / 100
End If
If txtWinLoss.Text = "1001" Then
txtBet.Text = txtStart.value * 70 / 100
End If
If txtWinLoss.Text = "1010" Then
txtBet.Text = txtBet.value * 150 / 100
End If
If txtWinLoss.Text = "1011" Then
txtBet.Text = txtStart.value * 70 / 100
End If
If txtWinLoss.Text = "1100" Then
txtBet.Text = txtBet.value * 180 / 100
End If
If txtWinLoss.Text = "1101" Then
txtBet.Text = txtStart.value * 70 / 100
End If
If txtWinLoss.Text = "1110" Then
txtBet.Text = txtBet.value * 250 / 100
End If
If txtWinLoss.Text = "1111" Then
txtBet.Text = txtStart.value * 70 / 100
End If


    
End Sub

'De verlies knop werkt het zelfde als de win knop, enkel plaatst hij een 0 in de decimale code in plaats van een 1 als men wint

Private Sub btnLoss_Click()
txtAantal.value = txtAantal.value + 1
txtWinLoss.Text = txtWinLoss.Text + "0"
    If txtAantal.value = 10 Then
    txtWinLoss.Text = ""
    txtAantal.value = 0
    txtBet.Text = txtStart.Text
    End If
    
'Bet 2
If txtWinLoss.Text = "0" Then
txtBet.Text = txtBet.value * 150 / 100
End If
If txtWinLoss.Text = "1" Then
txtBet.Text = txtBet.value * 70 / 100
End If
'Bet 3
If txtWinLoss.Text = "00" Then
txtBet.Text = txtBet.value * 190 / 100
End If
If txtWinLoss.Text = "01" Then
txtBet.Text = txtStart.value * 70 / 100
End If
If txtWinLoss.Text = "10" Then
txtBet.Text = txtBet.value * 220 / 100
End If
If txtWinLoss.Text = "11" Then
txtBet.Text = txtBet.value * 99 / 100
End If
'Bet 4
If txtWinLoss.Text = "000" Then
txtBet.Text = txtBet.value * 160 / 100
End If
If txtWinLoss.Text = "001" Then
txtBet.Text = txtStart.value * 60 / 100
End If
If txtWinLoss.Text = "010" Then
txtBet.Text = txtBet.value * 150 / 100
End If
If txtWinLoss.Text = "011" Then
txtBet.Text = txtStart.value * 80 / 100
End If
If txtWinLoss.Text = "100" Then
txtBet.Text = txtBet.value * 200 / 100
End If
If txtWinLoss.Text = "101" Then
txtBet.Text = txtStart.value * 50 / 100
End If
If txtWinLoss.Text = "110" Then
txtBet.Text = txtBet.value * 250 / 100
End If
If txtWinLoss.Text = "111" Then
txtBet.Text = txtStart.value * 100 / 100
End If
'Bet 5
If txtWinLoss.Text = "0000" Then
txtBet.Text = txtBet.value * 160 / 100
End If
If txtWinLoss.Text = "0001" Then
txtBet.Text = txtStart.value * 60 / 100
End If
If txtWinLoss.Text = "0010" Then
txtBet.Text = txtBet.value * 150 / 100
End If
If txtWinLoss.Text = "0011" Then
txtBet.Text = txtStart.value * 80 / 100
End If
If txtWinLoss.Text = "0100" Then
txtBet.Text = txtBet.value * 200 / 100
End If
If txtWinLoss.Text = "0101" Then
txtBet.Text = txtStart.value * 60 / 100
End If
If txtWinLoss.Text = "0110" Then
txtBet.Text = txtBet.value * 250 / 100
End If
If txtWinLoss.Text = "0111" Then
txtBet.Text = txtStart.value * 100 / 100
End If
If txtWinLoss.Text = "1000" Then
txtBet.Text = txtBet.value * 190 / 100
End If
If txtWinLoss.Text = "1001" Then
txtBet.Text = txtStart.value * 70 / 100
End If
If txtWinLoss.Text = "1010" Then
txtBet.Text = txtBet.value * 150 / 100
End If
If txtWinLoss.Text = "1011" Then
txtBet.Text = txtStart.value * 70 / 100
End If
If txtWinLoss.Text = "1100" Then
txtBet.Text = txtBet.value * 180 / 100
End If
If txtWinLoss.Text = "1101" Then
txtBet.Text = txtStart.value * 70 / 100
End If
If txtWinLoss.Text = "1110" Then
txtBet.Text = txtBet.value * 250 / 100
End If
If txtWinLoss.Text = "1111" Then
txtBet.Text = txtStart.value * 70 / 100
End If

End Sub
 
Laatst bewerkt:
Cowsbelieve,

Ik snap helemaal niets van je probleem.
Ten eerste geef je aan dat het om een spelletje gaat met een Dice, een dice is een engels woord voor een dobbelsteen dus
ik verwacht een variabele met zes mogelijkheden. Dit gaat echter over een binair spel waarbij 10 keer gekozen wordt tussen
winst of verlies met 2 ^10 mogelijkheden dus, ongeveer 1024 mogelijke uitkomsten.

Ten tweede begrijp ik helemaal niets van de verdeling van de winsten en verliezen, ik ga er van uit dat als je een bedrag inzet
en je verliest dat je dat bedrag kwijt bent, maar in je programma vervalt er slechts een deel!?
In de eerste stap wordt bij winst 50 % opgeteld en bij verlies 30 % verloren.
Verder stel je dat de winst / verlies berekend wordt door een formule die er niet toe doet, prima maar dat maakt het dan ook
onmogelijk om hem te programmeren. En het programmeren van de formule is de enigste mogelijkheid om de code van de
structuur te voorzien zodat je niet iedere keer door de boom heen moet.

Zou je je ook aan de programmeer conventies willen houden, bij een variabele als txtBet verwacht ik een tekst en geen
getal dit maakt je code minder goed leesbaar.

Verder heb je het over het kiezen van een willekeurig getal door het programma, dan verwacht ik iets van Random() om een
willekeurig getal tussen 0 en 100 te produceren. Ook deze kom ik in je code niet tegen.

Ik zou je graag willen helpen maar op dit moment snap ik de opgave niet, sorry

Veel Succes.
 
Je begrijpt me inderdaad niet. Ik heb het na een 7-10 uur programmeren toch kunnen uitschrijven op de lange manier.

Maar goed, het geen ik wilde programmeren bevat helemaal niet de zogezegde dice die tot 100 gaat, maar dit gebeurd in een online game zoals ik al vermeld had. De calculator zorgt er gewoon voor dat door de juiste formules na elke bet in een reeks van 10 bets dat je uiteindelijk NOOIT verlies maakt. Zelfs verlies je 7 keer en win je 3 keer heb je nog winst.

Ik weet inderdaad dat een normale dobbesteen maar 6 getallen bevat, maar dit noemt gewoon dicen omdat je voor het geluk speelt. Uiteindelijk werkt het spel zoals beschreven.

Verder heb ik het kunnen uitschrijven door elke bet een binair getal te geven. 1 is win 0 is loss. Dit zorgde voor ongeveer 2000 if codes voor elke bet.

Dit werkt gelukkig perfect, alleen koste het mij veel moeite (:

De winsten en verliezen worden als volgt berekend.

Zet je 100k in en verlies je ben je 100k kwijt. Win je krijg je zonder commissie 200k, met een commissie van 1% bv 198k omdat1% van 200k natuurlijk 2k is, wat er dus ook van afgetrokken word (;
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan