Memoryspil i C# og silverligt
Jeg er i gang med et memory/vendespil. Jeg bruger C# og Silverligt, da det skal kunne ligge på en hjemmeside. Jeg har oprettet et silverlight projekt, dog er det planen at bruge C# til spillogikken.Jeg har et kort område 4x4 (16 billedkort), der bruger jeg et grid. Gridets column og rows er defineret i C#. I gridet column og rows er der lagt et billed ind, det er funger som forside. Jeg har så 16 andre billeder, som skal være skjult, dog blive vist når man trykker på et ad billederne. Jeg bruger tag til give hvert billed et nr, det kan kaldes med.
Hvordan får jeg skjult forside billede og vist bagside billedet?
\Claus
Jeg bruger win7 og Visual studio 2010
Hele min kode.
namespace SLtestbox
{
public partial class MainPage : UserControl
{
Random R1 = new Random(); // Variable til Random funktion.
public MainPage()
{
InitializeComponent();
}
/// <summary>
/// Her starter man spillet, ved tryk på en knap.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void spilstart_Click(object sender, RoutedEventArgs e)
{
//Tilfældigt genrator
int[] tal16 = new int[16] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; //array til brug til tilfældigt generator
int tmptal; // tilbrug i løkken neden under.
for (int i = 0; i < 1000; i++) // løkke på 1000
{
int Tal1 = R1.Next(0, 15); // tager et tilfældigt tal mellem 1 og 16
int Tal2 = R1.Next(0, 15); // tager et tilfældigt tal mellem 1 og 16
tmptal = tal16[Tal1]; //tmptal får værdigen af Tal1 Her bytter den man rundt på Tal1 og Tal2
tal16[Tal1] = tal16[Tal2]; //Tal1 får værdigen af Tal2
tal16[Tal2] = tmptal; //Tal2 får værdigen af tmptal
}
//Ligger "forside" billedkort på spilleplade.
for (int i = 0; i < 16; i++)
{
Image BK = new Image(); //forside af billedkort
BK.Tag = i; // Hver billed får et tag nr. så det kan kaldes ved et nr.
BK.Source = new BitmapImage(new Uri("trykpåmig.jpg", UriKind.RelativeOrAbsolute));
BK.Stretch = Stretch.Uniform;
BK.Visibility = System.Windows.Visibility.Visible;
plade.Children.Add(BK); //Grid hedder plade x:Name="plade" i design delen.
switch (i) // til at lægge billedkort ud i hele gridet.
{
case 0: Grid.SetColumn(BK, 0); Grid.SetRow(BK, 0); break;
case 1: Grid.SetColumn(BK, 1); Grid.SetRow(BK, 0); break;
case 2: Grid.SetColumn(BK, 2); Grid.SetRow(BK, 0); break;
case 3: Grid.SetColumn(BK, 3); Grid.SetRow(BK, 0); break;
case 4: Grid.SetColumn(BK, 0); Grid.SetRow(BK, 1); break;
case 5: Grid.SetColumn(BK, 1); Grid.SetRow(BK, 1); break;
case 6: Grid.SetColumn(BK, 2); Grid.SetRow(BK, 1); break;
case 7: Grid.SetColumn(BK, 3); Grid.SetRow(BK, 1); break;
case 8: Grid.SetColumn(BK, 0); Grid.SetRow(BK, 2); break;
case 9: Grid.SetColumn(BK, 1); Grid.SetRow(BK, 2); break;
case 10: Grid.SetColumn(BK, 2); Grid.SetRow(BK, 2); break;
case 11: Grid.SetColumn(BK, 3); Grid.SetRow(BK, 2); break;
case 12: Grid.SetColumn(BK, 0); Grid.SetRow(BK, 3); break;
case 13: Grid.SetColumn(BK, 1); Grid.SetRow(BK, 3); break;
case 14: Grid.SetColumn(BK, 2); Grid.SetRow(BK, 3); break;
case 15: Grid.SetColumn(BK, 3); Grid.SetRow(BK, 3); break;
}
// sender musseklick ned til void BK_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
BK.MouseLeftButtonDown += new MouseButtonEventHandler(BK_MouseLeftButtonDown);
}
// Ligger "Bagside" billedkort på spilelpladen
for (int i = 0; i < 16; i++)
{
Image BSK = new Image(); //bagside af billedkort
BSK.Tag = i;
BSK.Source = new BitmapImage(new Uri(tal16[i].ToString() + ".jpg", UriKind.RelativeOrAbsolute));
BSK.Stretch = Stretch.Uniform;
BSK.Visibility = System.Windows.Visibility.Collapsed;
plade.Children.Add(BSK);
switch (i) // til at lægge billedkort ud i hele gridet.
{
case 0: Grid.SetColumn(BSK, 0); Grid.SetRow(BSK, 0); break;
case 1: Grid.SetColumn(BSK, 1); Grid.SetRow(BSK, 0); break;
case 2: Grid.SetColumn(BSK, 2); Grid.SetRow(BSK, 0); break;
case 3: Grid.SetColumn(BSK, 3); Grid.SetRow(BSK, 0); break;
case 4: Grid.SetColumn(BSK, 0); Grid.SetRow(BSK, 1); break;
case 5: Grid.SetColumn(BSK, 1); Grid.SetRow(BSK, 1); break;
case 6: Grid.SetColumn(BSK, 2); Grid.SetRow(BSK, 1); break;
case 7: Grid.SetColumn(BSK, 3); Grid.SetRow(BSK, 1); break;
case 8: Grid.SetColumn(BSK, 0); Grid.SetRow(BSK, 2); break;
case 9: Grid.SetColumn(BSK, 1); Grid.SetRow(BSK, 2); break;
case 10: Grid.SetColumn(BSK, 2); Grid.SetRow(BSK, 2); break;
case 11: Grid.SetColumn(BSK, 3); Grid.SetRow(BSK, 2); break;
case 12: Grid.SetColumn(BSK, 0); Grid.SetRow(BSK, 3); break;
case 13: Grid.SetColumn(BSK, 1); Grid.SetRow(BSK, 3); break;
case 14: Grid.SetColumn(BSK, 2); Grid.SetRow(BSK, 3); break;
case 15: Grid.SetColumn(BSK, 3); Grid.SetRow(BSK, 3); break;
}
// sender musseklick til void BSK_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
BSK.MouseLeftButtonDown += new MouseButtonEventHandler(BSK_MouseLeftButtonDown);
}
}
/// <summary>
/// Ved tryk på kanp. Gemme billed TrykPåMig.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void BK_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
((Image)sender).Tag = 1;
Tag = Visibility.Collapsed;
}
/// <summary>
/// Ved tryk på et billed, vise billede under TrykPåMig.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void BSK_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
((Image)sender).Tag = 1;
Tag = Visibility.Visible;
}
}
}