文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>用SliverLight做三国杀(四)重新定义卡牌类,增加牌堆类

用SliverLight做三国杀(四)重新定义卡牌类,增加牌堆类

时间:2011-04-06  来源:moremoretea1983

设计过程当中不得不对Card类重新定义:由于比较简单,我就不解释了,呵呵,大家都看的懂
 1 public class Card
2 {
3 public Card()
4 {
5 // Insert code required on object creation below this point.
6 }
7
8 /// <summary>
9 /// 表示牌的ID。
10 /// </summary>
11 public int ID { get; set; }
12 /// <summary>
13 /// 表示牌的花色。
14 /// </summary>
15 public string Color { get; set; }
16
17 /// <summary>
18 /// 表示牌的大小。
19 /// </summary>
20 public string Value { get; set; }
21
22 /// <summary>
23 /// 表示牌的名称。杀,闪,桃
24 /// </summary>
25 public string Name { get; set; }
26
27 public string ImagePath{get;set;}
 
设计牌堆类CardHeap 其中变化比较大的就是卡牌信息不再在数据库中存放了,直接被我读取在内存当中了,由于不会使用WebClient类异步读取 ,呵呵,会的朋友欢迎交流下。 这里定义了一个静态成员 _cards是我们存放纸牌的地方,就是牌堆啦,就是摸牌的地方 CardHeap()就是读取所有的107张牌,读完之后再洗牌,CardShuffle()是洗牌函数 目前牌堆的任务就是简单的洗牌,以后再添加其他的功能。
  1 public class CardHeap
2 {
3 public static List<Card> _cards = new List<Card>();//定义牌堆
4
5
6 public static int next=0;
7 public CardHeap()
8 {
9 // Insert code required on object creation below this point.
10 //一共107张牌,在数据库中定义好了
11 GetXmlFromString();
12 //GetXmlFromString();
13 }
14
15 void GetXmlFromString()
16 {
17 string strXml =
18 @"<?xml version=""1.0"" encoding=""utf-8"" ?>
19 <cards>
20 <Card ID=""1"" Name=""桃"" Color=""方块"" Value="""" Image=""img/tao.jpg"" />
21 <Card ID=""2"" Name=""桃"" Color=""方块"" Value="""" Image=""img/tao.jpg"" />
22 <Card ID=""3"" Name=""桃"" Color=""方块"" Value="""" Image=""img/tao.jpg"" />
23 中间代码比较多,就不一一写出来了,大家可以参考之前的XML文件
124 <Card ID=""105"" Name=""赤兔"" Color=""红桃"" Value=""5"" Image=""img/chitu.jpg"" />
125 <Card ID=""106"" Name=""大宛"" Color=""黑桃"" Value=""K"" Image=""img/dawan.jpg"" />
126 <Card ID=""107"" Name=""紫骍"" Color=""方块"" Value=""K"" Image=""img/zixin.jpg"" />
127 </cards>
128
129 ";
130 TextReader txtReader = new StringReader(strXml);
131
132 XDocument document = XDocument.Load(txtReader);
133 var cards = from f in document.Descendants("Card")//XML文件中定义的Cards
134 select new Card
135 {
136 ID = int.Parse(f.Attribute("ID").Value),
137 Name = f.Attribute("Name").Value,
138 Color = f.Attribute("Color").Value,
139 Value = f.Attribute("Value").Value,
140 ImagePath = f.Attribute("Image").Value
141
142 };
143 //List<Card> _card = new List<Card>();
144 _cards.Clear();
145 _cards.AddRange(cards);
146 //MessageBox.Show("读完了" + _cards.Count);
147 CardShuffle();这个是洗牌,洗牌的函数在下面定义,其实就是给个随机数,然后交换,比较简单
148 }
154
197
198 //洗牌工作
199 public void CardShuffle()
200 {
201 if (_cards.Count == 0)
202 {
203 MessageBox.Show("洗牌0000000");
204 }
205 int count = _cards.Count;
206 Card temp = new Card();
207 Random random=new Random();
208 for (int i = 0; i < count; i++)
209 {
210 //生成随机数
211 int cardtoswap = random.Next() % count;
212 temp = _cards[i];
213 _cards[i] = _cards[cardtoswap];
214 _cards[cardtoswap] = temp;
215
216 }
217
218 }
219
220
228
229
230 } 未完待续。。。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载