日期:2014-05-17  浏览次数:20792 次

手机游戏《彩珠传奇》,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);