[VB6] Bijhouden positie speelkaarten (was:Plaatje herkennen)

Pagina: 1
Acties:

  • osp
  • Registratie: Maart 2005
  • Laatst online: 28-10-2021
Dag allen,

ik ben na lange tijd weer begonnen met VB en wou een kaartspel maken.
Wat heb ik al:
  • 52 afbeeldingen met namen "0 to 51.bmp". Deze zitten in een imagelist
  • Een speelbord met 52 imagboxes waar Drag&Drop op mogelijk is.
  • Een code om de kaarten willekeurig uit te delen (in patroon van 4-4-5
  • Een code om via dubbelklik op de kaart, de kaart naar de tafel te verplaatsen
Waar loop ik nu tegenaan:
Ik wil nu dat de andere spelers (cpu) gaan reageren op mijn gespeelde kaart. Echter moet ik daarvoor weten welke kaart ik speel en daar loop ik vast. Ik kom er maar niet achter hoe ik dat moet aanpakken.

Mijn code:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Option Explicit
Private Sub Command1_Click()

Dim X As Integer
Dim Y As Integer
Dim i As Integer
Dim j As Integer

Dim Kaart(1 To 52)
Dim Speler As Variant
    Speler = Array(Hand1, Hand2, Hand3, Hand4)

Dim PatroonA As Variant
    PatroonA = Array(0, 4, 8)
Dim PatroonB As Variant
    PatroonB = Array(3, 7, 12)

For j = 0 To 2                              'Uitdelen in volgende volgorde: 4-4-5
    For i = 0 To 3                          'Speler 1 - 4 kiezen
        For Y = PatroonA(j) To PatroonB(j)  'Kaarten in de hand
            Randomize
            X = Int(51 * Rnd) + 1           'Random getal genereren
            
            While Kaart(X) = True           'Controleren of kaart al is geweest
                X = X + 1                   'Zo ja, dan 1 kaart verder
                If X > 52 Then X = 1        'Bij laatste kaart terug naar kaart 1
            Wend
            
            Set Speler(i)(Y).Picture = Kaartenbak.ListImages(X).Picture
            Kaart(X) = True                 'Kaart op "geweest" zetten
        Next Y
    Next i
Next j

End Sub
Private Sub Hand1_DblClick(Index As Integer)
   
    If Hand1(Index).Picture <> Empty Then
        TafelKaart(0).Picture = Hand1(Index).Picture
        Hand1(Index).Picture = Nothing
        'code voor de andere spelers
    Else
        MsgBox "Geen kaart aanwezig"
    End If
    
End Sub

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Maak een class die een kaart voorstelt. Die class heeft een aantal properties , en aan de hand van die properties kan je weten welke kaart dit is. (Bv een property die aangeeft of het om harten, klavers, etc... gaat, en een property die het getal aangeeft.) En dan nog een property die de afbeelding bepaald die moet getoond worden.

https://fgheysels.github.io/


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je kunt toch bijhouden welke kaart waar staat en dus waar op geklikt wordt :? Kwestie van een array-tje of voor mijn part een collection ofzo bijhouden. En natuurlijk wat whoami zegt.

[ Voor 9% gewijzigd door RobIII op 15-05-2007 11:33 ]

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


  • osp
  • Registratie: Maart 2005
  • Laatst online: 28-10-2021
De afbeeldingen worden allemaal wel geladen, dat gaat goed.
Is er hier een tutorial over classes want die snap ik niet zo goed, maar ik leer snel :)

  • sanzut
  • Registratie: December 2006
  • Laatst online: 01:49

sanzut

It's always christmas time

Volgens mij staat er op heel GoT/tweakers geen een tutorial, of kijk ik er dan gewoon altijd over heen?

  • osp
  • Registratie: Maart 2005
  • Laatst online: 28-10-2021
Ik kon er zelf ook geen vinden en vroeg het daarom ook :)
Scheelt een boel vragen...

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Neem een willekeurig VB6 boek of google eens wat :?

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


  • osp
  • Registratie: Maart 2005
  • Laatst online: 28-10-2021
Trust me, genoeg gegoogled afgelopen 2 dagen, maar niet echt iets duidelijks. En boeken, heb bij de bieb een boeke geleend maar daar stond niets in over classes. Was dan ook een beginnersboek...
Tnx anyway, ik ga verder zoeken.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Volgens mij is, als je verder kijkt dan je neus lang is, mijn eerste hit al aardig raak hoor?

http://edais.mvps.org/Tutorials/Classes/index.html
http://edais.mvps.org/Tutorials/AdvClass/index.html

[ Voor 15% gewijzigd door RobIII op 15-05-2007 11:57 ]

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


  • osp
  • Registratie: Maart 2005
  • Laatst online: 28-10-2021
Ja, stupid van mij. Ik zocht ook op afbeeldingen en classes...
Bedankt :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Probeer trouwens, waar mogelijk, zo spoedig mogelijk over te gaan naar VB.Net (ook gratis versies van te downen, dus dat is geen excuus). VB6 biedt nogal brakke en maar deels geïmplementeerde OO mogelijkheden en voor je het weet zit je er zo in vast geroest en heb je een aantal dingen verkeerd aangeleerd.

Don't get me wrong, ik heb zelf jaren in VB6 gewerkt (en neig er voor quick'n'dirty projectjes nog wel eens naar :P ) en indertijd was het best een aardig product; anno 2007 is er echter niet echt een goed excuus meer om er nog mee te (gaan) werken.

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


  • osp
  • Registratie: Maart 2005
  • Laatst online: 28-10-2021
Tnx voor de tip. Inmiddels gedownload en geinstalleerd. Ziet er veel beter uit!
Ga het projectje opnieuw daarin bouwen, maar moet nog flink wat bijleren merk ik al. Code is niet helemaal hetzelfde...

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
osp schreef op dinsdag 15 mei 2007 @ 14:10:
Tnx voor de tip. Inmiddels gedownload en geinstalleerd. Ziet er veel beter uit!
Ga het projectje opnieuw daarin bouwen, maar moet nog flink wat bijleren merk ik al. Code is niet helemaal hetzelfde...
Inderdaad snel anar VB6, ik maakte laatst nog een voor mij groot project in VB6 en toen kwam ik op een gegeven moment op 64kb aan variabelen die tegelijkertijd open stonden (64in 1 sub of 64k in 1 sub en nog wat globals) en tsja dan zegt de compiler poef!

(known bug volgens ms!)

En ja das kut als je 1Gb geheugen hebt! en je kan max 64kb non-static variabeleln tegelijkertijd aanspreken!

[ Voor 0% gewijzigd door roy-t op 16-05-2007 14:00 . Reden: typo ]

~ Mijn prog blog!

Pagina: 1