WPF翻盘连连看(二)

设计界面:


window1.XAML代码:

<Window x:Class="开心连连看.Window1"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:开心连连看"mc:Ignorable="d"Title="登录" Height="377.751" Width="466.255" Icon="images/连连看.ico" Loaded="Window_Loaded" ResizeMode="NoResize" WindowStartupLocation="CenterScreen"><Grid x:Name="bg"><Border Margin="0,0,-0.667,-0.333" ><Border.Background><ImageBrush ImageSource="images/bg5.jpg" Stretch="Fill" ></ImageBrush></Border.Background></Border><Label Content="用户名:" HorizontalAlignment="Left" Margin="104,96,0,0" VerticalAlignment="Top"/><TextBox  HorizontalAlignment="Left" Height="25" Margin="161,96,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="165"  Name="textbox1"/><Label Content="密   码:" HorizontalAlignment="Left" Margin="104,143,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.58,0.358"/><Label Content="验证码:" HorizontalAlignment="Left" Margin="104,196,0,0" VerticalAlignment="Top" /><TextBox HorizontalAlignment="Left" Height="21" Margin="161,196,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="83" Name="textbox3"/><Button Content="注    册" HorizontalAlignment="Left" Margin="84,263,0,0" VerticalAlignment="Top" Width="117" Height="29" Background="Yellow" Click="Button_Click"/><Button  Content="登    录" HorizontalAlignment="Left" Margin="248,263,0,0" VerticalAlignment="Top" Width="115" Height="29" Background="Red"  Click="Button_Click_1"/><Image Name="img" HorizontalAlignment="Left" Height="36" Margin="263,196,0,0" VerticalAlignment="Top" Width="100" RenderTransformOrigin="0.457,-0.088" /><PasswordBox Margin="161,140,126.667,173" Height="23" Name="textbox2"  ></PasswordBox><CheckBox Content="记住密码" HorizontalAlignment="Left" Margin="118,232,0,0" VerticalAlignment="Top" Click="CheckBox_Click"/><CheckBox Content="自动登录" HorizontalAlignment="Left" Margin="227,232,0,0" VerticalAlignment="Top"/></Grid>
</Window>

window1.XAML.cs代码:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;namespace 开心连连看
{/// <summary>/// Window1.xaml 的交互逻辑/// </summary>public partial class Window1 : Window{public Window1(){InitializeComponent();}//注册private void Button_Click(object sender, RoutedEventArgs e){if (textbox1.Text == ""){MessageBox.Show("用户名为空,请重新输入");}else if (textbox2.Password == ""){MessageBox.Show("密码为空,请重新输入");}else if (textbox3.Text == ""){MessageBox.Show("验证码为空,请重新输入");}else if (code.ToUpper().Equals(textbox3.Text.ToUpper())){//账号FileStream file = new FileStream("../../排名/index2.txt", FileMode.Append, FileAccess.Write);StreamWriter stream = new StreamWriter(file);string str = textbox1.Text;stream.Write(str);stream.Close();//用户名FileStream file1 = new FileStream("../../排名/index.txt", FileMode.Append, FileAccess.Write);StreamWriter stream1 = new StreamWriter(file1);string str1 = textbox1.Text;stream1.Write(str1);stream1.Close();//密码FileStream file2 = new FileStream("../../排名/index1.txt", FileMode.Append, FileAccess.Write);StreamWriter stream2 = new StreamWriter(file2);string pw = textbox2.Password;stream2.Write(pw);stream2.Close();textbox3.Text = "";b = true;MessageBox.Show("注册成功");stream2.Close();GetImage();}else{MessageBox.Show("验证码错误");GetImage();}     }private void Window_Loaded(object sender, RoutedEventArgs e){GetImage();}//登录private void Button_Click_1(object sender, RoutedEventArgs e){StreamReader reader = new StreamReader("../../排名/index2.txt");string user = reader.ReadToEnd();//读取所有的字符StreamReader reader1 = new StreamReader("../../排名/index1.txt");string pwd = reader1.ReadToEnd();//读取所有的字符if (textbox1.Text == "" && textbox2.Password == "" && textbox3.Text == ""){MessageBox.Show("请先注册");}else if (textbox1.Text == ""){MessageBox.Show("用户名为空,请重新输入");}else if (textbox2.Password == ""){MessageBox.Show("密码为空,请重新输入");}else if (textbox3.Text == ""){MessageBox.Show("验证码为空,请重新输入");}else if (code.ToUpper().Equals(textbox3.Text.ToUpper())&&textbox1.Text == user && textbox2.Password == pwd){this.Visibility = Visibility.Hidden;MainWindow main = new MainWindow();main.Show();}else{MessageBox.Show("账号或密码错误,请重新输入");GetImage();}}string code = "";public string GetImage(){           Bitmap bitmap = VerifyCodeHelper.CreateVerifyCode(out code);ImageSource imageSource = ImageFormatConvertHelper.ChangeBitmapToImageSource(bitmap);img.Source = imageSource;return code;}bool b = true;//记住密码private void CheckBox_Click(object sender, RoutedEventArgs e){if (b == true){textbox1.Text = textbox1.Text;textbox2.Password = textbox2.Password;}else{textbox1.Text = "";textbox2.Password = "";} }}
}

