[VB6] p_PoKer - Projecto de poker em construção

deixem-se de purismos.:002: iria-se perder, o quê, 5ms? menos?
Se é a forma mais correcta? não. mas é muito mais pratica: deixa de existir o algoritmo de "baralhar" para passar a existir uma instrução SQL.

Less code = better code


Foi só um bitaite.
cumps ;)
 
Não quero mesmo desviar a discussão, mas farias realmente isso?
Para shuffling, basta um algoritmo simples como aquele. O facto de não o programares tu mesmo pode-te poupar trabalho, mas ele continua lá (ainda que seja no engine da BD), mais uma quantidade enorme de coisas que acabas por não usar. É um desperdício de recursos para uma tarefa muito simples.
Basta executar esse código 10000 vezes num loop para perceberes o quanto o acesso a uma BD pode custar ;)

Pelo menos eu nunca faria isso numa situação real. Talvez fizesse para aprender alguma coisa (já que desconhecia essa forma de trabalhar), mas nunca para pôr em uso na prática.
 
Less code = better code

nem sempre.
tu apenas escreves menos código, não quer dizer que o programa vá realmente usar menos código ou que seja mais eficiente. e neste caso também não vejo necessidade de usar BD
além disso, pelo que percebi, o user está a aprender, por isso só lhe faz bem pensar um bocadinho para adaptar aquela função de shuffle
 
Penso não ser boa ideia usar aqui BD's, não por questões de tempo etc.. mas sim porque me parece que ele está a começar a aprender por isso é melhor aprender a pensar e fazer código, pode até nem ficar bonito na primeira vez mas é assim que se começa. . . depois sim pode dar umas vistas de olhos em códigos feitos, modificar etc.. até meter como o armadillo gosta :D

cumpzz
 
meu deus lol até me assutei com as novas post neste thread. Não estou conmfortavel com bds em vb6 ;) vou seguir o que o Kayvlim me aconselhou ;)

Abraço a todos amanha digo qualquer coisa
 
A menos que queiras que por cada vez que ligas o programa ele baralhe exactamente da mesma forma, sim, é melhor pôres :P
 
Código:
A menos que queiras que por cada vez que ligas o programa ele baralhe exactamente da mesma forma, sim, é melhor pôres

lol axo que nao quero isso.

Depois de estar quase este tempo todo a estudar o teu código consegui entendê-lo graças às tuas ajudas(sim, sou um aluno babado ;) ) em outros tópico iniciados também por mim e consegui também escrevê-lo sozinho SEM COPIAR ;)
Fiquei pasmado ao olhar para uma coisa tão simples e tão curta que eu estava a complicar tanto lol:

Código:
Private Sub Command2_Click()
    List2.Clear
    
        For i = 1 To 4
        Randomize
        value = CInt(Int((4 * Rnd()) + 1))
    
            If i = 1 Then List2.AddItem value: v(1) = value
    
            If i = 2 Then
                    Do
                        value = CInt(Int((4 * Rnd()) + 1))
                    Loop While value = v(1)
        
                List2.AddItem value
                v(2) = value
            End If
    
            If i = 3 Then
                    Do
                        value = CInt(Int((4 * Rnd()) + 1))
                    Loop While value = v(1) Or value = v(2)
        
                List2.AddItem value
                v(3) = value
            End If
    
            If i = 4 Then
                    Do
                        value = CInt(Int((4 * Rnd()) + 1))
                    Loop While value = v(1) Or value = v(2) Or value = v(3)
        
                List2.AddItem value
            End If
        Next i
End Sub

Parece que ainda vos vou xatear mais um pouco neste projecto, vou levá-lo até ao fim e qualquer outra dúvida sobre o mesmo, voltarei a postar neste tópico.

Obrigado pela atenção
Abraços a todos!!!
;)
 
Última edição:
Tenta fazer o seguinte...
Tens as cartas todos num array ou colecção.
Geras um numero aleatorio de 1 a 52 e vais buscar exactamente a carta que está nessa posição.
Geras depois de 1 a 51 ... 50.... sempre a ir buscar a carta na posição gerada aleatoriamente.

Vais colocando noutro array ou colecção...

No fim tens as cartas completamente baralhadas...
 
Concordo absolutamente com OptimusSupremo. Não seja ele doutro planeta. lol imagina isto tens duas listas uma que é o baralho em si e outra que é lista com que queres jogar... crias um método que tem uma lista temp para onde fazes uma copia da lista do baralho base. a essa temp fazes um random e ele escolhe uma carta do baralho baseado no numero de elementos da lista temp ao efectuar esse random removes da lista temp essa carta e colocas a "carta" na lista jogável e processo repetesse até ficares sem cartas na lista temp e repara que fazes uma especie de random dinamico... pk? pk a escolha da carta(Random) é baseada no numero de elementos da lista. se acrescentares novas cartas imagina um jogo com dois baralhos este processo vai permitir que "embaralhes" quantas cartas quiseres... Espero não ter sido muito confuso
 
tal como prometido aqui estou eu de novo agora com uma questao diferente:

Semttulo-1.jpg


Gotaria de saber a melhor maneira de "pegar" nas cartas da lista (em texto) e fazê-las aparecer em imagem (já tenho as imagens de todas as cartas correspondente a cada carta/naipe) no respectivo lugar em que vai aparecer.

Obrigado pela atenção
Abraços
 
não, não é isso, entao é o seguinte:

Tenho um baralho ja baralhado numa listbox e quero por exemplo pegar na primeira carta (a do topo do baralho) e pô-la numa das picturebox. Eu só quero saber mesmo qual será a melhor forma para o fazer (automaticamente).

Abraços espero ter-me feito entender
 
o ideal aí será gerares as cartas em run-time, ou seja, dentro duma picturebox, ires criando outros elementos (os naipes, os numeros, etc) dentro da 1ª (vê a propriedade parent (acho que é esta que vais precisar...)
 
exactamente mas o problema é que estou a pensar ter as imagens das cartas no programa em vez de as ter no disco, é como se tivesse 52 picturebox, mas sekalhar estou a complicar não?
 
basicamente, vais "desenhar/construir" as tuas cartas.
Ou seja, vais precisar de 4 images (uma para cada naipe).
Com um exemplo, a ver se te explico melhor:

Caso: 1ª carta é um 2 de paus
Código:
Global i=0

Funcao TuaFuncao
   CriarCarta("paus", "2")
Fim Funcao




Funcao CriarCarta(naipe, valor)
i=i+1
Criar PictureBox(i+1)
Para x=1 to valor fazer
   criar image(count).nome=i & x
   image(count).parent=PictureBox(i)
   image(count).imagemorigem=apppath & naipe & ".bmp"
   'adicionar codigo da treta para colocar os naipes no sitio.
   mostrar PictureBox(i);
fim para

Fim Funcao
agora é traduzir isto para VB :-)
 
Última edição:
Isso era se ele tivesse as imagens todas no disco.
Mas, WinAce_Boy, isso é mesmo o melhor a fazer! É que se tiveres as imagens todas no programa, ele fica pesado e nem podes customizar as cartas :D.
Precisarias de 52 pictures, cada uma já com a carta definida em design time, para que não viesses a precisar das imagens externas.

É mesmo melhor fazeres tudo com as imagens no disco, como o Armadillo mostrou.
 
Back
Topo