连连看(C#版)——部分代码1

来源:互联网 发布:thewolf软件平台 编辑:程序博客网 时间:2024/04/26 05:41
    //随机分布图片    int index = 0;    int count = 180;            int[] iArr = new int[180];    Image jl = dic[0];            Random rand = new Random(unchecked((int)DateTime.Now.Ticks));       //在地图不同的位置分布不同图片    for (int i=0; i<180; i++)    {             iArr[i] = i;    }    for (int i=0; i<180; i++,count--)    {index = rand.Next()%count;                SImage[iArr[index]].X = 40 + iArr[index] % 18 * 40;                SImage[iArr[index]].Y = 25 + iArr[index] / 18 * 50;if (i%2 == 0){    if (uiPace == 1)    {//第一次图片30张不同                        SImage[iArr[index]].ImageNum = dic[rand.Next() % 30+1];    }    else    {//以后的关数40张不同                        SImage[iArr[index]].ImageNum = dic[rand.Next() % 40+1];    }                       jl = SImage[iArr[index]].ImageNum;}else {                    SImage[iArr[index]].ImageNum = jl;}//已经放置图片的位置移动到最后                iArr[index] = iArr[count - 1];    }            iResidualImage = 180;//变化图片,在没有可连接图片的时候        private void Displacement()           {            //最后一个单位用于交换元素            SImageMess[] SArrImage = new SImageMess[181];            int j = 0;            for (int i = 0; i < 180; i++)  //把还有显示图片的读进数组           {                if (SImage[i].ImageNum != dic[0])                {                    SArrImage[j++].ImageNum = SImage[i].ImageNum;                }            }            if (j == 0)            {                return;            }            Random rand = new Random(unchecked((int)DateTime.Now.Ticks));            int n;            int m;            for (int i = 0; i < 30; i++)   //随机(30次)选俩个然后交换起位置            {                n = rand.Next() % j ;                m = rand.Next() % j ;                SArrImage[180].ImageNum = SArrImage[n].ImageNum;                SArrImage[n].ImageNum = SArrImage[m].ImageNum;                SArrImage[m].ImageNum = SArrImage[180].ImageNum;            }            j = 0;            for (int i = 0; i < 180; i++)  //打乱后还原到原数据中            {                if (SImage[i].ImageNum != dic[0])                {                    SImage[i].ImageNum = SArrImage[j++].ImageNum;                }            }            this.Invalidate();        }
原创粉丝点击