Partilhar via


Etapa 7: Manter visível a pares

O Game funciona bem, sistema autônomo longo sistema autônomo player apenas clica em pares de ícones não coincidem. Mas considere o que deve acontecer quando o player de clicar em um emparelhar correspondente. Em vez de fazer os ícones desaparecem ativando o cronômetro (usando o **Start()**método), o Game deve redefinir a mesmo, de modo que ele é não manter o controle de todos os rótulos usando a firstClickede secondClickedVariáveis de Referência, sem redefinir as cores para os dois rótulos que foram clicados.

Para manter os pares visíveis

  1. Adicione o seguinte ifDeclaração para o **label_Click()**manipulador de Evento método, no participante, logo acima da Declaração em que você iniciar o timer. Assumir um visão de perto o código ao adicioná-lo para o programa. Considere como o código funciona.

            ' If the player gets this far, the timer isn't 
            ' running and firstClicked isn't Nothing, 
            ' so this must be the second icon the player clicked
            ' Set its color to black
            secondClicked = clickedLabel
            secondClicked.ForeColor = Color.Black
    
            ' If the player clicked two matching icons, keep them 
            ' black and reset firstClicked and secondClicked 
            ' so the player can click another icon
            If (firstClicked.Text = secondClicked.Text) Then
                firstClicked = Nothing
                secondClicked = Nothing
                Return
            End If
    
            ' If the player gets this far, the player 
            ' clicked two different icons, so start the 
            ' timer (which will wait three quarters of 
            ' a second, and then hide the icons)
            Timer1.Start()
        End If
    End Sub
    
            // If the player gets this far, the timer isn't
            // running and firstClicked isn't null,
            // so this must be the second icon the player clicked
            // Set its color to black
            secondClicked = clickedLabel;
            secondClicked.ForeColor = Color.Black;
    
            // If the player clicked two matching icons, keep them 
            // black and reset firstClicked and secondClicked 
            // so the player can click another icon
            if (firstClicked.Text == secondClicked.Text)
            {
                firstClicked = null;
                secondClicked = null;
                return;
            }
    
            // If the player gets this far, the player 
            // clicked two different icons, so start the 
            // timer (which will wait three quarters of 
            // a second, and then hide the icons)
            timer1.Start();
        }
    }
    

    A primeira linha da ifDeclaração que você acabou de adicionar verifica se o ícone do primeiro rótulo em que player clica é o mesmo que o ícone no segundo rótulo. Se os ícones são os mesmos, o programa executa as três instruções entre chaves em c# ou as três instruções dentro de ifDeclaração em Visual Basic. As Dois primeiras instruções de Redefinir de firstClickede secondClickedfazer referência a variáveis, de modo que eles não mantém controle de qualquer um dos rótulos. (Você pode reconhecer as Dois declarações de manipulador de Evento Tick do timer). A terceira Declaração é uma Declaração Retorno, que faz com que o programa ignore o restante das instruções no método sem executá-los.

    Se a programação em Visual c#, você deve ter notado que alguns Código usa um sinal de igual ( =), enquanto outras instruções usam dois sinais de igual ( ==). Considere o porquê =é usado em alguns lugares, mas ==é usado em outros lugares.

    Este é mercadoria exemplo que mostra a diferença. Dê uma olhada cuidado com o código entre os parênteses na ifDeclaração.

    firstClicked.Text = secondClicked.Text
    
    firstClicked.Text == secondClicked.Text
    

    Em seguida, Olhe atentamente na Primeiro Declaração no Bloquear de código Depois o ifDeclaração.

    firstClicked = Nothing
    
    firstClicked = null;
    

    Primeiro das duas dessas instruções verifica se dois ícones são os mesmos. Porque estão sendo comparados dois valores, o programa em Visual c# usa o ==operador de igualdade. A segunda Declaração, na verdade, altera o valor (chamado de atribuiçãode ), definindo o firstClickedvariável de referência igual a nullpara redefinir o proprietário. É por isso que ele usa o =operador de atribuição em vez disso. O Visual c# usa =para Conjunto valores, e ==compará-las. Visual Basic usa =atribuição tanto para comparação.

  2. salvar e execute o programa e iniciar clicando no formulário. Se você clicar em um emparelhar não coincidirem, os disparadores de Evento Tick do timer, e Ambas os ícones desaparecem. Se você clicar em um emparelhar correspondente, o Nova ifDeclaração é executada, e Declaração Retorno faz com que o método ignorar o código que inicia o timer, portanto, sistema autônomo ícones permanecem visíveis, sistema autônomo mostrado na figura seguinte.

    Game de correspondência com os pares de ícone visível

    Jogo que você cria neste tutorial

Para continuar ou revisar