c# 调试一个拼图小游戏
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace _91112_2
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
Label[,] arrLbl = new Label[3, 3];//创建数组对象
int unrow = 0, uncol = 0;//记录label下标
bool playping = false;//是否游戏中
private void btnplay_Click(object sender, EventArgs e)
{
arrLbl[0, 0] = label1;
arrLbl[0, 1] = label2;
arrLbl[0, 2] = label3;
arrLbl[1, 0] = label4;
arrLbl[1, 1] = label5;
arrLbl[1, 2] = label6;
arrLbl[2, 0] = label7;
arrLbl[2, 1] = label8;
arrLbl[2, 2] = label9;
arrLbl[unrow, unrow].Visible = true;//为防止两次单击开始游戏
int[] arrnum ={ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//将一维数组中的数字随机排列
Random rm = new Random();//初始化随机函数类
for (int i = 0; i < 8; i++)
{
int rmnum = rm.Next(i, 9);//随机数大于等于i,小于9
int temp = arrnum[i];
//交换数组中2个元素的值
arrnum[i] = arrnum[rmnum];
arrnum[i] = temp;
}
for (int i = 0; i < 9; i++)
{//把一维数组的数组依次在二维数组中的标签控件显示
arrLbl[i / 3, i % 3].Text = arrnum[i].ToString();
}
int cover = rm.Next(0, 9);//产生一个随机数掩盖某个数字
unrow = cover / 3;//转化为不可见标签的在二维数组中的行下标
uncol = cover % 3;//转化为列下标
arrLbl[unrow, uncol].Visible = false;//让这个标签不可见
playping = true; //游戏进行中标记
}
private void label1_Click(object sender, EventArgs e)
{
if (!playping)
{
return;
}
int row = ((Label)sender).Top / 80;//计算点中标签的行下标
int col = ((Label)sender).Left / 80;//列下标
if (Math.Abs(row - unrow) + Math.Abs(col - uncol) == 1)
{//判断方块是否可以移动,可以则交换标签显示的数字
string temp = arrLbl[unrow, uncol].Text;
arrLbl[unrow, uncol].Text = arrLbl[row, col].Text;
arrLbl[unrow, uncol].Text = temp;
arrLbl[unrow, uncol].Visible = true;
arrLbl[row, col].Visible = false;
unrow = row;//设置新的不可见标签下标值
uncol = col;
}
for (int i = 0; i < 9; i++)
{//判断是否成功排列数字
if (arrLbl[i / 3, i % 3].Text != Convert.ToString(i + 1))
{
break;
}
if (i == 8)
{
arrLbl[unrow, uncol].Visible = true;//显示被隐盖数字
playping = false;//设置游戏结束标志
MessageBox.Show("过关!","消息",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace _91112_2
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
Label[,] arrLbl = new Label[3, 3];//创建数组对象
int unrow = 0, uncol = 0;//记录label下标
bool playping = false;//是否游戏中
private void btnplay_Click(object sender, EventArgs e)
{
arrLbl[0, 0] = label1;
arrLbl[0, 1] = label2;
arrLbl[0, 2] = label3;
arrLbl[1, 0] = label4;
arrLbl[1, 1] = label5;
arrLbl[1, 2] = label6;
arrLbl[2, 0] = label7;
arrLbl[2, 1] = label8;
arrLbl[2, 2] = label9;
arrLbl[unrow, unrow].Visible = true;//为防止两次单击开始游戏
int[] arrnum ={ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//将一维数组中的数字随机排列
Random rm = new Random();//初始化随机函数类
for (int i = 0; i < 8; i++)
{
int rmnum = rm.Next(i, 9);//随机数大于等于i,小于9
int temp = arrnum[i];
//交换数组中2个元素的值
arrnum[i] = arrnum[rmnum];
arrnum[i] = temp;
}
for (int i = 0; i < 9; i++)
{//把一维数组的数组依次在二维数组中的标签控件显示
arrLbl[i / 3, i % 3].Text = arrnum[i].ToString();
}
int cover = rm.Next(0, 9);//产生一个随机数掩盖某个数字
unrow = cover / 3;//转化为不可见标签的在二维数组中的行下标
uncol = cover % 3;//转化为列下标
arrLbl[unrow, uncol].Visible = false;//让这个标签不可见
playping = true; //游戏进行中标记
}
private void label1_Click(object sender, EventArgs e)
{
if (!playping)
{
return;
}
int row = ((Label)sender).Top / 80;//计算点中标签的行下标
int col = ((Label)sender).Left / 80;//列下标
if (Math.Abs(row - unrow) + Math.Abs(col - uncol) == 1)
{//判断方块是否可以移动,可以则交换标签显示的数字
string temp = arrLbl[unrow, uncol].Text;
arrLbl[unrow, uncol].Text = arrLbl[row, col].Text;
arrLbl[unrow, uncol].Text = temp;
arrLbl[unrow, uncol].Visible = true;
arrLbl[row, col].Visible = false;
unrow = row;//设置新的不可见标签下标值
uncol = col;
}
for (int i = 0; i < 9; i++)
{//判断是否成功排列数字
if (arrLbl[i / 3, i % 3].Text != Convert.ToString(i + 1))
{
break;
}
if (i == 8)
{
arrLbl[unrow, uncol].Visible = true;//显示被隐盖数字
playping = false;//设置游戏结束标志
MessageBox.Show("过关!","消息",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
}
}
...全文
相关推荐
c#拼图小游戏源代码
总的来说,这款C#拼图小游戏源代码是一个很好的学习资源,它涵盖了C#基础、Windows Forms应用开发、图像处理和算法设计等多个方面。
Unity3D+Vuforia的C#解密AR小游戏源码深度解析
增强现实开发中,如何让虚拟内容稳定地锚定在真实物体上,是决定交互体验的核心问题。Vuforia 作为成熟的AR引擎,其图像目标(Image Target)技术通过预先提取特征点并进行实时匹配,为卡片、海报等平面物体提供可靠的跟踪能力。而 C# 脚本则承担了状态管理、输入校验与界面切换等逻辑,两者结合能够形成完整的AR交互链路。在 Unity 3D 游戏引擎中集成 Vuforia,可以快速搭建基于图像识别的解密类小游戏,这类玩法常见于展台互动、教育游戏与实体桌游增强场景。实际开发中涉及识别方案选型、跟踪事件回
C#拼图小游戏
总之,C#拼图小游戏是一个结合了基础编程知识与实践的好项目,它不仅可以让学习者掌握C#语言的基本用法,还能提升对图形界面编程、算法设计以及软件工程的理解。
拼图小游戏拼图小游戏拼图小游戏
【标题】:C#实现的拼图小游戏【描述】:这款拼图小游戏是使用C#编程语言开发的,它提供了一个简单而有趣的娱乐方式,让玩家可以通过移动和旋转拼图块来完成图像。
【Unity2D】拼图源代码(C#)
【Unity2D】拼图源代码(C#)是一款基于Unity引擎2D功能开发的小游戏,主要展示了如何利用C#编程语言实现拼图游戏的基本逻辑。


