c#拼图小游戏
来源:互联网 发布:淘宝手机版订单回收站 编辑:程序博客网 时间:2024/05/17 20:31
最近两天写了个c#的拼图小游戏,支持用户用自己的图片,以下是代码
新手所以比较简陋,美化的相关还没学,以下是源代码,新手可以看一下
顺带学了下打包成安装包.msi 和setup.exe虽然中间也遇到了问题,但最后也都解决了
准备最近再练练算法的题,迷宫,acm什么的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int succ = 0;
private void Form1_Paint(object sender, PaintEventArgs e) //初学gdi绘图的小代码
{
//Graphics g = e.Graphics;
//Pen p = new Pen(Color.Black, 1);
//g.DrawLine(p, 10, 10, 100, 100);
//g.DrawRectangle(p, 10, 10, 100, 100);
//g.DrawEllipse(p, 10, 10, 100, 100);
}
private void pictureBox1_Click(object sender, EventArgs e)
{
if ((pictureBox1.Location.Y == pictureBox9.Location.Y && pictureBox1.Location.X == pictureBox9.Location.X + 100) || (pictureBox1.Location.Y == pictureBox9.Location.Y && pictureBox1.Location.X == pictureBox9.Location.X - 100) || (pictureBox1.Location.X == pictureBox9.Location.X && pictureBox1.Location.Y == pictureBox9.Location.Y - 100) || (pictureBox1.Location.X == pictureBox9.Location.X && pictureBox1.Location.Y == pictureBox9.Location.Y + 100))
{
Point p = pictureBox9.Location;
pictureBox9.Location = pictureBox1.Location;
pictureBox1.Location = p;
}
}
private void pictureBox2_Click(object sender, EventArgs e)
{
if ((pictureBox2.Location.Y == pictureBox9.Location.Y && pictureBox2.Location.X == pictureBox9.Location.X + 100) || (pictureBox2.Location.Y == pictureBox9.Location.Y && pictureBox2.Location.X == pictureBox9.Location.X - 100) || (pictureBox2.Location.X == pictureBox9.Location.X && pictureBox2.Location.Y == pictureBox9.Location.Y - 100) || (pictureBox2.Location.X == pictureBox9.Location.X && pictureBox2.Location.Y == pictureBox9.Location.Y + 100))
{
Point p = pictureBox9.Location;
pictureBox9.Location = pictureBox2.Location;
pictureBox2.Location = p;
}
}
private void pictureBox3_Click(object sender, EventArgs e)
{
if ((pictureBox3.Location.Y == pictureBox9.Location.Y && pictureBox3.Location.X == pictureBox9.Location.X + 100) || (pictureBox3.Location.Y == pictureBox9.Location.Y && pictureBox3.Location.X == pictureBox9.Location.X - 100) || (pictureBox3.Location.X == pictureBox9.Location.X && pictureBox3.Location.Y == pictureBox9.Location.Y - 100) || (pictureBox3.Location.X == pictureBox9.Location.X && pictureBox3.Location.Y == pictureBox9.Location.Y + 100))
{
Point p = pictureBox9.Location;
pictureBox9.Location = pictureBox3.Location;
pictureBox3.Location = p;
}
}
private void pictureBox4_Click(object sender, EventArgs e)
{
if ((pictureBox4.Location.Y == pictureBox9.Location.Y && pictureBox4.Location.X == pictureBox9.Location.X + 100) || (pictureBox4.Location.Y == pictureBox9.Location.Y && pictureBox4.Location.X == pictureBox9.Location.X - 100) || (pictureBox4.Location.X == pictureBox9.Location.X && pictureBox4.Location.Y == pictureBox9.Location.Y - 100) || (pictureBox4.Location.X == pictureBox9.Location.X && pictureBox4.Location.Y == pictureBox9.Location.Y + 100))
{
Point p = pictureBox9.Location;
pictureBox9.Location = pictureBox4.Location;
pictureBox4.Location = p;
}
}
private void pictureBox5_Click(object sender, EventArgs e)
{
if ((pictureBox5.Location.Y == pictureBox9.Location.Y && pictureBox5.Location.X == pictureBox9.Location.X + 100) || (pictureBox5.Location.Y == pictureBox9.Location.Y && pictureBox5.Location.X == pictureBox9.Location.X - 100) || (pictureBox5.Location.X == pictureBox9.Location.X && pictureBox5.Location.Y == pictureBox9.Location.Y - 100) || (pictureBox5.Location.X == pictureBox9.Location.X && pictureBox5.Location.Y == pictureBox9.Location.Y + 100))
{
Point p = pictureBox9.Location;
pictureBox9.Location = pictureBox5.Location;
pictureBox5.Location = p;
}
}
private void pictureBox6_Click(object sender, EventArgs e)
{
if ((pictureBox6.Location.Y == pictureBox9.Location.Y && pictureBox6.Location.X == pictureBox9.Location.X + 100) || (pictureBox6.Location.Y == pictureBox9.Location.Y && pictureBox6.Location.X == pictureBox9.Location.X - 100) || (pictureBox6.Location.X == pictureBox9.Location.X && pictureBox6.Location.Y == pictureBox9.Location.Y - 100) || (pictureBox6.Location.X == pictureBox9.Location.X && pictureBox6.Location.Y == pictureBox9.Location.Y + 100))
{
Point p = pictureBox9.Location;
pictureBox9.Location = pictureBox6.Location;
pictureBox6.Location = p;
}
if (succ == 0)
{
if (pictureBox1.Location == new Point(0, 0) && pictureBox2.Location == new Point(100, 0) && pictureBox3.Location == new Point(200, 0) && pictureBox4.Location == new Point(0, 100) && pictureBox5.Location == new Point(100, 100) && pictureBox6.Location == new Point(200, 100) && pictureBox7.Location == new Point(0, 200) && pictureBox8.Location == new Point(100, 200))
{
MessageBox.Show("拼图成功,恭喜(~ ̄▽ ̄)~ ", "congratulation", MessageBoxButtons.OK);
succ = 1;
}
}
}
private void pictureBox7_Click(object sender, EventArgs e)
{
if ((pictureBox7.Location.Y == pictureBox9.Location.Y && pictureBox7.Location.X == pictureBox9.Location.X + 100) || (pictureBox7.Location.Y == pictureBox9.Location.Y && pictureBox7.Location.X == pictureBox9.Location.X - 100) || (pictureBox7.Location.X == pictureBox9.Location.X && pictureBox7.Location.Y == pictureBox9.Location.Y - 100) || (pictureBox7.Location.X == pictureBox9.Location.X && pictureBox7.Location.Y == pictureBox9.Location.Y + 100))
{
Point p = pictureBox9.Location;
pictureBox9.Location = pictureBox7.Location;
pictureBox7.Location = p;
}
}
private void pictureBox8_Click(object sender, EventArgs e)
{
if ((pictureBox8.Location.Y == pictureBox9.Location.Y && pictureBox8.Location.X == pictureBox9.Location.X + 100) || (pictureBox8.Location.Y == pictureBox9.Location.Y && pictureBox8.Location.X == pictureBox9.Location.X - 100) || (pictureBox8.Location.X == pictureBox9.Location.X && pictureBox8.Location.Y == pictureBox9.Location.Y - 100) || (pictureBox8.Location.X == pictureBox9.Location.X && pictureBox8.Location.Y == pictureBox9.Location.Y + 100))
{
Point p = pictureBox9.Location;
pictureBox9.Location = pictureBox8.Location;
pictureBox8.Location = p;
}
if (succ == 0)
{
if (pictureBox1.Location == new Point(0, 0) && pictureBox2.Location == new Point(100, 0) && pictureBox3.Location == new Point(200, 0) && pictureBox4.Location == new Point(0, 100) && pictureBox5.Location == new Point(100, 100) && pictureBox6.Location == new Point(200, 100) && pictureBox7.Location == new Point(0, 200) && pictureBox8.Location == new Point(100, 200))
{
MessageBox.Show("拼图成功,恭喜(~ ̄▽ ̄)~ ", "congratulation", MessageBoxButtons.OK);
succ = 1;
}
}
}
private void pictureBox9_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e) //这一段是对图像的操作
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
string strf = System.IO.Path.GetExtension(ofd.FileName);
if (strf == ".jpg" || strf == ".png" || strf == ".bmp")
{
Image img1 = Image.FromFile(ofd.FileName);
if (img1.Width < 300 || img1.Height < 300)
MessageBox.Show("图片大小必须大于300*300", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
pictureBox10.Image = new System.Drawing.Bitmap(img1, 200, 200); //图片自适应
Image img2 = new System.Drawing.Bitmap(img1, 300, 300);
Bitmap bmp = new Bitmap(img2); //图像分割
pictureBox1.Image = bmp.Clone(new System.Drawing.Rectangle(0, 0, 100, 100), img2.PixelFormat);
pictureBox2.Image = bmp.Clone(new System.Drawing.Rectangle(100, 0, 100, 100), img2.PixelFormat);
pictureBox3.Image = bmp.Clone(new System.Drawing.Rectangle(200, 0, 100, 100), img2.PixelFormat);
pictureBox4.Image = bmp.Clone(new System.Drawing.Rectangle(0, 100, 100, 100), img2.PixelFormat);
pictureBox5.Image = bmp.Clone(new System.Drawing.Rectangle(100, 100, 100, 100), img2.PixelFormat);
pictureBox6.Image = bmp.Clone(new System.Drawing.Rectangle(200, 100, 100, 100), img2.PixelFormat);
pictureBox7.Image = bmp.Clone(new System.Drawing.Rectangle(0, 200, 100, 100), img2.PixelFormat);
pictureBox8.Image = bmp.Clone(new System.Drawing.Rectangle(100, 200, 100, 100), img2.PixelFormat);
Random r = new Random();
Point pit = new Point();
for (int i = 0; i <= r.Next(60, 120); i++) //打乱图片且保证肯定可以拼成功
{
int j = r.Next(4);
switch (j)
{
case 0:
{
if (pictureBox9.Location.X != 0)
{
pit = pictureBox9.Location;
pictureBox9.Location = new Point(pictureBox9.Location.X - 100, pictureBox9.Location.Y);
foreach (Control p in this.panel1.Controls)
{
if (p is PictureBox)
{
if (p.Location == pictureBox9.Location)
{
if (p != pictureBox9)
p.Location = pit;
}
}
}
}
} break;
case 1:
{
if (pictureBox9.Location.Y != 0)
{
pit = pictureBox9.Location;
pictureBox9.Location = new Point(pictureBox9.Location.X, pictureBox9.Location.Y - 100);
foreach (Control p in this.panel1.Controls)
{
if (p is PictureBox)
{
if (p.Location == pictureBox9.Location)
{
if (p != pictureBox9)
p.Location = pit;
}
}
}
}
} break;
case 2:
{
if (pictureBox9.Location.X != 200)
{
pit = pictureBox9.Location;
pictureBox9.Location = new Point(pictureBox9.Location.X + 100, pictureBox9.Location.Y);
foreach (Control p in this.panel1.Controls)
{
if (p is PictureBox)
{
if (p.Location == pictureBox9.Location)
{
if (p != pictureBox9)
p.Location = pit;
}
}
}
}
} break;
case 3:
{
if (pictureBox9.Location.Y != 200)
{
pit = pictureBox9.Location;
pictureBox9.Location = new Point(pictureBox9.Location.X, pictureBox9.Location.Y + 100);
foreach (Control p in this.panel1.Controls)
{
if (p is PictureBox)
{
if (p.Location == pictureBox9.Location)
{
if (p != pictureBox9)
p.Location = pit;
}
}
}
}
} break;
}
}
}
}
else
{
if(ofd.ShowDialog()==DialogResult.Cancel)
MessageBox.Show("您未选择文件", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
MessageBox.Show("仅支持.bmp或.png或.bmp文件","error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
private void Form1_Load(object sender, EventArgs e)
{
succ = 0;
Random r = new Random();
Point pit = new Point();
for (int i = 0; i <= r.Next(60, 120); i++)
{
int j = r.Next(4);
switch (j)
{
case 0:
{
if (pictureBox9.Location.X != 0)
{
pit = pictureBox9.Location;
pictureBox9.Location = new Point(pictureBox9.Location.X - 100, pictureBox9.Location.Y);
foreach (Control p in this.panel1.Controls)
{
if (p is PictureBox)
{
if (p.Location == pictureBox9.Location)
{
if (p != pictureBox9)
p.Location = pit;
}
}
}
}
}break;
case 1:
{
if (pictureBox9.Location.Y != 0)
{
pit = pictureBox9.Location;
pictureBox9.Location = new Point(pictureBox9.Location.X, pictureBox9.Location.Y - 100);
foreach (Control p in this.panel1.Controls)
{
if (p is PictureBox)
{
if (p.Location == pictureBox9.Location)
{
if (p != pictureBox9)
p.Location = pit;
}
}
}
}
} break;
case 2:
{
if (pictureBox9.Location.X != 200)
{
pit = pictureBox9.Location;
pictureBox9.Location = new Point(pictureBox9.Location.X + 100, pictureBox9.Location.Y);
foreach (Control p in this.panel1.Controls)
{
if (p is PictureBox)
{
if (p.Location == pictureBox9.Location)
{
if (p != pictureBox9)
p.Location = pit;
}
}
}
}
} break;
case 3:
{
if (pictureBox9.Location.Y != 200)
{
pit = pictureBox9.Location;
pictureBox9.Location = new Point(pictureBox9.Location.X, pictureBox9.Location.Y + 100);
foreach (Control p in this.panel1.Controls)
{
if (p is PictureBox)
{
if (p.Location == pictureBox9.Location)
{
if (p != pictureBox9)
p.Location = pit;
}
}
}
}
} break;
}
}
}
}
}
- c#拼图小游戏
- 拼图小游戏
- 拼图小游戏
- java拼图小游戏
- JS数字拼图小游戏
- JavaScript拼图小游戏
- swift 拼图小游戏
- android 美女拼图小游戏
- iOS之拼图小游戏
- VS,C#--拼图小游戏
- java智力拼图小游戏
- 美女拼图小游戏
- Android—拼图小游戏
- Android移动拼图小游戏
- android-拼图小游戏
- Android 小游戏 :撸啊撸拼图
- java拼图小游戏
- Android-拼图小游戏
- 27.移除数组中某一值
- 【WPF】右下角弹出自定义通知样式(Notification)——简单教程
- ping程序的实现
- 扫雷(静态)
- Python使用MySQL数据库(新)
- c#拼图小游戏
- Fragment懒加载数据
- linux app
- 去除<input type='file'>右边路径方法
- Vuex 模块化实现待办事项的状态管理
- Echarts的研究(二)
- 下拉菜单中自动亮度调节
- 文章标题
- 湖南中医药大学2017年集训队第四场选拔赛-Problem F: Virtual Friends