走了很多弯路……
作者:一想千开 日期:2008-06-30
为了提高效率,碰见书上的示例,都没有阅读过.都是看这个实例的要求,之后按照自己的思路去实现的.不能实现的时候再参考书上的,实现了就直接跳过书上这部分~
今天无意翻到以前跳过的示例,和自己写的代码对比一下~发现自己好笨~本来很容易实现的东西被我搞得很复杂才实现.看两个例子:
1.一段将52张扑克装进扑克集合中的代码
按我的子路写的代码:
程序代码
private Cards myCards=new Cards();
public Pai()
{
for (int i = 0; i < 52; i++)
{
int tempnum = i + 1;
if (tempnum % 4 == 0)
{
myCards.Add(new Card((HuaSe)(tempnum % 4 + 1), (DaXiao)(tempnum / 4)));
}
else
{
myCards.Add(new Card((HuaSe)(tempnum % 4 + 1), (DaXiao)(tempnum / 4 + 1)));
}
}
}
按照书上的思路写的代码:
程序代码
2.一段比较两张牌大小的运算符重载的代码:
按我的思路写出来的:
程序代码
按照书上的思路写出来是这样的:
程序代码
public static bool operator >(Card card1, Card card2)
{
if (card1.huase == card2.huase)
{
if (card1.daxiao == card2.daxiao)
{
return true;
}
else
{
if (Azuida)
{
if (card1.daxiao == (Daxiao)1)
{
return true;
}
else
{
return card1.daxiao > card2.daxiao;
}
}
else
{
return card1.daxiao > card2.daxiao;
}
}
}
else
{
if ((Zhu) && (card2.huase == Zhuse))
{
return false;
}
else
{
return true;
}
}
}
虽然都能实现同样的效果达到同样的目的~但明显,我走了太多弯路
今天无意翻到以前跳过的示例,和自己写的代码对比一下~发现自己好笨~本来很容易实现的东西被我搞得很复杂才实现.看两个例子:
1.一段将52张扑克装进扑克集合中的代码
按我的子路写的代码:
程序代码private Cards myCards=new Cards();
public Pai()
{
for (int i = 0; i < 52; i++)
{
int tempnum = i + 1;
if (tempnum % 4 == 0)
{
myCards.Add(new Card((HuaSe)(tempnum % 4 + 1), (DaXiao)(tempnum / 4)));
}
else
{
myCards.Add(new Card((HuaSe)(tempnum % 4 + 1), (DaXiao)(tempnum / 4 + 1)));
}
}
}
按照书上的思路写的代码:
程序代码 Cards Mycards = new Cards();
public Pai()
{
for (int ihuase = 1; ihuase < 5; ihuase++)
{
for (int idaxiao = 1; idaxiao < 14; idaxiao++)
{
Mycards.Add(new Card((Huase)ihuase, (Daxiao)idaxiao));
}
}
}
public Pai()
{
for (int ihuase = 1; ihuase < 5; ihuase++)
{
for (int idaxiao = 1; idaxiao < 14; idaxiao++)
{
Mycards.Add(new Card((Huase)ihuase, (Daxiao)idaxiao));
}
}
}
2.一段比较两张牌大小的运算符重载的代码:
按我的思路写出来的:
程序代码 public static bool operator >(Card card1, Card card2)
{
if (card1 == card2)
{
return true;
}
else if (Azuida)
{
if (Zhu)
{
if (card1.huase == Zhuse)
{
if (card2.huase == Zhuse)
{
if (card1.daxiao == (Daxiao)1)
{
return true;
}
else
{
return card1.daxiao > card2.daxiao;
}
}
else
{
return true;
}
}
else if (card2.huase == Zhuse)
{
return false;
}
else
{
if (card2.huase == card1.huase)
{
if (card1.daxiao == (Daxiao)1)
{
return true;
}
else
{
return card1.daxiao > card2.daxiao;
}
}
else
{
return true;
}
}
}
else
{
if (card2.huase == card1.huase)
{
if (card1.daxiao == (Daxiao)1)
{
return true;
}
else
{
return card1.daxiao > card2.daxiao;
}
}
else
{
return true;
}
}
}
else
{
if (Zhu)
{
if (card1.huase == Zhuse)
{
if (card2.huase == Zhuse)
{
return card1.daxiao > card2.daxiao;
}
else
{
return true;
}
}
else if (card2.huase == Zhuse)
{
return false;
}
else
{
if (card2.huase == card1.huase)
{
return card1.daxiao > card2.daxiao;
}
else
{
return true;
}
}
}
else
{
if (card2.huase == card1.huase)
{
return card1.daxiao > card2.daxiao;
}
else
{
return true;
}
}
}
}
{
if (card1 == card2)
{
return true;
}
else if (Azuida)
{
if (Zhu)
{
if (card1.huase == Zhuse)
{
if (card2.huase == Zhuse)
{
if (card1.daxiao == (Daxiao)1)
{
return true;
}
else
{
return card1.daxiao > card2.daxiao;
}
}
else
{
return true;
}
}
else if (card2.huase == Zhuse)
{
return false;
}
else
{
if (card2.huase == card1.huase)
{
if (card1.daxiao == (Daxiao)1)
{
return true;
}
else
{
return card1.daxiao > card2.daxiao;
}
}
else
{
return true;
}
}
}
else
{
if (card2.huase == card1.huase)
{
if (card1.daxiao == (Daxiao)1)
{
return true;
}
else
{
return card1.daxiao > card2.daxiao;
}
}
else
{
return true;
}
}
}
else
{
if (Zhu)
{
if (card1.huase == Zhuse)
{
if (card2.huase == Zhuse)
{
return card1.daxiao > card2.daxiao;
}
else
{
return true;
}
}
else if (card2.huase == Zhuse)
{
return false;
}
else
{
if (card2.huase == card1.huase)
{
return card1.daxiao > card2.daxiao;
}
else
{
return true;
}
}
}
else
{
if (card2.huase == card1.huase)
{
return card1.daxiao > card2.daxiao;
}
else
{
return true;
}
}
}
}
按照书上的思路写出来是这样的:
程序代码public static bool operator >(Card card1, Card card2)
{
if (card1.huase == card2.huase)
{
if (card1.daxiao == card2.daxiao)
{
return true;
}
else
{
if (Azuida)
{
if (card1.daxiao == (Daxiao)1)
{
return true;
}
else
{
return card1.daxiao > card2.daxiao;
}
}
else
{
return card1.daxiao > card2.daxiao;
}
}
}
else
{
if ((Zhu) && (card2.huase == Zhuse))
{
return false;
}
else
{
return true;
}
}
}
虽然都能实现同样的效果达到同样的目的~但明显,我走了太多弯路
评论: 2 | 引用: 0 | 查看次数: 324
- 1
你是谁啊!为什么要破我的网站后台 在我的网站上发了一个代码你是谁啊!为什么要破我的网站后台 我会黑你
- 1
发表评论
上一篇
下一篇

文章来自:
Tags: 





你是不是搞错了?