MainWindow.xaml.cs代码:

<Window x:Class="开心连连看.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:开心连连看"mc:Ignorable="d"Title="开心连连看" Height="592.266" Width="527.425" Icon="images/连连看.ico" WindowStartupLocation="CenterScreen" Loaded="Window_Loaded_1" ResizeMode="NoResize" WindowStyle="None"  ><Grid x:Name="BG" Margin="10,0,10.667,10.333"><Grid.RowDefinitions><RowDefinition Height="30"></RowDefinition><RowDefinition Height="100"></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="0"></ColumnDefinition><ColumnDefinition Width="0"/><ColumnDefinition Width="16*"></ColumnDefinition><ColumnDefinition Width="2*"/><ColumnDefinition Width="383*"/><ColumnDefinition Width="91*"/><ColumnDefinition Width="0"></ColumnDefinition><ColumnDefinition Width="15.333"/></Grid.ColumnDefinitions><Menu Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="8" Margin="-12,0,0.666,0" ><MenuItem Width="90" Height="30" HorizontalContentAlignment="Center"VerticalContentAlignment="Center" Click="MenuItem_Click_7" ><MenuItem.Icon><Image Source="images/Sysico.ico" Margin="0"></Image></MenuItem.Icon><MenuItem.Header><Label Content="个人中心" Margin="-10,0,0,0" Cursor="Hand"></Label></MenuItem.Header></MenuItem><MenuItem Width="80" Height="30" HorizontalContentAlignment="Center"VerticalContentAlignment="Center" Cursor="Hand"><MenuItem.Icon><Image Source="images/dj.jpg" Margin="0"></Image></MenuItem.Icon><MenuItem.Header><Label Content="等级" Margin="-10,0,0,0" Cursor="Hand"></Label></MenuItem.Header><MenuItem Header="一级" Margin="0,0,-30,0" Click="MenuItem_Click_3" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="二级" Margin="0,0,-30,0" Click="MenuItem_Click_9" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="三级" Margin="0,0,-30,0" Click="MenuItem_Click_10" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="四级" Margin="0,0,-30,0" Click="MenuItem_Click_11" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="五级" Margin="0,0,-30,0" Click="MenuItem_Click_12" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="六级" Margin="0,0,-30,0" Click="MenuItem_Click_13" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="七级" Margin="0,0,-30,0" Click="MenuItem_Click_14" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="八级" Margin="0,0,-30,0" Click="MenuItem_Click_15" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="九级" Margin="0,0,-30,0" Click="MenuItem_Click_16" Cursor="Hand" ><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="十级" Margin="0,0,-30,0" Click="MenuItem_Click_17" Cursor="Hand"><MenuItem.Icon><Image Source="images/xx.jpg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="十一级" Margin="0,0,-40,0" Click="MenuItem_Click_2" Cursor="Hand"><MenuItem.Icon><Image Source="images/yl.jpeg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="十二级" Margin="0,0,-40,0" Click="MenuItem_Click_19" Cursor="Hand"><MenuItem.Icon><Image Source="images/yl.jpeg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="十三级" Margin="0,0,-40,0" Click="MenuItem_Click_20" Cursor="Hand"><MenuItem.Icon><Image Source="images/yl.jpeg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="十四级" Margin="0,0,-40,0" Click="MenuItem_Click_21" Cursor="Hand"><MenuItem.Icon><Image Source="images/yl.jpeg"></Image></MenuItem.Icon></MenuItem><MenuItem Header="十五级" Margin="0,0,-40,0" Click="MenuItem_Click_1" Cursor="Hand"><MenuItem.Icon><Image Source="images/ty.jpg"></Image></MenuItem.Icon></MenuItem></MenuItem><MenuItem Width="80" Height="30" HorizontalContentAlignment="Center"VerticalContentAlignment="Center"><MenuItem.Icon><Image Source="images/mrp.ico"></Image></MenuItem.Icon><MenuItem.Header><Label Content="设置" Margin="-10,0,0,0" Cursor="Hand"></Label></MenuItem.Header><MenuItem Header="背景" Margin="0,0,-19.667,0" Cursor="Hand"><MenuItem.Icon><Image Source="images/bg1.jpg"></Image></MenuItem.Icon><MenuItem Margin="-5,0,-13.333,0" Height="30" Click="MenuItem_Click_4"><MenuItem.Icon><Image Source="images/春.jpg" Margin="-12,-5,-6,-6"></Image></MenuItem.Icon><MenuItem.Header><Label Width="49" Cursor="Hand">春天</Label></MenuItem.Header></MenuItem><MenuItem Margin="-5,0,-13.333,0" Height="30" Click="MenuItem_Click_5"><MenuItem.Icon><Image Source="images/夏.jpg" Margin="-12,-5,-6,-6"></Image></MenuItem.Icon><MenuItem.Header><Label Width="49" Cursor="Hand">夏天</Label></MenuItem.Header></MenuItem><MenuItem Margin="-5,0,-13.333,0" Height="30" Click="MenuItem_Click_6"><MenuItem.Icon><Image Source="images/秋.jpg" Margin="-12,-5,-6,-6"></Image></MenuItem.Icon><MenuItem.Header><Label Width="49" Cursor="Hand">秋天</Label></MenuItem.Header></MenuItem></MenuItem><MenuItem Header="自定义" Margin="0,0,-40,0" Name="zidingyi" Click="zidingyi_Click" Cursor="Hand"><MenuItem.Icon><Image Source="images/zdy.jpg"></Image></MenuItem.Icon></MenuItem></MenuItem><MenuItem Width="80" Height="30" HorizontalContentAlignment="Center"VerticalContentAlignment="Center" Click="MenuItem_Click_8" ><MenuItem.Icon><Image Source="images/timg.jpg" Margin="0"></Image></MenuItem.Icon><MenuItem.Header ><Label Content="排行榜" Margin="-10,0,0,0" Cursor="Hand" ></Label></MenuItem.Header></MenuItem><MenuItem Width="80" Height="30" HorizontalContentAlignment="Center"VerticalContentAlignment="Center" Click="MenuItem_Click" ><MenuItem.Icon><Image Source="images/exit.ico" Margin="0"></Image></MenuItem.Icon><MenuItem.Header ><Label Content="退出" Margin="-10,0,0,0"  Cursor="Hand" ></Label></MenuItem.Header></MenuItem></Menu><StackPanel Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="4" Margin="0,0,1.333,0" ><StackPanel.Background><ImageBrush ImageSource="images/menu2.png"></ImageBrush></StackPanel.Background></StackPanel><StackPanel Grid.Row="1" Grid.Column="2" x:Name="df" Grid.ColumnSpan="4" Margin="0,0,1.333,0"><Label Margin="31,30,261.333,18" RenderTransformOrigin="-2.489,0.556" x:Name="defeng" Height="33"/></StackPanel><StackPanel Grid.Row="1" Grid.Column="2" x:Name="tm" Grid.ColumnSpan="4" Margin="0,0,1.333,0"><Label Margin="291,30,42,18" RenderTransformOrigin="-2.489,0.556" x:Name="time" Height="39"/></StackPanel><Border Grid.Row="2" Grid.Column="4" Margin="1,0,10.333,28" Grid.ColumnSpan="2" ><Border.Background><ImageBrush ImageSource="images/bg7.jpg" Stretch="Fill" ></ImageBrush></Border.Background></Border><Label Background="Blue" Name="jd" Width="30" HorizontalAlignment="Left" Grid.Column="4" Margin="240,62,0,27" Grid.Row="1" Height="11"><Label Name="jd1" Background="Red" Width="30" Height="12" HorizontalAlignment="Left" Grid.Column="4" Grid.Row="1" RenderTransformOrigin="0.5,0.5" Margin="-10" ><Label.RenderTransform><TransformGroup><ScaleTransform ScaleY="-1"/><SkewTransform/><RotateTransform/><TranslateTransform/></TransformGroup></Label.RenderTransform></Label></Label><Grid Grid.Row="2" Grid.Column="3" Name="bg" Grid.ColumnSpan="3" Margin="1,0,1.333,28"></Grid><Grid Grid.Row="2" Grid.Column="3" Name="GridGame" Grid.ColumnSpan="3" Margin="1,0,1.333,28" Cursor="Hand"   ></Grid><Grid Grid.Row="2" Grid.Column="3" Name="bg1" Grid.ColumnSpan="3" Margin="1,0,0,28" HorizontalAlignment="Left" Width="473"></Grid><Grid  Grid.ColumnSpan="8" Margin="-12,5,0.666,-22" Grid.RowSpan="2" Grid.Row="1" Name="gr" Visibility="Hidden"  ><Border Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="3" Margin="0.333,0,6.333,28" ><Border.Background><ImageBrush ImageSource="images/bg4.jpg" Stretch="Fill" ></ImageBrush></Border.Background></Border><Label Content="玩家姓名:" HorizontalAlignment="Left" Margin="138,153,0,0" VerticalAlignment="Top" Width="71"/><TextBox HorizontalAlignment="Left" Height="24" Margin="214,157,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="133" Name="textbox7" IsReadOnly="True"/><Label Content="账      号:" HorizontalAlignment="Left" Margin="138,216,0,0" VerticalAlignment="Top" Width="71" /><Label Content="密       码:" HorizontalAlignment="Left" Margin="138,276,0,0" VerticalAlignment="Top" Width="71" /><TextBox HorizontalAlignment="Left" Height="24" Margin="214,216,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="133" Name="textbox8" IsReadOnly="True"/><TextBox HorizontalAlignment="Left" Height="24" Margin="214,278,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="133" Name="textbox9" IsReadOnly="True"/><Button Content="确   定" Background="Yellow" HorizontalAlignment="Left" Margin="181,346,0,0" VerticalAlignment="Top" Width="87" Height="30" Click="Button_Click"/></Grid></Grid></Window>

