Compartilhar via


Etapa 7: Manter os pares visíveis

O jogo funciona bem, desde que o player apenas clica em pares de ícones que não coincidem.Mas considere o que deve acontecer quando o jogador clica em um par correspondente.Em vez de fazer os ícones desaparecem, ativando o timer (usando o Start() método), o jogo deve redefinir a mesmo para que ele é não mais o acompanhamento de todos os rótulos usando a firstClicked e secondClicked fazer referência a variáveis, sem redefinir as cores para os dois rótulos que foram clicados.

Para manter os pares visíveis

  1. Adicione o seguinte if instrução para o label_Click() método do manipulador de eventos, próximo ao fim acima a instrução em que você inicia o cronômetro.Dê uma olhada fechar 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
                Exit Sub
            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 if instrução que você acabou de adicionar verifica se o ícone na primeira etiqueta que o player clica é o mesmo como um ícone no segundo rótulo.Se os ícones são os mesmos, o programa executa as três instruções entre as chaves em C# ou as três instruções dentro do if instrução em Visual Basic.As duas primeiras declarações redefinir o firstClicked e secondClicked variáveis de referência para que eles não mantém controle de qualquer um dos rótulos.(Você pode reconhecer essas duas instruções do manipulador de eventos Tick do timer). A terceira instrução é uma instrução de retorno, que diz ao programa para ignorar o restante das instruções no método sem executá-los.

    Se a programação no Visual C#, você deve ter notado que alguns códigos usa um único 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 é um bom exemplo que mostra a diferença.Dê uma olhada cuidadosa o código entre parênteses a if instrução.

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

    Em seguida, examine de perto a primeira instrução no bloco de código após a if instrução.

    firstClicked = Nothing
    
    firstClicked = null;
    

    A primeira dessas duas instruções verifica se os dois ícones são iguais.Porque os dois valores que estão sendo comparados, o programa do Visual C# usa o == o operador de igualdade.A segunda instrução, na verdade, altera o valor (chamado atribuição), a configuração do firstClicked variável de referência igual a null para redefini-la.É por isso que ele usa o = o operador de atribuição em vez disso.Usos do Visual C# = para definir valores, e == compará-las.Usos de Visual Basic = para atribuição e a comparação.

  2. Salve e execute o programa e iniciar clicando no formulário.Se você clicar em um par de não corresponde, disparadores de eventos Tick do timer, e ambos os ícones desaparecem.Se você clicar em um par correspondente, o novo if executa a instrução e a instrução return faz com que o método ignorar o código que inicia o timer, portanto, os ícones permanecem visíveis, como mostrado na figura a seguir.

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

    Jogo que você cria neste tutorial

Para continuar ou revisar