Ich habe ein Memory-Spiel mit Windows-Form (C#) erstellt, ist das Spiel abgeschlossen, aber ich habe Schwierigkeiten, den letzten Teil hinzufügen, die, wenn alle Karten übereinstimmen ein Meldungsfeld muss dem Benutzer z "Gut gemacht! Alle Karten wurden abgestimmt".C# Memory-Spiel, muss am Ende des Spiels Nachricht hinzufügen
ist hier ein Abschnitt des Codes, wo ich den Code für MessageBox.Show
denken, wird eingefügt:
private void card1_Click(object sender, EventArgs e)
//if the first slot of pendingImages is available put this card there for comparison
{
//turn card over
card1.Image = Properties.Resources.Image1;
//if this is the first card to be turned over, save its image
if (pendingImage1 == null)
{
pendingImage1 = card1;
}
//else check if pendingImage 2 is available then store the card here for comparison
else if(pendingImage1 != null && pendingImage2 == null)
{
pendingImage2 = card1;
}
//if both pendingImage slots are filled then compare the cards
if (pendingImage1 != null && pendingImage2 != null)
{
if (pendingImage1.Tag == pendingImage2.Tag)
{
//clear the variables to be used again
pendingImage1 = null;
pendingImage2 = null;
//once the cards are matched and turned permanentaly, disable the card to make it unclickable
card1.Enabled = false;
dupCard1.Enabled = false;
//add 10 points to the score evry time cards match
scoreSheet.Text = Convert.ToString(Convert.ToInt32(scoreSheet.Text) + 10);
}
else
{
flipDuration.Start();
}
}
}
private void dupCard1_Click(object sender, EventArgs e)
{
dupCard1.Image = Properties.Resources.Image1;
if (pendingImage1 == null)
{
pendingImage1 = dupCard1;
}
else if (pendingImage1 != null && pendingImage2 == null)
{
pendingImage2 = dupCard1;
}
if (pendingImage1 != null && pendingImage2 != null)
{
if (pendingImage1.Tag == pendingImage2.Tag)
{
pendingImage1 = null;
pendingImage2 = null;
card1.Enabled = false;
dupCard1.Enabled = false;
scoreSheet.Text = Convert.ToString(Convert.ToInt32(scoreSheet.Text) + 10);
}
else
{
flipDuration.Start();
}
}
}
Diese 2 sind die ersten zwei von insgesamt 18 Karten, aber das ist der Code, der für alle ist sie nur Properties.Resources.Image1 wird von Image.1 zu Image.2, .3, .4 usw. geändert.
Ich bin mir nicht sicher, welchen Code es mir erlauben wird, das Spiel eine Nachricht alle 9 einmal anzuzeigen (insgesamt 18 Karten) Paar Karten sind abgestimmt.
Jede Hilfe wird sehr geschätzt.
Ich sehe nicht, warum zwei Methoden notwendig sind. Ich würde nur eine Methode erstellen und diese zu allen Bildern hinzufügen. –
Ich verstehe Ihre Frage nicht, aber ich denke, Sie möchten wissen, wann alle Karten gepaart wurden. Sie können das scoreSheet jedes Mal überprüfen, wenn ein Zug gemacht wird. wenn es 10 Kartenpaare gibt, wenn die Punktzahl 100 ist, weißt du, dass alle gepaart wurden ... – Pikoh
'else if (pendingImage1! = null' <-' pendingImage1' ist immer nicht-null hier –