Etapa 8: Adicionar um método para verificar se o Player ganha
Você criou uma diversão Game, mas precisa de um item adicional. O Game deve participante quando o jogador vence, portanto, você precisará adicionar um **CheckForWinner()**método para verificar se o player ganhas.
Para adicionar um método para verificar se player ganha
Adicionar um **CheckForWinner()**método para seu formulário, sistema autônomo mostra o código a seguir.
''' <summary> ''' Check every icon to see if it is matched, by ''' comparing its foreground color to its background color. ''' If all of the icons are matched, the player wins ''' </summary> Private Sub CheckForWinner() ' Go through all of the labels in the TableLayoutPanel, ' checking each one to see if its icon is matched For Each control In TableLayoutPanel1.Controls Dim iconLabel As Label = TryCast(control, Label) If iconLabel IsNot Nothing Then If (iconLabel.ForeColor = iconLabel.BackColor) Then Return End If End If Next ' If the loop didn’t return, it didn't find ' any unmatched icons ' That means the user won. Show a message and close the form MessageBox.Show("You matched all the icons!", "Congratulations") Close() End Sub
/// <summary> /// Check every icon to see if it is matched, by /// comparing its foreground color to its background color. /// If all of the icons are matched, the player wins /// </summary> private void CheckForWinner() { // Go through all of the labels in the TableLayoutPanel, // checking each one to see if its icon is matched foreach (Control control in tableLayoutPanel1.Controls) { Label iconLabel = control as Label; if (iconLabel != null) { if (iconLabel.ForeColor == iconLabel.BackColor) return; } } // If the loop didn’t return, it didn't find // any unmatched icons // That means the user won. Show a message and close the form MessageBox.Show("You matched all the icons!", "Congratulations"); Close(); }
O método usa outro foreachloop no Visual c# ou For Eachloop em Visual Basic passar por cada rótulo no TableLayoutPanel. Ele usa o operador de igualdade ( ==no Visual c# e =no Visual Basic) para Seleção cor do ícone da cada rótulo para Seleção se ele corresponde ao Segundo plano. Se as cores Coincidir, o ícone permanece invisível e o player ainda não Coincidir ed Todas ícones restantes. Nesse caso, o programa usa um returnDeclaração para ignorar o restante do método. Se o loop por todas as Rótulos sem executar o returnDeclaração, o que significa que todos os ícones foram atendidos. O programa mostra uma MessageBox e, em seguida, chama de do formulário **Close()**método de finalizar o Game.
Próximo, ter o rótulo de chamada de manipulador de Evento de Clicar o Nova **CheckForWinner()**método. Certifique-se de que o programa verifica se há uma vencedora Depois o segundo ícone mostra que player clica. Procurar pela linha onde você pode Conjunto Cor do ícone clicados segunda e, em seguida, chamar o **CheckForWinner()**método direito depois disso, sistema autônomo mostra o código a seguir.
' 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 ' Check to see if the player won CheckForWinner() ' 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 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; // Check to see if the player won CheckForWinner(); // 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; }
salvar e execute o programa. O Game e combinar Todas ícones. Quando você ganhar, o programa exibe um MessageBox (sistema autônomo mostrado na figura a seguir) e, em seguida, fecha a caixa.
Jogo da memória com MessageBox
Para continuar ou revisar
Para ir para o Próximo tutorial passo, consulte Etapa 9: Tente outros recursos..
Para Retorno à etapa anterior tutorial, consulte Etapa 7: Manter visível a pares.