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
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.
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
Para continuar ou revisar
Para ir para a próxima etapa do tutorial, consulte Etapa 8: Adicionar um método para verificar se o Player ganha.
Para retornar para a etapa anterior do tutorial, consulte Etapa 6: Adicionar um Timer.