miten saisin tehtyä pokeripeliin voittojärjestelmän (ja tuplauksen), peli toimii muuten erittäin hyvin (paitsi ilman voittoja), kortit jakaa ruudulle randomgeneraattori joka lataa kuvat resource tiedostosta randomilla valitun id:n mukaan...
VB4.0 PRO + WIN98 SE
Tarkistat vain, että jos löytyy kaksi samaa korttia, on kyseessä pari, tai jos löytyy kolme samaa niin kolmoset, jne. Näiden totetus voi aluksi olla mutkikasta, mutta ne kannattaa kuitenkin yrittää keksiä itse. Mutta jotta pääset alkuun, niin pari voidaan etsiä vaikka seuraavasti:
'oletetaan, että kortteja on viisi 'oletetaan, että kortit on tallennettu kortti-taulukkoon. For a = 1 TO 5 For b = 1 TO 5 If kortti(a) = kortti(b) And a <> b Then Print "LÖYTYI SAMA!" Next b Next a
Edit: Epähuomios tuli ensin QB-tagit.
Tässä yksinkertainen, tarkistus aliohjelma, olen käyttänyt sitä omassa... ohjelmssa. tää PL!Card(I) on oma kontrolli, mutta voit käyttää tilalla Integer-taulukkoa. otat vain pois PL! -osan alusta...(Form)
Esim:
Type CardType
Value as Integer
Suit as Integer
end type
Dim Card(0 to 4) as CardType '5 Pelikorttia
Dim Deck(1 to 52) as CardType '52 Korttia KorttipakkaanAlkuperäinen koodi.
Sub TarkistaVoitot()
Dim N%, N1%, PP%
'Neljä samanlaista
S4 = 0
For I = 0 To 1
If S4 <> 4 Then S4 = 0
For J = I To I + 3
If PL!Card(I).Value = PL!Card(J).Value Then S4 = S4 + 1
Next J
If S4 = 4 Then Exit For
Next I
If S4 <> 4 Then S4 = 0
'Kolme Samanlaista
S3 = 0: N = 0
For I = 0 To 2
If S3 <> 3 Then S3 = 0
For J = I To I + 2
If PL!Card(I).Value = PL!Card(J).Value And S3 < 3 Then
S3 = S3 + 1
N = PL!Card(I).Value
End If
Next
Next
If S3 <> 3 Then N = 0
If S3 <> 3 Then S3 = 0
'Kaksi Samanlaista
S2 = 0: N1 = 0
For I = 0 To 3
If S2 <> 2 Then S2 = 0
For J = I To I + 1
If PL!Card(I).Value = PL!Card(J).Value And PL!Card(I).Value <> N And S2 < 2 Then S2 = S2 + 1: N1 = PL!Card(I).Value
Next
Next
If S2 <> 2 Then S2 = 0
S1 = 0
N = 0
For I = 0 To 3
If S1 <> 2 Then S1 = 0
For J = I To I + 1
If PL!Card(I).Value = PL!Card(J).Value And PL!Card(I).Value <> N1 And S1 < 2 Then S1 = S1 + 1
Next
Next
If S1 <> 2 Then S1 = 0
'Onko Suora?
Suora = True
'Normaali suora Ilman jokeria.
For I = 0 To 3
If PL!Card(I).Value + 1 <> PL!Card(I + 1).Value Then Suora = False
Next I
'sort in, 0, 4
'Onko Kaikki samaa maata?
Väri = True
For I = 1 To 4
'Jos ei ole samaa maata
If PL!Card(I).Suit <> PL!Card(0).Suit Then
Väri = False
Exit For
End If
Next
End SubTuo on tosiaan aika kattava koodi. Eri korttiryhmien tarkistukset voisi olla kätevintä pistää kaikki omiin funktiohinsa. Voisi kutsua vain kätevästi:
If Pari Then Print "Pari" If Kolmoset Then Print "Kolmoset" If Suora Then Print "Suora" 'jne...
Ite tein joskus C:llä pokerin ja voiton tarkastukset oli kiva koodata :-)
Kannattaa miettiä tarkastus järjestystä, että tulee hyvä koodi, eikä kone tee turhaa työtä :-)
Esim jos on pari, niin ei tartte tarkastaa onko suoraa tai väriä jne.
Mä taas tein noi tarkistukset yhteen funktioon. Tarkastus alko epätodennäköisimmästä (värisuora) ja päätty kahteen pariin. Jos löyty vaikka suora, niin sitten hypättiin pois funktiosta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.