博弈论中的简单合作博弈 C#实现
2010-09-30 21:00:00 来源:WEB开发网下面是一个我加进去的随机选手,即合作和不合作的态势是随机的,这里只展示Gamble()方法,其他同
1 public bool Gamble(string name)
2 {
3 Random rd=new Random();
4 int i=rd.Next(2);
5 if (i == 1)
6 {
7 return true;
8 }
9 return false;
10 }
下面是我一个舍友的策略,即根据后3次的合作记录来返回是否合作,Gamble()方法如下:
1 public bool Gamble(string name)
2 {
3 int z=0;
4 if (!Record.ContainsKey(name))
5 {
6 return true;
7 }
8 else
9 {
10 List<bool> l = Record[name];
11 if (l.Count == 1)
12 {
13 if (l[0])
14 {
15 return true;
16 }
17 else
18 {
19 return false;
20 }
21 }
22 else if(l.Count==2)
23 {
24 if (l[0] && l[1])
25 {
26 return true;
27 }
28 else
29 {
30 return false;
31 }
32 }
33 else if (l.Count >= 3)
34 {
35 if (l[l.Count - 1]) z++;
36 if (l[l.Count - 2]) z++;
37 if (l[l.Count - 3]) z++;
38 if (z >= 2) return true;
39 else {
40 return false;
41 }
42 }
43 }
44 return false;
45 }
更多精彩
赞助商链接