using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media.Imaging;
namespace PictureGame
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
}
Img[,] imgs = new Img[3, 3];
BitmapImage[] bmps = new BitmapImage[9];
int unRow = 0, unCol = 0;
bool playing = false;
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 9; i++)
{
bmps[i] = new BitmapImage(new Uri("pic" + i.ToString() + ".jpg", UriKind.Relative));
}
for (int i = 0; i < 9; i++)
{
Img img = new Img();
img.MouseLeftButtonDown += new MouseButtonEventHandler(img_MouseLeftButtonDown);
img.Left = 10.0 + i % 3 * 80.0;
img.Top = 10.0 + i / 3 * 80.0;
LayoutRoot.Children.Add(img);
imgs[i / 3, i % 3] = img;
}
}
//开始游戏按钮
private void btnStart_Click(object sender, RoutedEventArgs e)
{
imgs[unRow, unCol].Visible = true;
int[] arrNum = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
Random rm = new Random();
for (int i = 0; i < 8; i++)
{
int rmNum = rm.Next(i, 9);
int temp = arrNum[i];
arrNum[i] = arrNum[rmNum];
arrNum[rmNum] = temp;
}
for (int i = 0; i < 9; i++)
{
imgs[i / 3, i % 3].Source = bmps[arrNum[i]];
imgs[i / 3, i % 3].ImageIndex = arrNum[i];
imgs[i / 3, i % 3].BorderVisible = true;
}
int cover = rm.Next(0, 9);
unRow = cover / 3;
unCol = cover % 3;
imgs[unRow, unCol].Visible = false;
playing = true;
}
//鼠标单击事件
void img_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (!playing)
{
return;
}
int row = (int)((Img)sender).Top / 80;
int col = (int)((Img)sender).Left / 80;
if (Math.Abs(row - unRow) + Math.Abs(col - unCol) == 1)
{
int temp = imgs[unRow, unCol].ImageIndex;
imgs[unRow, unCol].ImageIndex = imgs[row, col].ImageIndex;
imgs[unRow, unCol].Source = bmps[imgs[row, col].ImageIndex];
imgs[row, col].ImageIndex = temp;
imgs[row, col].Source = bmps[temp];
imgs[unRow, unCol].Visible = true;
imgs[row, col].Visible = false;
unRow = row;
unCol = col;
}
for (int i = 0; i < 9; i++)
{
if (imgs[i / 3, i % 3].ImageIndex != i)
{
break;
}
if (i == 8)
{
imgs[unRow, unCol].Visible = true;
foreach (Img img in imgs)
{
img.BorderVisible = false;
}
playing = false;
msgBox.Text = "恭喜您通过游戏!";
}
}
}
}
}