c# 调试一个拼图小游戏

baoerzhang 2009-11-13 09:15:44
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);
}

}
}


}
}
...全文
151 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
baoerzhang 2009-11-16
  • 打赏
  • 举报
回复
代码多就没人看啦。幸好我自己解决啦。。
baoerzhang 2009-11-13
  • 打赏
  • 举报
回复
调试没有错误但运行结果不太一样(跟书上的),请高人指点

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