Ir para o conteúdo
  • 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

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.