WPF翻盘连连看(二)

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));   
        }
        //背景音乐1
        SoundPlayer player1 = new SoundPlayer(@"../../music/1.wav");
        //背景音乐2
        MediaPlayer bgmusic = new MediaPlayer();
        //胜利音乐3
        MediaPlayer 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++)
            {
                //行10
                RowDefinition rowDef = new RowDefinition();
                GridGame.RowDefinitions.Add(rowDef);
                //列10
                ColumnDefinition 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;
            }
        }
    }
}

发布了96 篇原创文章 · 获赞 147 · 访问量 9813

猜你喜欢

转载自blog.csdn.net/chonbi/article/details/104092676