前边讲了直接用页面的控件布局,实现摆牌的效果,现在我们用后台生成的数字来与相应的图片对应
后台生成的效果
http://blog.csdn.net/aojiancc2/article/details/14446711 三
一:我们用一个54位的数组来分别代替54张牌,对应的方式写到一个switch里边
为了方便把玩家手中的牌从大到小理整齐,使用了数字大的对应大的牌,这样我们只需要降序排序就行了
public string GetUrl(int _pokertype)
{
switch(_pokertype)
{
case 0: return "Image/hei_3.png";/*四个3*/
case 1: return "Image/hong_3.png";
case 2: return "Image/mei_3.png";
case 3: return "Image/fang_3.png";
case 4: return "Image/hei_4.png";/*四个4*/
case 5: return "Image/hong_4.png";
case 6: return "Image/mei_4.png";
case 7: return "Image/fang_4.png";
case 8: return "Image/hei_5.png";/*四个5*/
case 9: return "Image/hong_5.png";
case 10: return "Image/mei_5.png";
case 11: return "Image/fang_5.png";
case 12: return "Image/hei_6.png";/*四个6*/
case 13: return "Image/hong_6.png";
case 14: return "Image/mei_6.png";
case 15: return "Image/fang_6.png";
case 16: return "Image/hei_7.png";/*四个7*/
case 17: return "Image/hong_7.png";
case 18: return "Image/mei_7.png";
case 19: return "Image/fang_7.png";
case 20: return "Image/hei_8.png";/*四个8*/
case 21: return "Image/hong_8.png";
case 22: return "Image/mei_8.png";
case 23: return "Image/fang_8.png";
case 24: return "Image/hei_9.png";/*四个9*/
case 25: return "Image/hong_9.png";
case 26: return "Image/mei_9.png";
case 27: return "Image/fang_9.png";
case 28: return "Image/hei_10.png";/*四个10*/
case 29: return "Image/hong_10.png";
case 30: return "Image/mei_10.png";
case 31: return "Image/fang_10.png";
case 32: return "Image/hei_11.png";/*四个J*/
case 33: return "Image/hong_11.png";
case 34: return "Image/mei_11.png";
case 35: return "Image/fang_11.png";
case 36: return "Image/hei_12.png";/*四个Q*/
case 37: return "Image/hong_12.png";
case 38: return "Image/mei_12.png";
case 39: return "Image/fang_12.png";
case 40: return "Image/hei_13.png";/*四个k*/
case 41: return "Image/hong_13.png";
case 42: return "Image/mei_13.png";
case 43: return "Image/fang_13.png";
case 44: return "Image/hei_1.png";/*四个A*/
case 45: return "Image/hong_1.png";
case 46: return "Image/mei_1.png";
case 47: return "Image/fang_1.png";
case 48: return "Image/hei_2.png";/*四个2*/
case 49: return "Image/hong_2.png";
case 50: return "Image/mei_2.png";
case 51: return "Image/fang_2.png";
case 52: return "Image/xiaowang.png";/*大王,小王*/
case 53: return "Image/dawang.png";
default: return null;
}
}
二:既然我们0-53的数字分别对应了玩家的牌,现在我们只需要产生随机的0-53之间的数,分给用户与底牌就行了
算法有很多种,这里用一种先依次产生0-53才生成随机数作为位置与当前位置交换
public int[] Deal()//发牌
{
int[] cardValueArray = new int[54];//存代表54张牌的数组
for (int i = 0; i < 54; i++)//先让数组的下标等于下标数
{
cardValueArray[i] = i;
}
Random ra = new Random();
for (int i = 0; i < 54; i++) //随机产生一个位置用与和当前位置交换,以便打乱顺序,比如第一次参数4就让1和4交换值
{
int randommun = ra.Next(0, 53);
int middle = cardValueArray[i];
cardValueArray[i] = cardValueArray[randommun];
cardValueArray[randommun] = middle;
}
return cardValueArray;
}
好现在有了这两个东西,只需要在生成的数组对应Image的url在后台添加图片上去就行了