Oppure

Loading
27/01/12 10:21
mastergov
allora salve a tutti sto facendo un gioco di poker cosi per scopo didattico
ho un problema per verificare i punteggi delle carte che ho in mano e quelle sul banco, ora in realtà non so nemmeno se sono sulla giusta strada visto che cmq ho delle conoscenze base del linguaggio quindi sono sempre un po primitivo.

allora ho memoria(2 to 6) che sono le carte che sono al flop (quelle sul tavolo)
e memoria(7 to 8) che sono le carte del player 1 quindi le carte da confrontare con memoria(2 to 6) io avevo pensato cosi

 
dim memoria(1 to 9)
dim arg as integer 
dim df as variant 
dim id as integer 
dim xc as variant 

For arg = 7 To 8   ' ciclo che mi richiama le carte che ho in mano 
                      
                      xc = memoria(arg)
                      df = Mid(xc, 2)   ' restituisce il punto della carta senza il seme
                
                       for id = 2 To 6 ' controlla se ci  sono uguaglianze all'interno dei vettori 
          
                       If memoria(arg) = memoria(id) Then
                       punti_player_uno = punti_player_uno + 1
                       End If
                       
                       
                       Next id
                       
                      ' Debug.Print cv
                        
                        If df = cv Then
                        Label3.Caption = coppia
                        End If
                        
                       
                       
                       Next arg
                       ' punti_player_uno = 0
                       
                      
                     Debug.Print punti_player_uno
                     
       
       
      Next

punti_player_uno = 0


 


non capisco perchè non mi funziona il confronto e nella debug.print
ho sempre esempio (chiaramente non sempre i soliti numeri) pero mi da cosi :

12 6
d5 h6

possibile?
eppure ho solo un debug.print che chiama df, cv e punti_player_uno a volte 0 e a volte 40

avete qualche dritta?
grazie a tutti ciao
aaa
27/01/12 19:19
pierotofy
Verificare i punteggi per un gioco del poker non e' cosi' semplice; devi pensare a tutte le possibili mani che possono essere fatte. Solitamente comincieresti dal punteggio piu' alto possibile (una scala reale) e andare verso il basso, perche' nel momento in cui trovi una scala reale sai che automaticamente quello e' il punteggio piu' alto. Se parti da una coppia, non saprai se oltre ad una coppia magari hai un tris o una doppia coppia. Solitamente devi prendere le carte del flop e combinarle con le carte che hai in mano, dopodiche' (in una routine) vedere se c'e' una scala reale. Poi controlla se c'e' un poker. Ecc. Calcolare le scale sara' la parte piu' complessa, perche' ci sono casi speciali come l'asso che puo' essere considerato 1 oppure 13.

Puoi guardare il mio codice di PokerMuck in C# per avere un'idea. pokermuck.com
Il mio blog: piero.dev