Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Miguel Gomes

Jogo de Damas em Visual basic 10

Recommended Posts

Miguel Gomes

Boas pessoal,

Gostaria de saber como podemos fazer com que as peças se movam e comam quando necessário, uma vez que não te estou a conseguir fazer...

Alguém que me dê uma ajudinha aii.

Com os melhores Cumprimentos

Miguel Gomes

Share this post


Link to post
Share on other sites
thoga31

Onde estás com dúvidas? Algum código também ajudaria sempre um pouco, também. ;)


Knowledge is free!

Share this post


Link to post
Share on other sites
Miguel Gomes

Boas,

eu pretendia que ao comer uma peça, queria que fizesse uma função que procurava se tinha mais uma peça adiante e aí podia comer outra peça, e rodava outra função para ver se tem outra, etc. O problema e que estou a dar valor as peças e tenho de poupar codigo, por exemplo:

Public Class base
    Dim pecanu As Image
    Dim pecabr As Image
    Dim pecaaz As Image
    Dim pecarbr As Image
    Dim pecaraz As Image
    Dim ant As Integer



    Private Sub val_pecas()
        image_pec()
        t1.Image = pecaaz
        t2.Image = pecaaz
        t3.Image = pecaaz
        t4.Image = pecaaz
        t5.Image = pecaaz
        t6.Image = pecaaz
        t7.Image = pecaaz
        t8.Image = pecaaz
        t9.Image = pecaaz
        t10.Image = pecaaz
        t11.Image = pecaaz
        t12.Image = pecaaz
        t13.Image = pecanu
        t14.Image = pecanu
        t15.Image = pecanu
        t16.Image = pecanu
        t17.Image = pecanu
        t18.Image = pecanu
        t19.Image = pecanu
        t20.Image = pecanu
        t21.Image = pecabr
        t22.Image = pecabr
        t23.Image = pecabr
        t24.Image = pecabr
        t25.Image = pecabr
        t26.Image = pecabr
        t27.Image = pecabr
        t28.Image = pecabr
        t29.Image = pecabr
        t30.Image = pecabr
        t31.Image = pecabr
        t32.Image = pecabr
    End Sub

    Private Sub image_pec()
        pecaaz = pecaazul.Image
        pecabr = pecabranca.Image
        pecaraz = pecarazul.Image
        pecarbr = pecarbranca.Image
        pecaraz = pecarazul.Image
        pecarbr = pecarbranca.Image
        pecanu = pecanula.Image
    End Sub

    Private Sub newgame_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles newgame.Click
        val_pecas()
    End Sub


    /apenas está aqui a sobre a peça de tabuleiro nº6, sobre a peça branca

    Private Sub t6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles t6.Click
        If ant = 1 Then
            If t1.Image Is pecaaz Then
                t6.Image = pecaaz
            ElseIf t1.Image Is pecaraz Then
                t6.Image = pecaraz
            End If
            t1.Image = pecanu
        ElseIf ant = 2 Then
            If t2.Image Is pecaaz Then
                t6.Image = pecaaz
            ElseIf t2.Image Is pecaraz Then
                t6.Image = pecaraz
            End If
            t2.Image = pecanu
        End If
        ant = 6
    End Sub

Caso não tenhas reparado sou iniciante em visual studio 10

Tentei fazer em arrays para facilitar e diminuir o codigo, mas tive um erro e tentei fazer desta forma, mas não quero repetir o codigo e meter-lo em todas as peças de tabuleiro.

Obrigado pela ajuda :)

Share this post


Link to post
Share on other sites
ribeiro55

Abandona esta abordagem.

Fala-nos antes, dos problemas que encontraste quando tentaste utilizar arrays, pois esses é que vale a pena tentares resolver.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
Miguel Gomes

Ola novamente

Desculpem não ter aparecido por aqui para dar respostas, mas consegui resolver os problemas dos arrays e avançar no projecto.

Agora estou com outro problema, nao sei como fazer para mover a dama.

Bem, o problema é que quero, por exemplo, subir diagonalmente 3 casas, e tenho de ver se as casas pelo caminho estão com pecas brancas ou pretas, damas ou nulas.

E por isso tenho de desenvolver com o "for", mas a função em vez de ver a coordenada x+1 e y+1, x+2 e y+2, etc. Mas percorre todas as casas ate aquele valor.

o que desenvolvi:

For Me.x = x_ant To x
            For Me.y = y_ant To y
                If pecas(y_ant * 4 + x_ant) IsNot pecanul.Image Then
                    Exit Sub
                End If
            Next
Next
pecas(y * 4 + x) = pecadaz.Image
pecas(y_aux * 4 + x_aux) = pecanul.Image

ainda não está acabado, porque falta identificar a peça que irá comer, mas penso que da para ver a ideia.

Obrigado

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.