Mainwindow.XAML.cs代码:

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Media;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;namespace 开心连连看
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}// 倒计时定时器DispatcherTimer shitimer = new DispatcherTimer();int time1;int num = 0;private void Window_Loaded_1(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;//得分defeng.Foreground = new LinearGradientBrush(Colors.Pink, Colors.Red, 0);//defeng.Background = Brushes.Cyan;defeng.Content = "得分为:" + num + "分";defeng.FontFamily = new FontFamily("楷体");defeng.FontSize = 25;//进度条jd.Width = time1 + 5;jd1.Width = time1;//时间shitimer.Interval = TimeSpan.FromSeconds(1);shitimer.Tick += Shitimer_Tick;time.Foreground = new LinearGradientBrush(Colors.Pink, Colors.Red, 0);//defeng.Background = Brushes.Cyan;time.Content = "时间:" + time1 / 10 + "秒";time.FontFamily = new FontFamily("楷体");time.FontSize = 25;//shitimer.Start(); player1.Play();bgmusic.Open(new Uri("../../music/2.wav", UriKind.Relative));bgmusic3.Open(new Uri("../../music/win.wav", UriKind.Relative));   }//背景音乐1SoundPlayer player1 = new SoundPlayer(@"../../music/1.wav");//背景音乐2MediaPlayer bgmusic = new MediaPlayer();//胜利音乐3MediaPlayer bgmusic3 = new MediaPlayer();private void Shitimer_Tick(object sender, EventArgs e){  time1--;time.Content = "时间:" + time1 + "秒";jd1.Width = time1;if (time1 <= 0|| jd1.Width==0){shitimer.Stop();bgmusic.Stop();MediaPlayer bgmusic3 = new MediaPlayer();bgmusic3.Open(new Uri("../../music/shibai.wav", UriKind.Relative));bgmusic3.Play();//排名FileStream file1 = new FileStream("../../排名/index.txt", FileMode.Append, FileAccess.Write);StreamWriter stream1 = new StreamWriter(file1);string str1 = num.ToString();stream1.Write(str1 + "\r\n");stream1.Close();MessageBoxResult Out = System.Windows.MessageBox.Show("得分为:" + num + "分" + ",是否重新开始游戏", "游戏结束", MessageBoxButton.YesNo, MessageBoxImage.Information);if (Out.Equals(MessageBoxResult.Yes)){bgmusic.Play();time1 = 81;time.Content = "  时间:" + time1 + "秒";GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();num = 0;defeng.Content = "得分为:" + num + "分";}else{// System.Windows.Application.Current.Shutdown();System.Windows.MessageBox.Show("在玩一把,有奖励哦!!");}}if (num == 32){shitimer.Stop();player1.Stop();bgmusic.Stop();bgmusic3.Play();Image image = new Image();//添加图片的路径image.Source = new BitmapImage(new Uri("images/yx.jpg", UriKind.Relative));image.Stretch = Stretch.Fill;//bg1.Children.Add(image);MessageBoxResult Out = System.Windows.MessageBox.Show("得分为:" + num + "分" + ",是否开始下一关游戏", "游戏结束", MessageBoxButton.YesNo, MessageBoxImage.Information);if (Out.Equals(MessageBoxResult.Yes)){arr.Add(time1);for (int i = 0; i < arr.Count - 1; i++){for (int j = 0; j < arr.Count - i - 1; j++){if (arr[j] > arr[j + 1]){int item = arr[j];arr[j] = arr[j + 1];arr[j + 1] = item;}}}image.Visibility = Visibility.Hidden;bgmusic3.Stop();bgmusic.Play();time1++;time.Content = "  时间:" + time1 + "秒";GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();num = 0;defeng.Content = "得分为:" + num + "分";}else{System.Windows.MessageBox.Show("在玩一把,有奖励哦!!");/* System.Environment.Exit(0);*/}}}MyButton[,] maps = new MyButton[10, 10];int Amount;int Count;public void Add(){for (int i = 0; i < 10; i++){//行10RowDefinition rowDef = new RowDefinition();GridGame.RowDefinitions.Add(rowDef);//列10ColumnDefinition colDef = new ColumnDefinition();GridGame.ColumnDefinitions.Add(colDef); }Amount = 32;List<int> ran = (new MyRandom(64, 2, 1, Count)).Get();for (int r = 0; r < 10; r++){for (int c = 0; c < 10; c++){MyButton btn;//隐藏第一行第一列和第九行和第九列if (r == 0 || r == 9 || c == 0 || c == 9){btn = new MyButton(0, r, c);btn.Visibility = System.Windows.Visibility.Hidden;}else{int path = (int)ran[(r - 1) * 8 + c - 1];btn = new MyButton(path, r, c);maps[r, c] = btn;Grid.SetColumn(btn, c);Grid.SetRow(btn, r);GridGame.Children.Add(btn);Bgimage(btn);btn.Width = 50;btn.Height = 46;btn.Click += Btn_Click;}}}}// 标记int biaoji;// 判断该谁点击bool isdianji = false;// 上一次翻牌的块MyButton lodbtn;// 本次的MyButton newbtn;// 是否消失bool isxiaoshi = false;// 是否自己点击的自己bool isme = false;//每一个按钮点击事件bool isdonghua = false;private void Btn_Click(object sender, RoutedEventArgs e){//音效MediaPlayer bgmusic2 = new MediaPlayer();bgmusic2.Open(new Uri("../../music/check.wav", UriKind.Relative));bgmusic2.Play();if (!isdonghua){MyButton btn = sender as MyButton;if (!isdianji){// 自己已被点击过btn.Isdianjiguo = true;// 下一个人点击isdianji = true;biaoji = btn.BJ;// 显示当前按钮图片Xianshi(btn.BJ, btn);// 记录这次点击按钮,为上次lodbtn = btn;}// 判断是否为下次点击,同时不是自己再次点击else if (isdianji && !btn.Isdianjiguo){// 上次点击的与本次的比较if (biaoji == btn.BJ){lodbtn.Isdianjiguo = false;// 相同显示本次点击的图片Xianshi(btn.BJ, btn);// 进入消失动画判断isxiaoshi = true;Ddonghua(btn);Ddonghua(lodbtn);// 把这次新的图片给一个变量记录newbtn = btn;// 归位点击isdianji = false;isdonghua = true;}else{lodbtn.Isdianjiguo = false;// 两个不同没消失isxiaoshi = false;// 显示点击的图片Xianshi(btn.BJ, btn);newbtn = btn;// 标记归位biaoji = 100;// 点击为没点击过isdianji = false;//newbtn = btn;Ddonghua(lodbtn);Ddonghua(btn);}}else{isme = true;btn.Isdianjiguo = false;isdianji = false;Ddonghua(btn);}}}//动画private void Ddonghua(MyButton btn){isdonghua = true;Storyboard stor = new Storyboard();DoubleAnimation rotate = new DoubleAnimation(0, 360, new Duration(TimeSpan.FromMilliseconds(600)));Storyboard.SetTarget(rotate, btn);//欧拉角Storyboard.SetTargetProperty(rotate, new PropertyPath("RenderTransform.Angle"));stor.Children.Add(rotate);//旋转对象RotateTransform rotate1 = new RotateTransform();btn.RenderTransform = rotate1;//位置改变方式以旋转对象为主btn.RenderTransformOrigin = new Point(0.5, 0.5);stor.Completed += Stor_Completed;stor.Begin();}int X = 2;private void Stor_Completed(object sender, EventArgs e){isdonghua = false;// 判断为消失动画if (isxiaoshi){//两个都消失lodbtn.Visibility = Visibility.Hidden;newbtn.Visibility = Visibility.Hidden;//音效MediaPlayer bgmusic6 = new MediaPlayer();bgmusic6.Open(new Uri("../../music/2103.wav", UriKind.Relative));bgmusic6.Play();time1+=3;X++;if (X%2==0){//得分num = num + 1;defeng.Content = "得分为:" + num + "分";}else{return;}}// 是自己 else if (isme){Bgimage(lodbtn);isme = false;time1 -= 1;}// 否则点击的不是自己else{Bgimage(lodbtn);Bgimage(newbtn);time1 -= 1;}}//给按钮添加遮罩层private void Bgimage(MyButton btn){Image img = new Image();img.Source = new BitmapImage(new Uri("../../images/bg9.jpg", UriKind.Relative));ImageBrush brush = new ImageBrush();brush.ImageSource = img.Source;btn.Background = brush;}//显示private void Xianshi(int path, MyButton btn){Image img = new Image();img.Source = new BitmapImage(new Uri(@"../../images/" + path + ".png", UriKind.Relative));ImageBrush brush = new ImageBrush();brush.ImageSource = img.Source;btn.Background = brush;}//游戏一级private void MenuItem_Click_3(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0; //消消乐组数Count = 4;time1 = 60;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//二级private void MenuItem_Click_9(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 6;time1 = 65;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//三级private void MenuItem_Click_10(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 8;time1 = 70;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//四级private void MenuItem_Click_11(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 10;time1 = 75;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//五级private void MenuItem_Click_12(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 12;time1 = 80;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//六级private void MenuItem_Click_13(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 14;time1 =85;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//七级private void MenuItem_Click_14(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 16;time1 = 90;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//八级private void MenuItem_Click_15(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 18;time1 = 95;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//九级private void MenuItem_Click_16(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 20;time1 = 100;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//十级private void MenuItem_Click_17(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 22;time1 = 105;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//游戏十一级private void MenuItem_Click_2(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 15;time1 = 110;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//十二级private void MenuItem_Click_19(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 24;time1 = 115;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//十三级private void MenuItem_Click_20(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 26;time1 = 120;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//十四级private void MenuItem_Click_21(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 38;time1 = 125;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//游戏十五级private void MenuItem_Click_1(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;player1.Stop();bgmusic.Play();GridGame.ColumnDefinitions.Clear();GridGame.RowDefinitions.Clear();GridGame.Children.Clear();num = 0;//消消乐组数Count = 20;time1 = 130;jd.Width = time1 - 5;jd1.Width = time1;Add();isdianji = false;isxiaoshi = false;isme = false;isdonghua = false;shitimer.Start();}//退出private void MenuItem_Click(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;System.Windows.Application.Current.Shutdown(); }//春天private void MenuItem_Click_4(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;//清楚图片bg.Children.Clear();Image image = new Image();//添加图片的路径image.Source = new BitmapImage(new Uri("images/春.jpg", UriKind.Relative));//image.Width = 840;//填充image.Stretch = Stretch.Fill;//添加图片bg.Children.Add(image);}//夏天private void MenuItem_Click_5(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;//清楚图片bg.Children.Clear();Image image = new Image();//添加图片的路径image.Source = new BitmapImage(new Uri("images/夏.jpg", UriKind.Relative));//image.Width = 840;//填充image.Stretch = Stretch.Fill;//添加图片bg.Children.Add(image);}//秋天private void MenuItem_Click_6(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;//清楚图片bg.Children.Clear();Image image = new Image();//添加图片的路径image.Source = new BitmapImage(new Uri("images/秋.jpg", UriKind.Relative));//image.Width = 840;//填充image.Stretch = Stretch.Fill;//添加图片bg.Children.Add(image);}private void zidingyi_Click(object sender, RoutedEventArgs e){System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog();//给打开窗口设置格式openFileDialog.Filter = "(*jpg,*png)|*.jpg;*.png;";//打开运行对话框窗口DialogResult result = openFileDialog.ShowDialog();//判断点击OK的时候添加进去if (result == System.Windows.Forms.DialogResult.OK){string back = openFileDialog.FileName;BGimg(back);}}//自定义背景private void BGimg(string back){gr.Visibility = Visibility.Hidden;//清除之前的图片bg.Children.Clear();Image image = new Image();//图片路径image.Source = new BitmapImage(new Uri(back, UriKind.RelativeOrAbsolute));//填充image.Stretch = Stretch.Fill;//添加bg.Children.Add(image);}//个人中心private void MenuItem_Click_7(object sender, RoutedEventArgs e){StreamReader reader = new StreamReader("../../排名/index2.txt");string st = reader.ReadToEnd();//读取所有的字符textbox7.Text = textbox8.Text=st;StreamReader reader1 = new StreamReader("../../排名/index1.txt");string st2 = reader1.ReadToEnd();//读取所有的字符textbox9.Text =st2;gr.Visibility = Visibility.Visible;}List<int> arr = new List<int>();//排行榜private void MenuItem_Click_8(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;for (int i = 0; i < arr.Count; i++){FileStream file = new FileStream("../../排名/index.txt", FileMode.Append, FileAccess.Write);StreamWriter writer = new StreamWriter(file);writer.Write("本关排名:{0};本关时间为:{1}{2}", arr.IndexOf(arr[i]) + 1, arr[i], "\r\n");writer.Close();}StreamReader reader = new StreamReader("../../排名/index.txt");string st = reader.ReadToEnd();//读取所有的字符System.Windows.MessageBox.Show(st + "\r\n");reader.Close();}private void Button_Click(object sender, RoutedEventArgs e){gr.Visibility = Visibility.Hidden;}}
}

