Ir ao conteúdo
  • Cadastre-se

C# 'A referência de objecto não foi definida como uma instância de um objecto


_rsd_17

Posts recomendados

estou a criar um metodo no jogo das Damas que perimite que as peças movam, entao numa textbos insiro a posiçao da peça que qero mover e depois guarda a na variavel aux, e o utilizador na mesma textbox (textboxposicao) insere a posicao para onde quer mover a peça 

Mas o metodo esta a dar me erro numa linha diz que 'A referência de objecto não foi definida como uma instância de um objecto ' 

Nao estou a conseguir resolver o problema alguem me pode ajudar?

Este é o metodo a linha que me da erro é a assinalada 

private void buttonAdicionarPedra_Click(object sender, EventArgs e)
        {
            Point peça_selecionada = new Point(-1,-1);//criamos uma variavel do tipo Point para guardar a posiçao da peça que vamos mexer
            //inicializamos-a na posiçao (-1,-1) porque estas posiçoes nao existem no tabuleiro
            char[] aux;
            Pedras pedra_aux;
            if (!this.seleçao)//se a peça nao tiver sido selecionada
            {
                aux = textBoxposicao.Text.ToCharArray(); //a variavel aux é um auxiliar para converter a textbox para vetor de carateres
              
                
                peça_selecionada = new Point(Convert.ToInt32(aux[0]), Convert.ToInt32(aux[1]));
                this.seleçao = true;//a peça foi selecionada
                buttonAdicionarPedra.Text = "Adicionar Pedra";//o botao muda de nome para AdicionarPedra
                textBoxposicao.Text = "";//coloca a textbox a branco novamente
                label1.Text = "Escolha para onde mover a peça";//muda o texto da label por cima da textbox posicao
            }
            else
            {//e a pedra foi selecionada 
               pedra_aux = play.ProcurarPedras(peça_selecionada);
                aux = textBoxposicao.Text.ToCharArray();
                pedra_aux.inserirposicao(Convert.ToInt32(aux[0]), Convert.ToInt32(aux[1]));//---------- da erro aqui 
                DesenhaPedras(play.Tabuleiro);
                buttonAdicionarPedra.Text = "Selecionar Peça";
                label1.Text = "Escolha a posição da peça que quer mover";
            }
           
            

        }

Estes sao os outros metodos que uso neste metodo :

public void inserirposicao(int x, int y)//metodo criado para ajudar a guardar a posicao da peça q vamos mexer
        {
            Posiçao.X = x;
            Posiçao.Y = y;
        }

 

Link para o comentário
Compartilhar em outros sites

Provavelmente "pedra_aux" não foi inicializada (é NULL), ou seja

 pedra_aux = play.ProcurarPedras(peça_selecionada);

"play.ProcurarPedras" está retornando NULL.

Veja 
 

Point peça_selecionada = new Point(-1,-1);//criamos uma variavel do tipo Point para guardar a posiçao da peça que vamos mexer

E você mesmo diz:

//inicializamos-a na posiçao (-1,-1) porque estas posiçoes nao existem no tabuleiro

Ou seja, você está procurando uma posição não existente no tabuleiro, então é natural que "play.ProcurarPedras" retorne NULL.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...