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;
}
}
}
}