Toon posts:

[VB6] Hold-buttons fruitmachine

Pagina: 1
Acties:
  • 180 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
****

[ Voor 144% gewijzigd door Verwijderd op 28-04-2006 15:50 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Zorg er simpelweg voor dat er voor elk slot een boolean is, en wanneer deze true is, dient de randomize van dat ene slot niet te gebeuren. Gewoon een kwestie van een variabele aanmaken en daarop controleren met een if. Lijkt me niet zo'n heel erg lastig concept als je wel al een hele fruitmachine gemaakt hebt? ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 09:28

Super_ik

haklust!

de buttons hebben een optie dat ze pressed blijven, weet zo niet meer precies hoe die heet.
verder heb je voor images nog een speciaal ding(ook naam kwijt) waarin je alle plaatjes kunt opslaan.

en voor je probleem:
if(not(hold1.value=pressed)) then slot1.picture = blablabla

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Verwijderd

Topicstarter
*

[ Voor 100% gewijzigd door Verwijderd op 28-04-2006 15:51 ]


  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01-2025

Lorn

I have a bad feeling...

Ja, alleen een standaard CommandButton in VB6 heeft helemaal niet de mogelijkheid om ingedrukt te blijven...

Gewoon met een Boolean oplossen lijkt me het handigst.
Visual Basic:
1
2
3
4
5
6
7
8
9
Dim blnHoldWheel As Boolean

Private Sub cmdHoldWheel_Click()
  blnHoldWheel = not blnHoldWheel
End Sub

Private Sub Start_Click()
  If Not blnHoldWheel Then slot1.Picture = LoadPicture(App.Path & "\" & Int(Rnd * 5) + 1 & ".bmp")
End Sub

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 09:28

Super_ik

haklust!

en de togglebutton is die ook niet standaard? in word wel zo te zien

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01-2025

Lorn

I have a bad feeling...

Ik heb 'em in VB niet gezien maar er zal beslist wel een OCX zijn die je kunt gebruiken waar wel zo'n component in zit.

Verwijderd

Topicstarter
X

[ Voor 100% gewijzigd door Verwijderd op 28-04-2006 15:51 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

En wat denk je dan dat blnHold1 = blnHold1 moet doen? :?

Als je op start duwt moet je gewoon zorgen dat de hold-variabelen allemaal op false staan. Hoe dat moet kun je vast zelf wel verzinnen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Tweede variabele aanmaken met daarin true/false of het de eerste of tweede spin is.
dus:

Als 'eerstespin' = waar dan reset alle holdvariabelen naar false...
else de rest van je verhaal

  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 22-02 18:18
FF tussendoor. Je bent niet echt slim bezig nu.. Het is leuk dat je zometeen de plaatjes werkend heb, maar de prijzen is waar een slot machine omdraait.

Wat ik wil zeggen..

Doe het bv op deze fiets..

INIT:
code:
1
2
String appPath = App.Path & "\" 
String picExt = ".bmp"


CODE:
code:
1
2
3
int Rol1 =    Int(Rnd * 5) + 1
int Rol2 =    Int(Rnd * 5) + 1
int Rol3 =    Int(Rnd * 5) + 1


Dan bv:
code:
1
2
3
slot1.Picture = LoadPicture( appPath & Rol1 & picExt)
slot2.Picture = LoadPicture( appPath & Rol2 & picExt)
slot3.Picture = LoadPicture( appPath & Rol3 & picExt)


Dan kun je later gaan kijken (neem aan dat je geen 3x3 winlijnen heb) makkelijker kijken of er een prijs is gevallen.

Prijzen check:
code:
1
2
3
4
5
6
7
8
9
if ( Rol1 == Rol2 AND Rol1 == Rol3 ) then
String prijs = getPrijs ( Rol1, 3 )  // 3 gelijke symbolen.   Amount wordt 3 voor getPrijs functie
................overige code
end if

if ( Rol1 == Rol2 AND Rol1 != Rol3 ) then
String prijs = getPrijs ( Rol1, 2 )  // 2 gelijke symbolen.   Amount wordt 2 voor getPrijs functie
................overige code
end if


Functie getPrijs
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function getPrijs (Rol as String, Amount as int)

if  ( Rol == 1 ) then
if (Amount == 2) then return "500" // Prijzen geld voor 2 bars
if (Amount == 3) then return "1500" // Prijzen geld voor 3 bars
end if

if  ( Rol == 2 ) then
if (Amount == 2) then return "400" // Prijzen geld voor 2 bellen
if (Amount == 3) then return "1250" // Prijzen geld voor 3 bellen
end if

ENZ.....

end function


Heb ik geen tijden meer geprogrammeerd in Visual Basic 6, dus syntax kan niet kloppen.. Hoop dat je het idee snapt.. Het is btw belangrijk je code overzichtelijk te houden O-)

[ Voor 31% gewijzigd door mrFoce op 06-04-2006 20:38 ]


Verwijderd

Topicstarter
x

[ Voor 100% gewijzigd door Verwijderd op 28-04-2006 15:51 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Verwijderd schreef op donderdag 06 april 2006 @ 20:32:
Tweede variabele aanmaken met daarin true/false of het de eerste of tweede spin is.
dus:

Als 'eerstespin' = waar dan reset alle holdvariabelen naar false...
else de rest van je verhaal
Lijkt me een beetje onzinnig. Zie mijn vorige post. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 22-02 18:18
Verwijderd schreef op donderdag 06 april 2006 @ 20:39:
Ok ok, ik snap het nu al wat beter.
Maar gideon

Dit was ik al mee bezig

if ( Rol1 == Rol2 AND Rol1 == Rol3 ) then
String prijs = getPrijs ( Rol1, 3 ) // 3 gelijke symbolen. Amount wordt 3 voor getPrijs functie

alleen dan zonder de
String appPath = App.Path & "\"
String picExt = ".bmp"

Alleen heb ik dus 5 plaatjes, 2 voorbeelden hiervan zijn een kers en een klok
En als je 3 kersen heb krijg je 10x je inzet
en met 3 klokken krijg je 20x je inzet
dus dat rol1 ==Rol2 dat is dan toch niet van toepassing?
Just trying to help.. En dat je 5 rollen heb bleek niet uit de voorbeeld code die je gepost heb..

Maar go on :D

Verwijderd

Topicstarter
x

[ Voor 122% gewijzigd door Verwijderd op 28-04-2006 15:51 ]


  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01-2025

Lorn

I have a bad feeling...

Heb je al eens overwogen om een control array te maken van je plaatjes? Je kunt dan ook van de variabelen voor de Hold-buttons een array maken. Mocht het ooit een rage worden om fruitautomaten met 4 rollen te maken (om maar een dwarsstraat te noemen) dan heb je dat in no time aangepast.

Verwijderd

Topicstarter
x

[ Voor 100% gewijzigd door Verwijderd op 28-04-2006 15:51 ]


  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01-2025

Lorn

I have a bad feeling...

Ik heb gekeken naar je nieuwe code fragment maar het is me niet duidelijk hoe het zou moeten werken. Ik heb ook het idee dat routines er maar voor de helft staan. Als je een wat duidelijker beeld weet te schetsen van de situatie dan help ik graag verder.

  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 22-02 18:18
Lorn schreef op dinsdag 11 april 2006 @ 20:45:
Ik heb gekeken naar je nieuwe code fragment maar het is me niet duidelijk hoe het zou moeten werken. Ik heb ook het idee dat routines er maar voor de helft staan. Als je een wat duidelijker beeld weet te schetsen van de situatie dan help ik graag verder.
dito, zie wel dat je in de start post maar een enkele = gebruikt, wat 'SET' is. Jij wilt de 'equilivent' (of hoe je t ook spelt) hebben wat -> == <- ( gelijk aan) betekend

Maar wat nou pcies je edit is, geen idee

[ Voor 8% gewijzigd door mrFoce op 11-04-2006 21:47 ]


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 16:05

NetForce1

(inspiratie == 0) -> true

Ik gok dat dit de nieuwe code is:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Form_Load()
intRol1 = Int(Rnd * 5) + 1                            
intRol2 = Int(Rnd * 5) + 1
intRol3 = Int(Rnd * 5) + 1

Private Sub Prijzen()
pKers = (App.Path & "\" & "Pictures/" & "3.bmp")      [b]'locatie waar de kers zich bevind'[/b]

Private Sub CheckWin()
If (intRol1 = pKers And intRol2 = pKers And intRol3 = pKers) Then
intWin = intBet * 10
End If
End Sub

Het lijkt me duidelijk dat dit niet gaat werken. Je test hier of de waarde van intRoln (een getal) gelijk is aan de waarde van pKers (het pad naar je plaatje).
Je kunt volgens mij beter een array van Fruit-objecten maken waarin je bijv. de locatie van het plaatje, en de winst-multiplier opslaat. Je check-win wordt dan iets in deze geest:
Visual Basic:
1
2
3
4
5
Private Sub CheckWin()
    If (intRol1 = intRol2 And intRol2 = intRol3) Then
        intWin = intBet * fruitObjects[intRol1].getMultiplier()
    End If
End Sub

Als je echter ook diagonale winst-lijnen wilt wordt het ietsje ingewikkelder.

[ Voor 5% gewijzigd door NetForce1 op 11-04-2006 22:49 ]

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Verwijderd

Topicstarter
x

[ Voor 100% gewijzigd door Verwijderd op 28-04-2006 15:51 ]


  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 22-02 18:18
in
Verwijderd schreef op woensdag 12 april 2006 @ 00:14:
Hallo

Dit is dus mijn start.command code (vergeten te editten)

code:
1
2
3
4
5
6
7
Private Sub Start_Click()


Randomize
If Not blnHold1 And Not blnCheat Then slot1.Picture = LoadPicture(App.Path & "\" & "Pictures/" & intRol1 & ".bmp")
If Not blnHold2 And Not blnCheat Then slot2.Picture = LoadPicture(App.Path & "\" & "Pictures/" & intRol2 & ".bmp")
If Not blnHold3 And Not blnCheat Then slot3.Picture = LoadPicture(App.Path & "\" & "Pictures/" & intRol3 & ".bmp")


en
[...]


als ik If (intRol1 == intRol2) deed gaf hij het rood aan, dus heb ik er 1 = van gemaakt.

Ik ben geen professional in visual basic en dat is volgens mij ook wel te merken, maar ik heb toch al verschillende dingen geprobeerd en kom er gewoon niet uit.
in VB6 is het inderdaad maar 1 =.. foutje van mij :+ Maar al tijden geen vb6 code meer gezien.

Ik weet niet precies wat er niet goed werkt aan jou code boven, aangezien je het probleem niet vermeld heb. En evenuele compiler fouten ..
Maar probeer dit is
code:
1
2
3
4
Randomize()
If blnHold1 = false And blnCheat = false Then slot1.Picture = LoadPicture(App.Path & "\" & "Pictures/" & intRol1 & ".bmp")
If blnHold2 = false And blnCheat = false then slot2.Picture = LoadPicture(App.Path & "\" & "Pictures/" & intRol2 & ".bmp")
If blnHold3 = false And blnCheat = false Then slot3.Picture =  LoadPicture(App.Path & "\" & "Pictures/" & intRol3 & ".bmp")
Ervan uitgaande dat het booleans zijn

[ Voor 16% gewijzigd door mrFoce op 12-04-2006 00:48 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Effe niet de hele draad gelezen, mijn excuses daarvoor. Maar met CTRL-F op "checkbox" vond ik niks ;)
Je kunt de style van een checkbox wijzigen naar button, waardoor het een button wordt met 2 states; ingedrukt en "normaal" :Y) Ken uw tools menschen :P

Ow, verder is het gebruik van control-arrays uiteraard wel handig hier, evenals het uitsplitsen naar wat losse subjes (methods) die dan met die control uit die array aan de slag gaan. Tot slot zijn een aantal private form variabelen (of beter een array) waarin je de "picture-id" van iedere picturebox bijhoudt wel handig als je "plaatjes" wil vergelijken (kwestie van id's comparen uit de array). En tot slot zou ik hier eigenlijk een class-je voor bouwen...

/edit1:
<zucht> en nou kan ik het ook niet meer laten ook, momentje, ik ben zo terug :P

/edit2:
Hier een voorbeeldje (VB6, Zipped, 22Kb) met voldoende code om zelf iets er van te kunnen leren of maken. Dit is geenszins wat jij probeert te doen (noch heb ik daartoe een poging gedaan, want halverwege de draad ben ik je kwijt (evenals een aantal andere posters)), maar het leert je wel (voor VB6 begrippen :P ) redelijk leesbare en structurele code te schrijven. Het class-je ging me te ver voor dit tijdstip ;) Hierin zit voldoende code en voorbeeld stukjes aan de hand waarvan je je eigen code zou moeten gaan begrijpen.

Overigens, maar da's een beetje offtopic, heb ik nooit een zak begrepen van "Fruitmachines". Vind het altijd maar vaag spul :+

offtopic:
Way offtopic: Sinds de splitsing van /14 naar /14, /86 en /87 ben ik opeens stukken minder met (dev/tech)-posts bezig... Toch wel jammer... Toch maar eens wat aan gaan doen, voor je het weet kennen ze je niet meer anders als een HK meubel...

[ Voor 116% gewijzigd door RobIII op 12-04-2006 02:49 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1