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
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.
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
Para continuar ou revisar
Para ir para o Próximo tutorial passo, consulte Etapa 8: Adicionar um método para verificar se o Player ganha.
Para Retorno à etapa anterior tutorial, consulte Etapa 6: Adicionar um timer..