手机游戏《彩珠传奇》,winform实现。如何判断连续的几个图片相同
前几天手机上玩了个游戏叫《彩珠传奇》,想没事想拿winform做一个。
首先imagelist里边存七张不同颜色的图片,然后界面左上方拖三个picturebox控件,随机的赋三张图片。
右上方,button控件一个,控件名——“开始”
然后正中间一个panel,拖9*9共81个picturebox,所有的绑定同一个click事件。
点击开始随机给左上方三个picturebox赋三张图片,panel中81个picturebox中随机的赋三张图片,其他picturebox仍然为空;点击panel中其中一个有图片的picturebox控件(P1),选中后,任意点击另一个为空的picturebox(P2),把P1的图片给P2(P1为空,P2有图片),这个过程结束后在81个picturebox中随机的选三个图片为空的,把左上角三个picturebox的图片随机的赋给他们,左上角三个picturebox重新随机的在imagelist中得到三张图片。
依此继续,当有横、竖、斜任意一个方向五张图片相同时,五张图片全部消失……
解决状况
已解决:1.左上角三个picturebox赋图片
解决方法:
Picture[] picture = new Picture[3];
for (int i = 0; i < picture.Length; i++)
{
picture[i] = new Picture(r.Next(0, imageList1.Images.Count));
}
pic1.Image = imageList1.Images[picture[0].PicNum];
pic2.Image = imageList1.Images[picture[1].PicNum];
pic3.Image = imageList1.Images[picture[2].PicNum];
2.每次在81个picturebox中随机挑三个,赋给他们图片
解决方法:
List<PictureBox> pics = new List<PictureBox>();
foreach (Control c in panel1.Controls)
{
PictureBox pic = c as PictureBox;
pic.Image = null;
if (pic != null)
pics.Add(pic);
}
Random r = new Random();
第一个随机数:
int i = r.Next(0, pics.Count);