MyRandom类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 开心连连看
{public  class MyRandom{private int Count;  //产生多少个数字private int Amount; //产生几份private int Max;    //最大数(不包含)private int Min;    //最小数/// <summary>/// 将设置随机数独立成MyRandom.cs,这里将图片个数等一些属性都设置成了可变的/// </summary>/// <param name="count">产生多少个数字</param>/// <param name="amount">产生几份(须为count的约数)</param>/// <param name="min">最小数</param>/// <param name="max">最大数(不包含)</param>public MyRandom(int count, int amount, int min, int max){if (count % amount != 0)throw new Exception("count须为amount的整数倍");if (min > max)throw new Exception("min必须小于等于max");Count = count;Amount = amount;Max = max;Min = min;}public List<int> Get(){Random rand = new Random();List<int> ran = new List<int>();for (int n = 0; n < Count / Amount; n++)ran.Add(rand.Next(Min, Max));for (int i = 1; i < Amount; i++){List<int> temp = new List<int>();temp.AddRange(ran);for (int n = 0; n < Count / Amount; n++){int r = rand.Next(0, temp.Count);ran.Insert(rand.Next(0, ran.Count), temp[r]);temp.RemoveAt(r);}}return ran;}}
}

MyButton类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Media.Imaging;namespace 开心连连看
{class MyButton : Button{//图片的名称,用于判断两个按钮是否为同一个public int Flag { get; set; }//Button所在行public int RowNum { get; set; }//所在列public int ColNum { get; set; }public int BJ { get; set; }public bool Isdianjiguo { get; set; }public MyButton(int flag, int romNum, int colNum){this.Flag = flag;this.RowNum = romNum;this.ColNum = colNum;//不为0的时候创建图片if (flag != 0){Image img = new Image();/*img.Source = new BitmapImage(new Uri(@"images\" + flag + ".png", UriKind.Relative));*/this.Content = img;this.BJ = flag;}}}
}

WPF翻盘连连看(二)相关推荐

  1. WPF实用指南二:移除窗体的图标

    原文:WPF实用指南二:移除窗体的图标 WPF没有提供任何功能来移除窗体上的icon图标.一般的做法是设置一个空白的图标,如下图1: 这种做法在窗体边框与标题之间仍然会保留一片空白. 比较好的做法是使 ...

  2. WPF模板(二)应用

    原文:WPF模板(二)应用 本次内容来源于电子书,和上一篇一样. 在WPF中有三大模板ControlTemplate,ItemsPanelTemplate,DataTemplate.其中Control ...

  3. WPF翻牌连连看(一)

    WPF翻牌连连看(一) 设计界面: Mybutton.cs代码: using System; using System.Collections.Generic; using System.Linq; ...

  4. WPF基础系列二:控件简介

    控件简介 文章目录 控件简介 前言 一.控件 二.控件类型 三.控件详解 1.ContentControl 类 2.HeaderedContentControl 类 3.ItemsControl 类 ...

  5. 《Programming WPF》学习(二)Application及其设置

          2.1Application简介 Application是一个地址空间,在WPF中应用程序就是在System.Windows命名空间下的一个Application实例.一个应用程序只能对应 ...

  6. WPF疑难杂症之二(全屏幕窗口)

    近日的学习中遇到一个非常奇怪的问题:用XAML文件创建了一个全屏幕窗口,然后,在窗口中建立了一个非常简单的动画.一切都在我的掌控之中,实现非常的顺利. WPF中用XAML创建全屏幕窗口非常简单,只需要 ...

  7. wpf学习笔记二 深入学习 xaml

    1.XAML 主要用于绘制UI界面,最大的优点是能使UI与运行逻辑分离开来,使得整个程序回到逻辑处理上来. 每一个标签对应.NET Framework类库的一个控件类.通过设置标签的Attribute ...

  8. DevExpress v18.1新版亮点——WPF篇(二)

    2019独角兽企业重金招聘Python工程师标准>>> 用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevE ...

  9. WPF教程(二) WPF vs WinForms

    在前面的章节,我们讨论了WPF是什么,还涉及了一点点WinForms.在本章节,我将尝试比较两者,尽管它们服务的目的一样,却存在很多的区别.如果你以前从来没有接触过WinForms,或者WPF是你学习 ...

最新文章

  1. 转载: Vim 练级攻略
  2. Vim高手,从来不用鼠标
  3. Python os和os.path的基础知识与常用操作
  4. 【leetcode】472. Concatenated Words
  5. 7个习惯可以改变一个人和他的一生
  6. git提取和拉取区别_每天一Git之起步 - 关于版本控制
  7. linux 网卡no carrier,linux centos 7 网卡突然不能上网异常解决
  8. 苹果自带相册打马赛克_哥们被绿?iOS 13惊现漏洞,马赛克去除
  9. markdown语法简明笔记
  10. java 获取属性值和设置属性值
  11. 一句公道话引发的......
  12. Linux下LAMP服务配置
  13. 机器学习基础:极大似然估计(Machine Learning Fundamentals: Maximum Likelihood Estimation)
  14. imx385驱动、imx307驱动、imx327驱动调试记录
  15. 机器学习:matlab和python实现PCA降维算法
  16. 微信公众号如何做推送?微信日常图文推送怎么做?
  17. 微信小程序 添加分割线
  18. vmware运行虚拟机ubuntu,电脑就重启
  19. js 实现在当前页面打开新窗口
  20. 2022金九银十最全的软件测试面试题,能不能找到合适工作就看它了

热门文章

  1. 西游记2--唐僧俗世篇
  2. 使用VB写一个简单的添加系统环境变量的软件以及实现一键格式化U盘
  3. The 10 Most Important Linux Commands/10个最经常使用的命令行
  4. 玩聚SD:感谢ECVIP、盗盗、网贝、和菜头的博客推荐
  5. 数据库原理—数据查询
  6. 开发板如何ping通百度
  7. 推荐使用:易企在线客服升级版
  8. 计算机无法连接富士网络打印机,网络打印机无法连接的解决方法是什么
  9. python习题答案集
  10. ITU BT 601建议及与ITU BT656 的区别