<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Panic的小屋</title><link>http://blog.vckbase.com/panic/</link><description>国破山河在，城春草木深。</description><managingEditor>Panic</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>Panic</dc:creator><title>临时保存</title><link>http://blog.vckbase.com/panic/archive/2008/04/18/33342.html</link><pubDate>Fri, 18 Apr 2008 08:34:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2008/04/18/33342.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/33342.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2008/04/18/33342.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/33342.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/33342.html</trackback:ping><description>几个领导者用公款点了一桌丰盛的酒席，飞禽走兽山珍海味 应有尽有.这时旁边有几个乞丐在一旁眼巴巴地看着，嘴里不断地流着哈喇子。但是这些领导却不把吃剩下的东西给这几个乞丐，因为领导的脚下还养了几只狗，残羹剩饭是要喂这几只狗的。当然了，这些乞丐连剩汤都喝不着，而领导看着这几个乞丐也很不爽，以至影 响了他们喝酒的兴致。这时来了两个外国人看到如此场面,一下子将领导的酒席给掀翻了。这一下领导想起了那几个乞丐，对乞丐说：&amp;#8220;帝国主义要来灭亡我们的民族了，必须和他们拼了，这样才能挽救 我们的民族。&amp;#8221;几个乞丐一听，立即高喊：&amp;#8220;领导吃什么是我们自己的事儿，列强掀桌子是我们民族的耻辱。&amp;#8221;然后高唱： &amp;#8220;起来，不愿意做奴隶的人们.....&amp;#8221;抄起打狗棍追着两个外 国人打去了.外国人打跑了,几个领导马上高喊：&amp;#8220;再来上一桌。&amp;#8221;然后又胡吃海喝起来。&lt;BR&gt;&lt;BR&gt;你抗议了吗? (转自天涯)&lt;BR&gt;为了GDP，有人疯狂违规卖地，几十万亿亩强行收来，转手就是几百万，你抗议了吗？&lt;BR&gt;　　房价暴涨，多少人穷其一生收入都买不起一个容身之所，你抗议了吗？&lt;BR&gt;　　看一次病，都能收你550万，你抗议了吗？&lt;BR&gt;　　墓地XX万，骨灰盒XX千，都快死不起了，你抗议了吗？&lt;BR&gt;　　几百亿养老钱，让人拿去随意投资，你抗议了吗？&lt;BR&gt;　　倾家荡产供一个大学生，却换来毕业即失业的结果，你抗议了吗？&lt;BR&gt;　　非典当前，掷百姓的生命安全于不顾，可以隐瞒疫情，你抗议了吗？&lt;BR&gt;　　XX省的AIDS疫情被人为的隐瞒了多少年，你抗议了吗？&lt;BR&gt;　　彩票造假，多少彩民的血汗钱被人私分，你抗议了吗？&lt;BR&gt;　　可以深更半夜调印花税，你抗议了吗？&lt;BR&gt;　　用自己手中的非流通股肆意掠夺股民的血汗钱，你抗议了吗？&lt;BR&gt;　　保险公司想圈钱就圈钱，想融资就融资，你抗议了吗？&lt;BR&gt;　　口口声声保证“人民币绝不升值！”，现在都快升了16%了，你抗议了吗？&lt;BR&gt;　　一张虎照，颠倒黑白的指鹿为马，快半年了，都没个交待，你抗议了？&lt;BR&gt;　　多少十几岁的孩子被人卖入黑窑当奴隶，你抗议了吗？&lt;BR&gt;　　矿难曾出不穷，几十上百的生命一次又一次的被埋入地下，你抗议了吗？&lt;BR&gt;　　大火当前，有人高呼“让领导先走！”上百名小学生被烧成焦炭，你抗议了吗？&lt;BR&gt;　　毒大米、毒食用油、毒奶粉、独火腿肠、毒鱼、毒水......快到了无物可食的地步，你抗议了吗？&lt;BR&gt;　　有了点权，就可以开着宝马、奔驰到处撞人，你抗议了吗？&lt;BR&gt;　　因为没有暂住证，就要被人打死，你抗议了吗？&lt;BR&gt;　　为了糊口摆个摊，被人追着满街逃，你抗议了吗？&lt;BR&gt;　　属于你的那个小本上写着“农业”二字，你就要被另一些人歧视一辈子，你抗议了吗？&lt;BR&gt;　　夜总会、娱乐城前，很多车都挂着某种特殊拍照，你抗议了吗？&lt;BR&gt;　　神州大地上，无数顶着国徽的豪华大楼拔地而起，你抗议了吗？&lt;BR&gt;　　对面的小学却没有一间像样的教室，你抗议了吗？&lt;BR&gt;　　几千万在一些人的嘴里竟成了“喝茶钱”，你抗议了吗？&lt;BR&gt;　　运营商提供发展中国家的服务，却按照发达国家的标准收费，你抗议了吗？&lt;BR&gt;　　年薪十万的抄表工，年薪6000万的国企老总，你抗议了吗？&lt;BR&gt;　　雪灾的列车上我们这些贱民受冻受饿时，50名韩国游客被转移到软卧车厢你抗议了吗？&lt;BR&gt;　　一个黄皮肤的中国女孩不知原因的和外国人有关系从楼上跳下去，警方草草结案，你抗议了吗&lt;BR&gt;　　去广交会，要收取外国人不用而中国人要用到良民证，你抗议了吗？&lt;BR&gt;　　&lt;BR&gt;　　&lt;BR&gt;　　&lt;BR&gt;　　国企私有，肥了领导，下岗了职工称为被贪官耻笑的40、50人员，你抗议了吗？&lt;BR&gt;　　香港回归多年，你们可以自由去吗，如果是日本等外国人却可以自由出入没有限期，文字货币都没有统一，连秦始皇都不如，你抗议了吗？&lt;BR&gt;　　中国人在自己国家要办暂住证，你抗议了吗？&lt;BR&gt;　　&lt;BR&gt;　　1.为什么在一千点时放QFII进场？ 2.为什么B股在最高点对国内开放？3.为什么中石油香港发行价格仅1.1港元.大陆发行价格16.7元人民币,高达10多倍.仅0.1元面值的紫金矿业A股发行价人民币7.13元,H股复权发行价0.33港元.相差20倍.公平原则在哪里? 4.为什么一开始就把泡沫化的股票发行给国人,而有投资价值的发行价格1.1港币发 给外国人？5.为什么在国外股市最高点对内放行QDII基金？ 6.为什么平安(名为“中国平安”，实为洋人控股)可以如此大规模疯狂抢劫国人的血汗钱？7.为什么美国次债危机刚刚开始发作的时候，却正是QDII出海的时候要国人去买单，这些都是巧合吗？这些你抗议了吗？&lt;BR&gt;　　&lt;BR&gt;　　是谁拿着国家的钱去买黑石基金和美国国债，亏空国有资产，你抗议了吗&lt;BR&gt;　　&lt;BR&gt;　　中国在国际上的形象不是普通老百姓树立的，老外对中国的印象是通过政府获得的，一个欺内媚外的政府是不会有朋友和地位的。&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/33342.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>字符串拷贝的小问题</title><link>http://blog.vckbase.com/panic/archive/2007/12/28/31543.html</link><pubDate>Fri, 28 Dec 2007 12:33:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2007/12/28/31543.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/31543.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2007/12/28/31543.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/31543.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/31543.html</trackback:ping><description>&lt;P&gt;作者： &lt;A href="http://blog.vckbase.com/panic/"&gt;&lt;a title="Panic" href="http://blog.vckbase.com/panic/" &gt;Panic&lt;/a&gt;&lt;/A&gt; 2007年12月28日&lt;BR&gt;&lt;BR&gt;先看代码：&lt;BR&gt;&lt;BR&gt;&amp;nbsp;char buf [20];&lt;BR&gt;strcpy(buf, "abcdefghijklmnopqrstuvwxyz");&lt;BR&gt;&lt;BR&gt;呵呵，只有两行，单独看都没错，合起来就麻烦了。&lt;BR&gt;是的，buf的长度只有20字节，无法容纳一个26字符还要外带一个'\0'结尾的字符串。&lt;BR&gt;这个拷贝操作将导致内存写操作越界，从而破坏其他地方的数据。&lt;BR&gt;&lt;BR&gt;这并不是一个很难发现的错误，但是当buf的定义和拷贝的时机相隔很远，或者频繁使用了strcat一类函数而忽视了字符串长度的时候，想要找出这个问题，还是比较麻烦的。&lt;BR&gt;&lt;BR&gt;解决方法有几种，最简单的就是定义足够大的缓冲区，比如当拷贝路径的时候，使用MAX_PATH宏。但是这有时候不太现实。&lt;BR&gt;我们也可以使用一个string类来管理，比如MFC的CString，或者STL的std::string，都可以，当增长的时候只要调用operator +就可以了。&lt;BR&gt;还有一个方式是使用strncpy，强制每次拷贝都输入一个长度参数。当然，这个参数的数值一般是buf的长度减1，buf的最后一个字节，则在初始化的时候就应该赋值为'\0'。这可以避免很多问题，但是遇到strcat的时候仍旧会有潜在危险，你可以考虑使用strncat，虽然这会带来额外的复杂性。&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/31543.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>有符号 &amp; 无符号！改变计算结果的陷阱！</title><link>http://blog.vckbase.com/panic/archive/2007/12/05/31098.html</link><pubDate>Wed, 05 Dec 2007 12:09:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2007/12/05/31098.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/31098.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2007/12/05/31098.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/31098.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/31098.html</trackback:ping><description>作者： &lt;A href="http://blog.vckbase.com/panic/"&gt;&lt;a title="Panic" href="http://blog.vckbase.com/panic/" &gt;Panic&lt;/a&gt;&lt;/A&gt; 2007年12月5日&lt;BR&gt;&lt;BR&gt;简单的代码，复杂的问题。&lt;BR&gt;环境：VC6SP5,Win2kPro&lt;BR&gt;&lt;BR&gt;int b = 10; //已经赋值为有效数据&lt;BR&gt;const char * str = "1234567890ABCDEF"; //已经赋值为有效的字符串。&lt;BR&gt;int a&amp;nbsp;= (b - strlen(str) ) / 2;&lt;BR&gt;&lt;BR&gt;经过了这样的计算，a的值究竟是多少？&lt;BR&gt;结果当然不是 (10-16)/2 的 -3，而是一个天文数字。。。。&lt;BR&gt;a = 2147483645 或者，16进制的 0x7ffffffd&lt;BR&gt;&lt;BR&gt;真正的问题代码只有一行，但是结果却令人不快。&lt;BR&gt;&lt;BR&gt;这里分析一下产生这个问题的原因：&lt;BR&gt;一个隐含的问题是，strlen的返回值，类型是size_t，也就是unsigned int。这是个无符号类型。&lt;BR&gt;当unsigned int 和 int混合运算的时候，编译器会认为，unsigned int的表达长度比较长，因而结果的类型是unsigned int。&lt;BR&gt;所以 b - strlen(str) 的结果不是 -6，而是和-6具有相同内存布局的unsigned int 值：0xfffffffa，也就是正的4294967290&lt;BR&gt;如果这个数值直接赋值给int，会因为内存布局相同，而避免问题的产生－－问题存在，但是不产生不良效果。但是随后的/2操作把问题彻底暴露出来了。。&lt;BR&gt;/2操作可以认为是一次移位，对于无符号类型，移位后高位补0，于是把原本有符号类型赖以利用的符号位清零了。。最终这个数值赋值给int类型的时候，结果就变成了前面提到的那个可怕的数值。。&lt;BR&gt;&lt;BR&gt;有符号数字和无符号数字混合运算的时候，存在一些默认的转换规则，符合这些规则的转换，都不会引发编译器警告或者错误，因此这类问题是难以觉察的。但是，我们需要经常使用的库函数太多了，当参与运算的时候，为每个函数调用都指定一个固定类型的返回值，似乎是不可能的任务。因此如果你的程序中充满各种不同类型的整型运算，那么还是尽量小心一些吧。。。&lt;img src ="http://blog.vckbase.com/panic/aggbug/31098.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>不同种类的整型比较，到底发生了什么？</title><link>http://blog.vckbase.com/panic/archive/2007/07/17/27489.html</link><pubDate>Tue, 17 Jul 2007 03:31:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2007/07/17/27489.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/27489.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2007/07/17/27489.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/27489.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/27489.html</trackback:ping><description>看这么两行代码：&lt;BR&gt;	int i = -1;&lt;BR&gt;	cout &lt;&lt; (char(i) == unsigned char(i))  &lt;&lt; endl;&lt;BR&gt;在VC6.0下，永远输出0。而下面这两行代码也永远输出0&lt;BR&gt;	int i = 255;&lt;BR&gt;	cout &lt;&lt; (char(i) == unsigned char(i))  &lt;&lt; endl;&lt;BR&gt;&lt;BR&gt;而实际上，以上两个代码中，char(i)和unsigned char(i)具有的内存布局都是完全相同的。由于整型之间的类型转换遵循这样的原则：当目标类型比原类型短的时候，直接截断原类型。而当目标类型较长，则无符号类型会直接在高位补0，有符号类型在高位补符号位。&lt;BR&gt;&lt;BR&gt;在VC6下，而当两个长度相同，并且具有相同内存布局的整型相比较的时候，编译器做如下的工作：&lt;BR&gt;首先两者长度&lt;=int的长度的时候，全部转化为int，然后实施比较。&lt;BR&gt;所以char(-1)转化的结果是0xFFFFFFFF，而unsigned char(-1)转化的结果是0x000000FF。两者作为int比较的时候，自然是不相等的。&lt;BR&gt;但是，特别的，当两者长度刚好是int长度的时候，比较的结果仅取决于内存布局，而有符号和无符号的转化也不会改变内存布局。&lt;BR&gt;&lt;BR&gt;这个事实引起了一个问题，当我们使用char/unsigned char,short/unsigned short这类比int短的类型的时候，无符号类型的变量是绝对不会和有符号的-1相等的，而使用int的时候，int(-1)和unsigned int(-1)则是完全相等的。这使得修改变量类型会引发比较结果的变化，尤其是在做变量扩展，或者在模板代码中这个问题有可能会引发难以觉察的错误。&lt;BR&gt;&lt;BR&gt;对这个问题的建议是：永远都不要进行有符号类型和无符号类型之间的数值比较，不同长度的类型之间的比较也要尽量避免。&lt;img src ="http://blog.vckbase.com/panic/aggbug/27489.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>vck博客的评论验证码是不是形同虚设啊?</title><link>http://blog.vckbase.com/panic/archive/2007/04/30/25914.html</link><pubDate>Mon, 30 Apr 2007 09:45:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2007/04/30/25914.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/25914.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2007/04/30/25914.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/25914.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/25914.html</trackback:ping><description>&lt;P&gt;几天没注意,广告一大堆啊.....&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/25914.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>javascript版本的二分查找算法</title><link>http://blog.vckbase.com/panic/archive/2007/04/13/25433.html</link><pubDate>Fri, 13 Apr 2007 03:43:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2007/04/13/25433.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/25433.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2007/04/13/25433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/25433.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/25433.html</trackback:ping><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"&gt;
&lt;DIV&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;javascript版本的二分查找算法，支持自定义的less_than函数&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;作者：&amp;nbsp;Panic&amp;nbsp;&amp;nbsp;2007年4月13日&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;网站：&amp;nbsp;blog.vckbase.com/panic&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;参数说明：&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;arr:数组，下标必须从0开始，并且是连续非负整数，包含要查找的内容，必须是排序好的&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;item:要查找的目标&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;less_than:比较函数，定义为：function&amp;nbsp;less_than(left,right)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;这个函数必须和数组用于排序的less_than函数具有同样的行为&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;当left&amp;nbsp;&amp;lt;&amp;nbsp;right时，返回-1&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;当left&amp;nbsp;==&amp;nbsp;right&amp;nbsp;时，返回&amp;nbsp;0&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;当left&amp;nbsp;&amp;gt;&amp;nbsp;right时，返回&amp;nbsp;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;返回值说明：&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;当目标存在时，函数返回目标所在位置的数组下标&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;当目标不存在时，函数返回数组中第一个比目标大的元素下标&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;当查找的目标比数组中任何元素都大，或者数组为空的时候，返回数组的长度&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;function&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;binary_search(arr,item,less_than)&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;var&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;start&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;var&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;arr.length&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;var&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;current&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(arr.length&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;+&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(arr.length&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;%&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;2&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;)&amp;nbsp;)&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;2&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;晕死了，直接写var&amp;nbsp;current&amp;nbsp;=&amp;nbsp;arr.length/2;&amp;nbsp;就会出错&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;while&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(&amp;nbsp;end&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;current&amp;nbsp;)&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(&amp;nbsp;less_than(item,arr[current])&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;==&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;)&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;current&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;+&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;else&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;current;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;var&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;tmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(start&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;+&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;end);&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;current&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(tmp&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(tmp&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;%&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;2&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;))&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;2&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;/*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&amp;nbsp;直接写&amp;nbsp;current&amp;nbsp;=&amp;nbsp;(start&amp;nbsp;+&amp;nbsp;end)/2;&amp;nbsp;也会出错，晕ing&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;*/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;current;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;BR&gt;代码描述已经很清楚了，里面两个注释是让我觉得莫名其妙的地方，期待指教。。。&lt;BR&gt;如果按照注释中的写法，IE解析出错。。。&lt;BR&gt;&lt;BR&gt;经周星星同学指点，发现问题是IE6下，javascript不支持浮点数到整数的自动截断引起的，代码改为：&lt;BR&gt;var current = Math.floor(arr.length/2);&lt;BR&gt;和&lt;BR&gt;current&amp;nbsp;= Math.floor((start + end)/2);&lt;BR&gt;即可。&lt;img src ="http://blog.vckbase.com/panic/aggbug/25433.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>在candlepowerforums发现一个有趣的图标:)</title><link>http://blog.vckbase.com/panic/archive/2007/04/03/25229.html</link><pubDate>Tue, 03 Apr 2007 11:45:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2007/04/03/25229.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/25229.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2007/04/03/25229.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/25229.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/25229.html</trackback:ping><description>&lt;IMG height=23 src="/images/vckbase_com/panic/052.gif" width=56 border=0&gt;&lt;BR&gt;&lt;BR&gt;很形象的反映了一些用户对IE和Firefox的不同态度。&lt;BR&gt;&lt;BR&gt;IE7似乎并没有给用户带来更多惊喜，倒是FireFox赢得了更安全更有效的名声，多种多样的扩展提供了强大的功能选择，再加上Google的参与，在推广Google Toolbar的过程中，在googler的圈子里面扩大了Firefox的影响力。&lt;BR&gt;&lt;BR&gt;Firefox的中文官方网站是&lt;BR&gt;&lt;A href="http://www.mozilla.org.cn/"&gt;www.mozilla.org.cn&lt;/A&gt;&lt;BR&gt;在这里可以获得不包含扩展的Firefox中文版本下载。所有的扩展都可以由用户手动安装和删除，这和在IE下想删除一个ActiveX的费力有着本质的不同。&lt;BR&gt;&lt;BR&gt;经过了几年的发展，Firefox已经今非昔比，那个堆积着各种bug，残留着linux晦涩的用户界面的Firefox已经一去不复返了。简洁的操作，丰富的功能，Firefox已经成功的植身于微软庞大的操作系统之中，成为越来越多用户新的选择。&lt;BR&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/25229.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>配置apache，Cannot load php5apache2.dll的错误解决</title><link>http://blog.vckbase.com/panic/archive/2007/02/07/24496.html</link><pubDate>Wed, 07 Feb 2007 13:08:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2007/02/07/24496.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/24496.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2007/02/07/24496.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/24496.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/24496.html</trackback:ping><description>被这个问题困扰了一个晚上，搜索了很久都没有找到解决办法。&lt;BR&gt;最后无意间看到这个：&lt;BR&gt;anthony 发表于2006-07-21 15:19:00  IP: 221.223.64.*&lt;BR&gt;关于 "cannot load php5apache2dll" 的问题，是因为php自带的php5apache2.dll只能跟某个特定版本的apache2使用的缘故。只需要到 http://www.apachelounge.com/download/ 下php5apache2.dll-php5.1.x.zip 然后照里面的说明跟着做问题就解决了。&lt;BR&gt;&lt;BR&gt;我下载的apache是最新版，貌似php还没有制作对应的php5apache2.dll文件，所以出错了，重新安装了一个旧版的apache就解决了。&lt;BR&gt;&lt;BR&gt;郁闷。。。&lt;img src ="http://blog.vckbase.com/panic/aggbug/24496.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>暂时纪录</title><link>http://blog.vckbase.com/panic/archive/2007/01/04/23851.html</link><pubDate>Wed, 03 Jan 2007 16:37:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2007/01/04/23851.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23851.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2007/01/04/23851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23851.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23851.html</trackback:ping><description>12bit串行DAC&lt;BR&gt;TLV5616&lt;BR&gt;&lt;BR&gt;10bit串行DAC&lt;BR&gt;TLV5606&lt;BR&gt;&lt;A href="http://www.metacafe.com"&gt;www.metacafe.com&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://ajaxpatterns.org/archive/IFrame_Call.php"&gt;http://ajaxpatterns.org/archive/IFrame_Call.php&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;八皇后问题？&lt;BR&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;BR&gt;#include &amp;lt;time.h&amp;gt;&lt;BR&gt;&lt;BR&gt;long sum=0,upperlim=1;&lt;BR&gt;&lt;BR&gt;void test(long row, long ld, long rd){&lt;BR&gt;&lt;BR&gt;if (row != upperlim){&lt;BR&gt;long pos = upperlim &amp;amp; ~(row | ld | rd);&lt;BR&gt;while (pos){&lt;BR&gt;long p = pos&amp;amp; -pos;&lt;BR&gt;pos -= p;&lt;BR&gt;test(row+p, (ld+p)&amp;lt;&amp;lt;1, (rd+p)&amp;gt;&amp;gt;1);&lt;BR&gt;}}&lt;BR&gt;else&lt;BR&gt;sum++;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;int main(int argc, char *argv[])&lt;BR&gt;{&lt;BR&gt;time_t tm;&lt;BR&gt;int n=8;&lt;BR&gt;&lt;BR&gt;if(argc!=1)n=atoi(argv[1]);&lt;BR&gt;tm=time(0);&lt;BR&gt;if((n&amp;lt;1)||(n&amp;gt;32)){&lt;BR&gt;printf(" heh..I can't calculate that.\n");&lt;BR&gt;exit(-1);}&lt;BR&gt;printf("%d Queens\n",n);&lt;BR&gt;upperlim=(upperlim&amp;lt;&amp;lt;n)-1;&lt;BR&gt;&lt;BR&gt;test(0,0,0);&lt;BR&gt;printf("Number of solutions is %ld, %d seconds\n", sum,(int)(time(0)-tm));&lt;BR&gt;}&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/23851.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>昨天刚听到的一首歌：《Be What You Wanna Be》</title><link>http://blog.vckbase.com/panic/archive/2006/12/27/23693.html</link><pubDate>Wed, 27 Dec 2006 06:21:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/12/27/23693.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23693.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/12/27/23693.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23693.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23693.html</trackback:ping><description>by Darin&lt;BR&gt;&lt;BR&gt;Doctor actor lawyer or a singer&lt;BR&gt;why not president be a dreamer&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;police man fire fighter or a post man&lt;BR&gt;why not something like your old man&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;doctor actor lawyer or a singer&lt;BR&gt;why not president be a dreamer&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;i know that we all got one thing&lt;BR&gt;that we all share together&lt;BR&gt;we got that one nice dream&lt;BR&gt;we live for&lt;BR&gt;you never know what life could bring&lt;BR&gt;coz nothing last for ever&lt;BR&gt;just hold on to the team&lt;BR&gt;you play for&lt;BR&gt;i know you could reach the top&lt;BR&gt;make sure that you won't stop&lt;BR&gt;be the one that you wanna be&lt;BR&gt;now sing this with me&lt;BR&gt;doctor actor lawyer or a singer&lt;BR&gt;why not president be a dreamer&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;police man fire fighter or a post man&lt;BR&gt;why not something like your old man&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;we may have different ways to think&lt;BR&gt;but it doesn't really matter&lt;BR&gt;we all caught up in the steam&lt;BR&gt;of this life&lt;BR&gt;focus on every little thing&lt;BR&gt;that's what does really matter&lt;BR&gt;luxury cars and bling&lt;BR&gt;thats not real life&lt;BR&gt;i know you could reach the top&lt;BR&gt;make sure that you won't stop&lt;BR&gt;be the one that you wanna be&lt;BR&gt;now sing this with me&lt;BR&gt;doctor actor lawyer or a singer&lt;BR&gt;why not president be a dreamer&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;police man fire fighter or a post man&lt;BR&gt;why not something like your old man&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;last year i used to dream about this day&lt;BR&gt;now i'm here i'm singing for you&lt;BR&gt;i hope i could inspire you&lt;BR&gt;coz i've got all the love&lt;BR&gt;coz i've got all love for you&lt;BR&gt;doctor actor lawyer or a singer&lt;BR&gt;why not president be a dreamer&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;police man fire fighter or a post man&lt;BR&gt;why not something like your old man&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;doctor actor lawyer or a singer&lt;BR&gt;why not president be a dreamer&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;police man fire fighter or a post man&lt;BR&gt;why not something like your old man&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;doctor actor lawyer or a singer&lt;BR&gt;why not president be a dreamer&lt;BR&gt;you can be just the one you wanna be&lt;BR&gt;&lt;!--StartFragment --&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/23693.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>关于今日网络故障的公告</title><link>http://blog.vckbase.com/panic/archive/2006/12/27/23690.html</link><pubDate>Wed, 27 Dec 2006 05:52:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/12/27/23690.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23690.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/12/27/23690.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23690.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23690.html</trackback:ping><description>由于本人洗脚时不慎踩断链接美洲，亚洲的海底光缆，引起亚太地区网络故障。本人对此深表遗憾，如有雷同纯属巧合～@@&lt;img src ="http://blog.vckbase.com/panic/aggbug/23690.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>英雄无敌3技巧心得</title><link>http://blog.vckbase.com/panic/archive/2006/12/26/23668.html</link><pubDate>Tue, 26 Dec 2006 09:07:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/12/26/23668.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23668.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/12/26/23668.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23668.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23668.html</trackback:ping><description>&lt;P&gt;英雄无敌3技巧心得&lt;/P&gt;
&lt;P&gt;作者： &lt;A title=Panic HREF="/panic/"&gt;&lt;a title="Panic" href="http://blog.vckbase.com/panic/" &gt;Panic&lt;/a&gt;&lt;/A&gt; 2006年12月26日&lt;/P&gt;
&lt;P&gt;《英雄无敌3》，3DO公司永恒的经典。&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;给个下载地址：&lt;A href="http://dlga.pchome.net/games/demo/classic/H3.exe"&gt;http://dlga.pchome.net/games/demo/classic/H3.exe&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;作为一款成功的2D回合制策略游戏，英雄无敌3至今仍然拥有大量的玩家，我也是其中之一。&lt;/P&gt;
&lt;P&gt;在这里我写一些自己玩这款游戏的一些经验和心得。&lt;/P&gt;
&lt;P&gt;和其他玩家交流的过程中，经常听到别人讲一些兵力过千的所谓经典战役，个人却深不以为然。&lt;/P&gt;
&lt;P&gt;以个人看法，英雄无敌3随着玩家水平的提升，有三个阶段：战斗阶段，战术阶段，和战略阶段。&lt;/P&gt;
&lt;P&gt;战斗阶段是最初的阶段，玩家只是掌握了游戏基本的操作，通常会选择难度较低的关卡或者地图。这个阶段的玩家，对于兵种搭配和战术技巧缺乏经验，所以以自动战斗或者手动战斗的方式进行对战，结果相差不大。&lt;/P&gt;
&lt;P&gt;为了赢得胜利，玩家大部分时间在扮演&amp;#8220;建设者&amp;#8221;的角色，把建筑物都造到最高等级，积累足够数量的高级兵种，然后和对手决战。&lt;/P&gt;
&lt;P&gt;多数人喜欢把全部兵力集中在一个最强的英雄手里，甚至自己的城里都不留什么防守部队。一旦最强的英雄被消灭，也就意味着最终的失败。&lt;/P&gt;
&lt;P&gt;S&amp;amp;L(Save &amp;amp; Load)是这个阶段无可避免的。&lt;/P&gt;
&lt;P&gt;由于兵力是决胜的唯一要素，这个阶段的玩家会比较喜欢拥有强大的兵种，比如天使，黑龙，泰坦，进而喜欢对应的种族。&lt;/P&gt;
&lt;P&gt;拥有高级的初始魔法的英雄也是大家所亲睐的，比如拥有连锁闪电，流星雨，转世重生一类魔法的英雄。&lt;/P&gt;
&lt;P&gt;在城堡建设方面，除了希望能够快速建造出最高级兵种之外，魔法塔的升级也是很勤奋的，4级以上的魔法塔可以提供更多更强大的魔法，是这个阶段强有力的工具。&lt;/P&gt;
&lt;P&gt;比较受欢迎的魔法有如下几个：末日，爆裂术，连锁闪电，流星火雨，回城术，次元门，飞行术，等等。&lt;/P&gt;
&lt;P&gt;辅助技能中，智慧术是必不可少的，四大元素魔法也是优先选择的。很多人也非常喜欢外交术，这一种快速积累兵力的途径。在比较大的地图上，后勤术和寻路术也有很高的价值。对于魔法型英雄，智力和魔力也是不可或缺的。&lt;/P&gt;
&lt;P&gt;这个阶段的玩家多数时候奉行的原则是S&amp;amp;L。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;战术阶段是玩家水平提高之后的阶段，由于掌握了更多的战斗技巧和操作经验，玩家可以在魔法塔和高级兵种出现之前，进行更多的战斗。&lt;/P&gt;
&lt;P&gt;这个阶段，由于4级魔法塔和6、7级兵出现之前需要进行艰苦的战斗，那些高级但是却可望而不可及的魔法和兵种无法发挥作用，低等级的兵种成为战斗的主力。&lt;/P&gt;
&lt;P&gt;这时候比较有吸引力的兵种一般都是远程，或者不被反击的兵种，快速兵种也是重要的战斗力。比如吸血鬼，弓箭手，大精灵，美杜沙等。这个阶段的玩家对于不死族有特别的感情，吸血鬼作为唯一一种可以自我复活的兵种，经常被称为同等级中最有效的兵种。&lt;/P&gt;
&lt;P&gt;很快，低级兵种消耗殆尽之前，6级兵的出现改变了局势，一跃成为战斗主力，6级兵中，恐怖骑士是最具战斗力的角色。&lt;/P&gt;
&lt;P&gt;除了拥有高级初始魔法的英雄外，拥有外交术，或者一些辅助法术的英雄也经常被人使用。&lt;/P&gt;
&lt;P&gt;城堡建设方面，魔法塔的建造被推迟了，而最高级的兵种在相当长的时间内是不列入建造名单的，节省下来的时间和金钱用来尽可能多的获得6级和以下兵种的数量。7级兵经常在3～4周后才出现，最初的7级兵也只是为了提升首发速度和给予对手最后一击，在数量到达两位数之前无法成为战斗主力。&lt;/P&gt;
&lt;P&gt;比较受欢迎的魔法里增加了很多低等级的战斗魔法，比如闪电，火球，失明术，减速，加速，祝福，等等。这个阶段的玩家也喜欢在战斗前用魔法查看对方的详细兵力，然后针对性的展开攻击。&lt;/P&gt;
&lt;P&gt;辅助技能中，外交术的地位极大提升，由于兵力栏位经常有空缺，半路获得的兵力补充就更加宝贵。同时，领导术和幸运术的地位也随着提升。攻城术也受到相当的欢迎，缺乏了7级兵种的强力压制，攻破城池需要的时间更长了，攻城术可以有效减少自己兵力的损耗。&lt;/P&gt;
&lt;P&gt;这个阶段的玩家喜欢的原则是不打无把握之仗，S&amp;amp;L的次数极大减少了，只有在很关键的决战前才会使用。&lt;/P&gt;
&lt;P&gt;这时候，玩家会放弃低难度的地图和关卡，不断挑战160%和200%的难度，并且以高难度下获得的高积分作为炫耀的资本。由于200难度下，敌人和地图上兵力的积累都很惊人，而一张地图经常需要耗费6个月以上的游戏时间，最终的战斗很容易变成千人大战，甚至7级兵的数量也达到4位数。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;战略阶段是战术阶段后，完全掌握了战术技巧后，在对游戏整体把握的层次上进行游戏的阶段。这个阶段最显著的特征是速战速决，&lt;/P&gt;
&lt;P&gt;在这个阶段，大量的战斗发生在4级以下的兵种之间，而魔法塔经常保持在一级或者二级。&lt;/P&gt;
&lt;P&gt;由于资金的匮乏，拥有理财术或者天生增加资源的英雄成为首选。&lt;/P&gt;
&lt;P&gt;这个时候，比较有吸引力的兵种一般都是低级远程兵种，低级快速兵种，以及数量可以近乎无限积累的骷髅兵。&lt;/P&gt;
&lt;P&gt;除了具有资源产出能力的英雄外，擅长某种低级兵种的英雄由于可以在雇佣的同时携带大量兵力，也受到很大欢迎。&lt;/P&gt;
&lt;P&gt;城堡建设方面，魔法塔的建设在一级之后就被置之不理了，获取魔法经常是在占领了敌人的城堡之后。资源建设是这个阶段的重点，快速提高各种资源产量是取得胜利的关键，除了建设自己原有的城堡外，尽可能快的占领新的城堡是最有效的方式。&lt;/P&gt;
&lt;P&gt;比较受欢迎的魔法增加了两个极具战略意义的一级魔法，查看空气和查看大地，前者可以洞悉地方城堡和英雄的位置，后者则可以查看地形和资源分布。这两个魔法配合，为英雄提供了超视距攻击的能力，极大提高了攻城和守城的把握。&lt;/P&gt;
&lt;P&gt;辅助技能中，土系魔法和气系魔法成为必须，和智慧术一起，构成英雄技能的三大支柱。而其他的辅助技能除了一些确确实实的鸡肋之外，都可以有效发挥其作用。&lt;/P&gt;
&lt;P&gt;这个阶段，玩家能够精确的估算战斗结果，能够细致入微的调动每一只部队，S&amp;amp;L变成一种耻辱。与此同时，玩家可以以更短的时间完成前两个阶段的地图。由于时间的缩短，兵力的积累受到极大限制，除非是城堡非常多的地图，否则7级兵的数量一般在两位数，只有最后的决战才有可能达到三位数，但是这时候这种数量的兵力已经没有什么意义了。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;战略阶段之后，是否还有更高层次的阶段，我就不知道了，希望有更高水平的玩家能给予提示。下面我介绍一些游戏的小技巧，主要针对战略阶段。&lt;/P&gt;
&lt;P&gt;早期建设：&lt;/P&gt;
&lt;P&gt;资源相对比较充裕的地图，首都建造是必须的，一般在10天（160%）或者20天（200%）内就要完成，有了首都可以极大提升金钱的收入，为以后的建筑和兵力提供足够的积累。&lt;/P&gt;
&lt;P&gt;如果资源相对匮乏，则把钱节省下来建造一些兵种。然后依靠兵力打通道路寻找资源。&lt;/P&gt;
&lt;P&gt;兵种方面，一级兵是必须造的（废话），而如果兵种升级能变成远程（比如泰坦城1级兵），或者不受反击（比如地下城2级兵），那么升级也是必须的。&lt;/P&gt;
&lt;P&gt;资源的使用经常需要精确到个位数，在市场中进行资源交换也是常有的事情。&lt;/P&gt;
&lt;P&gt;最初的战斗：&lt;/P&gt;
&lt;P&gt;一般的，最初的战斗你只拥有1级和2级兵种，偶尔会有少量三级兵。在没有远程部队的时候，英雄的部队要这样分布：最强的兵力集中在最下方（战斗地图），而上面的部队都是一只或者能承受1次攻击而不全灭的兵力。&lt;/P&gt;
&lt;P&gt;这么做的目的是，你先以横向移动的方式将兵力集中，通过减速或者加速的魔法设法拉开敌方部队之间的距离，以上部的少量兵力耗费敌人的攻击和反击的机会，随后以最强兵力尽可能在最少的攻击次数内消灭对手。敌我兵力接近的时候，这种战术可以把己方损失降到最小。&lt;/P&gt;
&lt;P&gt;如果你的部队中有一定数量的远程部队，那么远程部队应该放在最上方的角落，这个位置在同样速度下，拥有首先攻击的地利，同时，只需要2～3只其他部队就可以保护其不被近身。&lt;/P&gt;
&lt;P&gt;剩余的部队目的主要是吸引敌人的部队，让他们尽量处在远程部队的射程内（指攻击不减半的距离）而又不能直接威胁远程部队的安全。如果你有祝福等魔法，可以令远程部队发挥更大威力。&lt;/P&gt;
&lt;P&gt;以这种战术，可以以最小的代价消灭掉比你实力强的部队，从而为外出探索打开大门。在探索到的范围内，优先攻击有可能通往其他城堡和资源的道路上的部队。&lt;/P&gt;
&lt;P&gt;这时候你唯一惧怕的兵种就是远程兵种，不过如果你拥有一级魔法塔或者一个攻击法术的话，你的损失也不会太大。&lt;/P&gt;
&lt;P&gt;依靠这最初的部队，你的英雄要尽可能远走，越远就意味着越多的资源被发现。经常的，第一支部队会以消耗殆尽作为终结，而随后的第二支部队则攻占了第一个城堡。&lt;/P&gt;
&lt;P&gt;随后的发展：&lt;/P&gt;
&lt;P&gt;如果你探索到了足够的资源，而敌人的踪迹还未发现，你可以优先建造首都，随后的过程就和玩低难度没什么太大区别了。&lt;/P&gt;
&lt;P&gt;如果探索到了敌人占领的矿，或者地面上有资源被拣走的空旷感，占领敌人的城堡就成为最大的目标。&lt;/P&gt;
&lt;P&gt;在200%难度下，这个时候的敌人通常是比你强的，兵力可能是你的数倍，而城堡建设也比你更完整，你可以冒险前冲，直接探测敌人的城堡位置。而攻城的时间最好选择在周六，周日或者周一（如果你首先行动）。&lt;/P&gt;
&lt;P&gt;如果运气好，这一步就可以攻城得手，然后以一周兵力守城。如果有三个箭塔，一般来说是守的住的。即使没有守住，敌人的实力也大大削弱了，而且位置也明确了，后面的攻击就更有把握。&lt;/P&gt;
&lt;P&gt;如果因为守兵太强无法攻城，或者守城部队被灭，下一步的计划就是趁敌人主力部队离城的时候偷袭，偷袭的成功率非常高，十之八九会成功，而且偷袭成功后守城基本也会成功。&lt;/P&gt;
&lt;P&gt;如果你的英雄在路上就被敌人消灭了，你只能准备下一步探测。&lt;/P&gt;
&lt;P&gt;守城有个窍门，如果你的兵力不足以守城，可以分7只放在城里，而英雄跑到安全的地方。这样敌人在夺回城的过程中会面临箭塔射击而损失兵力，同时敌人的主力部队会被牵制在城附近，你可以趁机抢夺周围的资源。&lt;/P&gt;
&lt;P&gt;这个守城的窍门在1v7的时候是必须的，你必须尽可能把敌人牵制在城的附近，才能更好的保证你已经占领的城堡的安全。&lt;/P&gt;
&lt;P&gt;第一个城是胜利的关键，在城堡比较少的地图，占领一个城一般就意味着一个玩家被消灭了。拥有两个城堡，你的资源和兵力基本可以面对任何敌人了。&lt;/P&gt;
&lt;P&gt;夺取第一个城之后，你的英雄一般可以升到5级左右，运气好的话，你已经拥有初级级土系或者气系魔法，并且拥有透视空气和透视大地的至少其中之一了。&lt;/P&gt;
&lt;P&gt;这时候，立刻用强势兵力清除城堡周围的小怪，尽快获得专家级的土系或者气系魔法。这里土系比较优先，因为通过观察地图上的资源占领情况就可以猜测敌人城堡的位置，而气系虽然能看到位置，却不容易找到进攻的途径。当然两者都有是最好的了。&lt;/P&gt;
&lt;P&gt;获得下一个目标位置之后，仍然采用原先的牵制+偷袭策略，可以轻易消灭下一个对手，然后你就拥有至少3个城堡。以后的故事就没有任何悬念了。&lt;/P&gt;
&lt;P&gt;如果地图上城堡非常多，建设就成为昂贵的开销，这时候要优先建造可以固守的城堡的资源，而前沿城堡可以置之不理，或者在资源充足的情况下优先发展防御。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;其他技巧：&lt;/P&gt;
&lt;P&gt;寻找神器：&lt;/P&gt;
&lt;P&gt;神器，无论是为积分还是为神器的作用，都是必须寻找和挖掘的。找到一个方尖塔之后，神器所在的地形就可以确定，3座方尖塔之后，如果你拥有专家级土系魔法和查看大地，只要够耐心，你就能够定位神器所在。&lt;/P&gt;
&lt;P&gt;一旦神器的位置被锁定，你可以不惜一切代价打开通往神器的路径，然后用人海战术挖掘神器（你也可以用S&amp;amp;L）。同时利用距离神器最近的城堡作为基地击退来袭的一切敌人。&lt;/P&gt;
&lt;P&gt;找到神器之后，让最强的英雄带着它去你最中意的城堡，一般的选择是元素城。得到神器也就锁定了胜局。&lt;/P&gt;
&lt;P&gt;神器的窍门，神器只能位于距离地图边界超过9的地方，所以中心地带有更多的机会。敌人也会挖掘神器，你可以通过查看收入和城堡数量的排名评估神器是否已经被挖走。当然，也可以从神器的效果观察。&lt;/P&gt;
&lt;P&gt;如果刚好碰到敌人也在挖掘神器，你可以从敌人的行为判定神器是否已经被挖走，确定没有挖走的话你最好消灭掉敌人的挖掘部队然后取而代之。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;屠龙：&lt;/P&gt;
&lt;P&gt;地图上有可能存在龙城（抱歉，我一直是玩英文版的，不知道这个次汉化版具体是什么，可能是龙之殿堂一类的），龙城的强度以其中的黑龙数量为准，通常是1～5只，而金龙，红龙，绿龙的数量依次增多。&lt;/P&gt;
&lt;P&gt;龙城可以随机出高级的宝物，黑龙越多宝物也越多，这些宝物能极大提升英雄的实力。一般情况下，在6级兵过12只或者同等兵力的时候就可以屠龙，如果有转世重生一类的法术，甚至可以无损。龙的可怕之处在于魔法的免疫，而两格的攻击范围经常成为其自相残杀的手段。&lt;/P&gt;
&lt;P&gt;除非运气特别差，否则屠龙得到的好处都将远远超过你的损失。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;航海：&lt;/P&gt;
&lt;P&gt;在有海的地图，航海是极其重要的行动，海上可以拣到大量木材和相当数量的金钱，很快就能弥补造船的费用，还有相当多的场合能得到宝物。&lt;/P&gt;
&lt;P&gt;不过上岸/上船需要消耗全部移动力，最好派遣闲杂英雄出海拾荒，同时英雄最好有战术学，以便在遇到敌人的时候可以先机逃跑。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;接力运兵：&lt;/P&gt;
&lt;P&gt;接力运兵是偷袭和攻城的必备技巧。方法很简单，英雄1首先出发，第二天英雄2走到英雄1前一天的位置，而英雄1继续前进，依次类推，由于最多可以雇佣8个英雄，所以英雄1最后可以位于距离城堡7天路程的地方。&lt;/P&gt;
&lt;P&gt;第八天，城里雇佣一个英雄，带着所有兵力依次向前接力，最后送达英雄1的手里，英雄1继续前进，可以到达8天路程的位置。&lt;/P&gt;
&lt;P&gt;一般的地图，两个相邻城堡之间的距离不会超过8天，所以这个方法非常适合快速集合兵力和攻城。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;换城战术：&lt;/P&gt;
&lt;P&gt;在200难度下，当敌人首先攻击自己，而自己尚没有实力与之抗衡的时候，可以让主英雄携带所有兵力直扑对方主城，而其他英雄吸引敌人主力占据己方城堡。结果就是敌我城堡互换，但是由于敌方城堡建设程度一般比自己要高，所以这个互换是非常有价值的。&lt;/P&gt;
&lt;P&gt;换城战术也经常在战役地图中使用。换城会导致敌人已经积累的强势兵力无法继续累积，从而削弱战斗实力。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;弱势诱敌：&lt;/P&gt;
&lt;P&gt;操作技巧足够的时候，以弱胜强是可能的，故意在城堡中放置相对薄弱的守兵，诱使敌人的部队前来进攻而歼灭之，这是个有效的战术但是有一定风险。&lt;/P&gt;
&lt;P&gt;如果放置的兵力太强则敌人不会进攻，太弱则会被攻克，如果没有足够精确的推算能力，还是少用为妙。这个战术通常需要一个法师型英雄作为守城核心。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;杀英雄：&lt;/P&gt;
&lt;P&gt;这是个重要的战术，当和敌方高等级的英雄战斗的时候，消灭其兵力到一定程度的时候，敌人会逃跑，逃跑之后的敌人虽然没有了兵力，但是技能和等级，宝物仍然在，有了兵力仍然具有相当的战斗力。&lt;/P&gt;
&lt;P&gt;杀英雄的作用在于可以夺取对手的宝物，消灭高级英雄，使其一蹶不振。&lt;/P&gt;
&lt;P&gt;杀英雄一般有两种方法，一种是使用失明等法术进行控制，使敌人没有机会行动，&lt;/P&gt;
&lt;P&gt;另一种是先消灭敌方快速部队，确保自己拥有最快行动速度，然后在适当的时候所有部队都等待，等对方行动完之后，魔法攻击一次，然后所有部队攻击一次，下一回合开始，又可以魔法攻击一次，所有比对手快的部队又可以攻击一次，这样造成连续的4次攻击，基本可以消灭敌方剩余部队而杀死其英雄。&lt;/P&gt;
&lt;P&gt;当然有一个宝物似乎叫做&amp;#8220;战争镣铐&amp;#8221;是可以防止对手逃跑的，同时自己也不能逃跑。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;己方英雄的数量：&lt;/P&gt;
&lt;P&gt;多数时候，主英雄只有一个，同时负责攻守的任务，携带几乎全部的有效兵力。&lt;/P&gt;
&lt;P&gt;当地图大一些，或者探索的范围扩大之后，推荐培养一个新的英雄作为第二战斗力，这个英雄携带更适合防守的兵力，主要任务是守城，在兵力超过一定数量的时候也展开攻击。&lt;/P&gt;
&lt;P&gt;即使是超大（XLarge）地图，战斗英雄一般也不超过4个，偶尔雇佣到敌方死去的高等级英雄，可以放置在城堡内留用。&lt;/P&gt;
&lt;P&gt;每个战斗英雄都有明确的目标，守城英雄一般都要有魔抗和战术，射术等有利于守城的技能，而攻城英雄则优先发展提升攻击力和移动力的技能。&lt;/P&gt;
&lt;P&gt;同时控制多个战斗英雄的时候，兵力的分配是十分重要的，主英雄的兵力可以比敌人最强的部队少1～2周的兵力，这基本上就可以防守住新占领的城堡。第二英雄携带的兵力可以比主英雄更强，以便弥补因为宝物数量和等级造成的战斗力差距。其他英雄如果可能，尽量携带能够防守住其活动区域的兵力，如果实在兵力匮乏，也要携带4只以上部队，以免在战斗中被轻易杀死而白送给对手500经验值。&lt;/P&gt;
&lt;P&gt;大的地图，多线作战是必须的，否则敌人的兵力会过分累积导致游戏时间拖长。你能够同时控制的具有战斗力的英雄越多，消灭敌人的速度也就越快。英雄的兵力视对手状况而定，如果已经够用，就把多余的兵力分配给其他英雄，提升多线作战的能力。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;城堡攻守的策略：&lt;/P&gt;
&lt;P&gt;城堡比较多的时候，相邻城堡的位置会比较接近，这时候需要根据城堡的相对位置决定攻守的策略。&lt;/P&gt;
&lt;P&gt;一般的，处在多个敌方城堡之间的城堡不容易防守，一旦防守部队离开就会面临丢失的危险，这时候如果有足够的部队，就要坚决守住，以便遏制对手进入自己后方阵地的速度。如果兵力匮乏则最好放弃过分前沿的阵地，而把防守的力量都集中在后方。&lt;/P&gt;
&lt;P&gt;偏远的城堡不容易遭到进攻，但是一旦被占领就不容易夺回来，如果能在去往这类城堡的路上加以堵截，这些城堡可以作为小金库。&lt;/P&gt;
&lt;P&gt;对方的首都永远是优先攻击的目标，你可以尝试丢了首都是怎样一种感觉。首都作为最初兵力的发源地，距离后来占据的城堡都比较近，很容易形成破竹之势一举歼灭一个玩家。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;消灭玩家的策略：&lt;/P&gt;
&lt;P&gt;你可以通过侦察，酒馆等得到各种敌人兵力的数据，如果你的主英雄已经拥有压制任何单个对手的兵力，那么优先挑战对方拥有最强兵力的英雄，一旦这个英雄被消灭，其他的部队就可以交给你的第二战斗英雄或者其他英雄来解决。&lt;/P&gt;
&lt;P&gt;如果敌人的实力强过你太多，则优先攻击距离你比较近而防守相对薄弱的玩家。&lt;/P&gt;
&lt;P&gt;当一个玩家的实力被极大削弱之后，要尽可能在短时间内消灭他，经常的，你只需要派第二甚至第三英雄就可以将其赶尽杀绝。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;战斗力的评估：&lt;/P&gt;
&lt;P&gt;为了达到快速杀敌的目的，兵力损耗是不可避免的。当完成一张地图的时候，如果你手上仍然剩余大量几乎从未参加战斗的部队，那么你的进攻技巧需要改进，因为太多的部队没有发挥出作用。&lt;/P&gt;
&lt;P&gt;精确的评估消灭对手所需要的兵力，是充分调动你的战斗力的前提，只要损失数量在许可的范围内，战斗就是值得进行的，以&amp;#8220;无损&amp;#8221;为目标的战斗通常都会极大拖延时间。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;暂时写这么多，以后有时间再补充:)&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/23668.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>游戏的积累特性（游戏设定连载之二）</title><link>http://blog.vckbase.com/panic/archive/2006/12/20/23588.html</link><pubDate>Wed, 20 Dec 2006 02:35:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/12/20/23588.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23588.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/12/20/23588.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23588.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23588.html</trackback:ping><description>&lt;P&gt;游戏的积累特性（游戏设定连载之二）&lt;/P&gt;
&lt;P&gt;作者： &lt;a title="Panic" href="http://blog.vckbase.com/panic/" &gt;Panic&lt;/a&gt; 2006年12月20日&lt;/P&gt;
&lt;P&gt;这里所说的游戏并不仅限于电脑/电子游戏。&lt;/P&gt;
&lt;P&gt;游戏的积累是指，当玩家投入更多时间，精力，物质等进入到游戏当中之后，玩家所获得的对于未来进行游戏的有利因素的总和。&lt;/P&gt;
&lt;P&gt;举例来说，篮球，经过了更多的训练和比赛，玩家的各种技术会得到不同程度的提升，从而增加以后战胜对手的机会，这种技术的增长就是积累。&lt;/P&gt;
&lt;P&gt;积累分为两种，一种是规则内优势积累。一种是熟练度积累（也可以叫规则外优势积累）。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;规则内优势积累是指这样一种情况：玩家在先前游戏中获得的有利因素可以保存，从而在以后的游戏中在一开始就获得有利的位置。&lt;/P&gt;
&lt;P&gt;这种积累最典型的就是普通的网络游戏中，等级和装备的积累。拥有了更高等级的玩家可以在以后的游戏中以更大的优势取得胜利。&lt;/P&gt;
&lt;P&gt;规则内积累导致的后果就是，游戏的胜负在更大程度上受积累总量的影响，而由于积累是有限度的，所以最终游戏的寿命是有限的。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;熟练度积累是指玩家自身实力的提升，这种提升和规则无关。&lt;/P&gt;
&lt;P&gt;比如经过训练，一个田径选手的速度提升了，但是在比赛中，他不能因为实力提升而把起跑线向前移动哪怕一丝。所有的人还是要从相同的起跑线展开竞争。&lt;/P&gt;
&lt;P&gt;再比如扑克，水平再高的人也没有权力比对手多抓几张牌。&lt;/P&gt;
&lt;P&gt;熟练度积累导致的后果是玩家的胜负受玩家自身实力影响，而规则是完全公平的。由于自身实力的提升几乎是没有限度的（所谓人外有人），而熟练度本身还会由于生疏而下降，导致实力提升过程出现反复。游戏的寿命可以说是无限的。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;现在广为流传的游戏，基本上都是单纯熟练度积累的游戏。而且，能够用于比赛的项目也必须是单纯熟练度积累的。&lt;/P&gt;
&lt;P&gt;单纯熟练度积累的游戏，才是公平的游戏。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;规则内优势积累的速度，极大程度上受规则本身的影响，规则的少许变动就会导致积累速度的显著改变。在游戏的整个生命周期中，不同阶段规则经常是不同的，在规则改变导致积累速度降低的时候，新加入的玩家就会怨声载道，而规则改变引起积累速度增长的时候，老玩家就会发现新手能够用更少的代价达到他们的水准。&lt;/P&gt;
&lt;P&gt;在多数情况下，后加入的玩家几乎无法达到和早期玩家同样的高度，由于同一规则下，积累速度是一致的，老玩家现有的积累部分就永远无法被超越。&lt;/P&gt;
&lt;P&gt;在现有的网络游戏中，一般都是通过一些条件（比如经验值）近乎无限的增长需求来限制玩家最终所能达到的积累数量，但是毫无疑问，当玩家从积累状态转变到静止状态的时候，游戏其实已经不是原有的游戏了。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;规则外积累的速度，基本只受玩家自身努力程度的影响，同时玩家的先天条件也会起到相当的作用（比如天生身材高大的就比较容易在篮球运动中取得优势地位）。在游戏的整个生命周期中，规则是不会有大幅度改变的。而且，规则的改变对于积累速度的影响相对也比较小。&lt;/P&gt;
&lt;P&gt;有了前辈的经验，后加入的玩家往往可以在更短的时间内达到和早期玩家同样的高度，但是在这个高度上的突破，所有人又都回到了同一个起跑线上。&lt;/P&gt;
&lt;P&gt;游戏的公平，不但体现在了每次游戏之中，而且体现在游戏的整个生命周期中。&lt;/P&gt;
&lt;P&gt;熟练度的积累不需要进行任何限制，他的极限也就是人的极限，能够达到自己极限的人是屈指可数的，大部分的人都处在积累过程或者放弃过程中。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;在设计一个游戏的时候，游戏是否允许规则内积累，是决定游戏宏观寿命的决定性因素。&lt;/P&gt;
&lt;P&gt;不过很遗憾的是，在网络游戏的风潮中，积累似乎变成每款游戏的标准配置了。暴雪在设计WOW的时候，抛弃了级别积累可以说是一个创举，但是用装备积累取而代之则又回到了老路。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/23588.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>星星出的丢玻璃棋子的题目，我的解法</title><link>http://blog.vckbase.com/panic/archive/2006/12/07/23399.html</link><pubDate>Thu, 07 Dec 2006 07:55:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/12/07/23399.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23399.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/12/07/23399.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23399.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23399.html</trackback:ping><description>星星链接：&lt;BR&gt;&lt;A href="http://blog.vckbase.com/bruceteen/archive/2006/12/07/23394.html"&gt;http://blog.vckbase.com/bruceteen/archive/2006/12/07/23394.html&lt;/A&gt;&lt;BR&gt;原题：&lt;BR&gt;&lt;!--StartFragment --&gt;&amp;nbsp;&lt;STRONG&gt;问题：&lt;/STRONG&gt;&lt;BR&gt;有一幢100层高的大楼，给你两个完全相同的玻璃棋子。&lt;BR&gt;假设从某一层开始，丢下玻璃棋子就会破碎。那么怎么利用手中的两颗棋子，&lt;BR&gt;用一种什么样的最优策略，知道这个临界的层高呢？ &lt;BR&gt;&lt;BR&gt;我的解法，保证所有最坏情况下，需要丢棋子的次数为一个有限次数。&lt;BR&gt;原理如下：&lt;BR&gt;首次丢棋子的位置是可以有变化的，第二次丢棋子则只能从最近的没有破的那一层向上依次丢，不然就得不到结果。&lt;BR&gt;假设极限次数限制为n，那么丢了m次棋子之后，剩余的层数必须等于n-m才能保证能在n次内找到答案。&lt;BR&gt;题目变成求这个n的最小值。&lt;BR&gt;用逆推法，100层是不用考虑的，如果99层丢没有破，答案就是100层。所以最坏情况下，最后一次丢棋子是在99层。&lt;BR&gt;倒数第二次要保证如果没有破，则只剩1层需要测试，如果破了，则也只有一层需要测试。&lt;BR&gt;倒数第二次只能是98层，其后需要测试的两层分别是99和97。&lt;BR&gt;倒数第三次就只能是96层，96层如果破了，有两层需要测试，向上就是98和99（或97），向下就是95，94。&lt;BR&gt;所以倒数第四次一定是93层。&lt;BR&gt;依次类推，最后得到一个逆序数列：&lt;BR&gt;99,98,96,93,89,84,78,71,63,54,44,33,21,8&lt;BR&gt;这个数列逆过来，就是丢棋子的正确顺序。&lt;BR&gt;代码如下：&lt;BR&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"&gt;
&lt;DIV&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;SPAN style="COLOR: #000000"&gt;#include&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;iostream&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;std;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;bool&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;throw_at(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;i)&lt;BR&gt;&lt;IMG id=Codehighlighter1_62_146_Open_Image onclick="this.style.display='none'; Codehighlighter1_62_146_Open_Text.style.display='none'; Codehighlighter1_62_146_Closed_Image.style.display='inline'; Codehighlighter1_62_146_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_62_146_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_62_146_Closed_Text.style.display='none'; Codehighlighter1_62_146_Open_Image.style.display='inline'; Codehighlighter1_62_146_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedBlock.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_62_146_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_62_146_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;result&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;55&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;//&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;set&amp;nbsp;the&amp;nbsp;result&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(&amp;nbsp;i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;result&amp;nbsp;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;true&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;false&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;foo()&lt;BR&gt;&lt;IMG id=Codehighlighter1_158_812_Open_Image onclick="this.style.display='none'; Codehighlighter1_158_812_Open_Text.style.display='none'; Codehighlighter1_158_812_Closed_Image.style.display='inline'; Codehighlighter1_158_812_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_158_812_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_158_812_Closed_Text.style.display='none'; Codehighlighter1_158_812_Open_Image.style.display='inline'; Codehighlighter1_158_812_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedBlock.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_158_812_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_158_812_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG id=Codehighlighter1_175_218_Open_Image onclick="this.style.display='none'; Codehighlighter1_175_218_Open_Text.style.display='none'; Codehighlighter1_175_218_Closed_Image.style.display='inline'; Codehighlighter1_175_218_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_175_218_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_175_218_Closed_Text.style.display='none'; Codehighlighter1_175_218_Open_Image.style.display='inline'; Codehighlighter1_175_218_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;array[]&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_175_218_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_175_218_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;8&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;21&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;33&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;44&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;54&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;63&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;71&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;78&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;84&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;89&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;93&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;96&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;98&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;99&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;count&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&amp;nbsp;i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;sizeof&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(array)&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;sizeof&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(array[&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;])&amp;nbsp;);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;++&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;i&amp;nbsp;)&lt;BR&gt;&lt;IMG id=Codehighlighter1_301_708_Open_Image onclick="this.style.display='none'; Codehighlighter1_301_708_Open_Text.style.display='none'; Codehighlighter1_301_708_Closed_Image.style.display='inline'; Codehighlighter1_301_708_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_301_708_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_301_708_Closed_Text.style.display='none'; Codehighlighter1_301_708_Open_Image.style.display='inline'; Codehighlighter1_301_708_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_301_708_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_301_708_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;bool&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;broken&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;throw_at(array[i]);&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;++&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;count;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(&amp;nbsp;broken&amp;nbsp;)&lt;BR&gt;&lt;IMG id=Codehighlighter1_367_705_Open_Image onclick="this.style.display='none'; Codehighlighter1_367_705_Open_Text.style.display='none'; Codehighlighter1_367_705_Closed_Image.style.display='inline'; Codehighlighter1_367_705_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_367_705_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_367_705_Closed_Text.style.display='none'; Codehighlighter1_367_705_Open_Image.style.display='inline'; Codehighlighter1_367_705_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_367_705_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_367_705_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;j&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;array[i&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;];&amp;nbsp;j&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;array[i];&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;++&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;j&amp;nbsp;)&lt;BR&gt;&lt;IMG id=Codehighlighter1_420_587_Open_Image onclick="this.style.display='none'; Codehighlighter1_420_587_Open_Text.style.display='none'; Codehighlighter1_420_587_Closed_Image.style.display='inline'; Codehighlighter1_420_587_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_420_587_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_420_587_Closed_Text.style.display='none'; Codehighlighter1_420_587_Open_Image.style.display='inline'; Codehighlighter1_420_587_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_420_587_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_420_587_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;(&amp;nbsp;throw_at(j)&amp;nbsp;)&lt;BR&gt;&lt;IMG id=Codehighlighter1_448_582_Open_Image onclick="this.style.display='none'; Codehighlighter1_448_582_Open_Text.style.display='none'; Codehighlighter1_448_582_Closed_Image.style.display='inline'; Codehighlighter1_448_582_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_448_582_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_448_582_Closed_Text.style.display='none'; Codehighlighter1_448_582_Open_Image.style.display='inline'; Codehighlighter1_448_582_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_448_582_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_448_582_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;++&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;count;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;Throw&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;count&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;times.&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;endl;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;Result&amp;nbsp;is:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;j&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;endl;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;j;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;Throw&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;count&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;times.&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;endl;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;Result&amp;nbsp;is:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;array[i]&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;endl;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;i;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;Throw&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;count&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;times.&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;endl;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;Result&amp;nbsp;is:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;100&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;endl;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;100&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;main(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;argc,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;char&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;*&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;argv[])&lt;BR&gt;&lt;IMG id=Codehighlighter1_847_868_Open_Image onclick="this.style.display='none'; Codehighlighter1_847_868_Open_Text.style.display='none'; Codehighlighter1_847_868_Closed_Image.style.display='inline'; Codehighlighter1_847_868_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_847_868_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_847_868_Closed_Text.style.display='none'; Codehighlighter1_847_868_Open_Image.style.display='inline'; Codehighlighter1_847_868_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedBlock.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_847_868_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_847_868_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foo();&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/23399.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>sysinternals的各种系统管理工具下载</title><link>http://blog.vckbase.com/panic/archive/2006/12/06/23378.html</link><pubDate>Wed, 06 Dec 2006 06:10:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/12/06/23378.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23378.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/12/06/23378.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23378.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23378.html</trackback:ping><description>sysinternals原来是一个独立团队，开发了一系列信息监控和修改的工具。现在sysinternals被微软吃掉了，不过开发并没有停止：&lt;BR&gt;详情访问主页：&lt;BR&gt;&lt;A href="http://www.sysinternals.com"&gt;www.sysinternals.com&lt;/A&gt;&lt;BR&gt;另外blog似乎有个bug，我输入www之后，如果紧跟着一个 . 就会死掉半天。。&lt;img src ="http://blog.vckbase.com/panic/aggbug/23378.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>CMonthCalCtrl的一个BUG</title><link>http://blog.vckbase.com/panic/archive/2006/12/06/23375.html</link><pubDate>Wed, 06 Dec 2006 03:38:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/12/06/23375.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23375.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/12/06/23375.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23375.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23375.html</trackback:ping><description>&lt;P&gt;环境：win2k pro, vc6.0 sp5&lt;BR&gt;bug描述：&lt;BR&gt;CMonthCalCtrl::GetCurSel函数的返回值是错误的。&lt;BR&gt;&lt;BR&gt;测试代码：&lt;BR&gt;//CMonthCalCtrl m_c; //定义在某处。&lt;BR&gt;//当用户选择了不同的日期后&lt;BR&gt;CTime t;&lt;BR&gt;m_c.GetCurSel(t);&lt;BR&gt;CString s = t.Format( "%A, %B %d, %Y" );&lt;BR&gt;//之后s的值和用户选择的数值相去甚远。&lt;BR&gt;&lt;BR&gt;bug跟踪：&lt;BR&gt;通过简单的跟踪，发现问题出在控件本身对消息的响应上，在winctrl5.cpp中：&lt;BR&gt;BOOL CMonthCalCtrl::GetCurSel(CTime&amp;amp; refTime) const&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;ASSERT(::IsWindow(m_hWnd));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;// can't use this method on multiple selection controls&lt;BR&gt;&amp;nbsp;ASSERT(!(GetStyle() &amp;amp; MCS_MULTISELECT));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;SYSTEMTIME sysTime;&lt;BR&gt;&amp;nbsp;BOOL bResult = (BOOL)&lt;BR&gt;&amp;nbsp;&amp;nbsp;::SendMessage(m_hWnd, MCM_GETCURSEL, 0, (LPARAM) &amp;amp;sysTime); &lt;BR&gt;//这个消息返回后，sysTime的wMinute和wSecond成员的数值是错误的。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;if (bResult)&lt;BR&gt;&amp;nbsp;&amp;nbsp;refTime = CTime(sysTime);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;return bResult;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;解决方法：自己发消息，然后修正sysTime的对应成员。&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/23375.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>游戏的竞争特性（游戏设定连载之一）</title><link>http://blog.vckbase.com/panic/archive/2006/11/29/23296.html</link><pubDate>Wed, 29 Nov 2006 09:01:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/11/29/23296.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23296.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/11/29/23296.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23296.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23296.html</trackback:ping><description>&lt;P&gt;游戏的竞争特性（游戏设定连载之一）&lt;/P&gt;
&lt;P&gt;作者： &lt;a title="Panic" href="http://blog.vckbase.com/panic/" &gt;Panic&lt;/a&gt; 2006年11月29日&lt;/P&gt;
&lt;P&gt;这里所说的游戏并不仅限于电脑/电子游戏。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;游戏的本质是竞争，每个玩家都可以挑战他的对手，而在一定的实力范围内有获胜的机会。对手可以是其他玩家，机器，自然界或者就是自己。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;#8220;掰手腕&amp;#8221;是最简单的竞争之一，通过单纯的比拼力量决定胜负。这个游戏年代久远，但是只适合力量接近的玩家互相竞争。&lt;/P&gt;
&lt;P&gt;当双方的实力相差比较大的时候，强的一方会以压倒性优势获胜并且可能会让对手受伤。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;另一个游戏叫做&amp;#8220;掷硬币&amp;#8221;。玩家抛出一枚硬币，依靠猜测硬币落地后的正反面来决定胜负。&lt;/P&gt;
&lt;P&gt;这个游戏比拼的是&amp;#8220;运气&amp;#8221;，如果投掷硬币的一方能确保较高的随机性，不同的玩家之间没有明显的判断胜负的依据。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;这是两个极端的情况，最终的胜负完全依靠实力决定，或者完全依靠运气决定。（有时候运气也是一种实力）&lt;/P&gt;
&lt;P&gt;一般的游戏，通常特性介于这两个极端之间，玩家同时受自身实力和运气两个因素的影响。这两个因素所占的比例就决定了一个游戏的竞争特性。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;实力因素可以依靠玩家的主观方式改变，通过进行更多的尝试和训练，增加投入，都可以有效提升自身的实力。而运气因素是不可预知而且难以捉摸的。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;对于一个游戏，实力因素会导致两个结果，一个是玩家为了提升实力，增加更多的投入到游戏中，游戏黏着度会因此而提升；另一方面，如果这个实力提升过程过于繁琐和无聊，玩家会失去兴趣。&lt;/P&gt;
&lt;P&gt;运气因素则起到不同的作用，由于玩家会因为运气好而战胜比自己强的对手，这会吸引更多的玩家进行尝试，但是实力强的玩家也会因为运气不好而被实力弱的对手击败，从而失去游戏乐趣。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;最普及的游戏恐怕就是扑克牌和麻将了，他们的长盛不衰表明在实力和运气这两个因素上，达到了比较恰当的比例。&lt;/P&gt;
&lt;P&gt;对于扑克游戏（比如80分）来说，一个初学者战胜一个高手的概率是相当高的，经常有人感叹&amp;#8220;牌艺差的运气好&amp;#8221;，这表明在扑克游戏中，运气因素占据了比较大的比例。&lt;/P&gt;
&lt;P&gt;尽管这两个因素难以量化，但是还是可以简单的估计他们所占的比例。&lt;/P&gt;
&lt;P&gt;估算这个比例的方法如下：&lt;/P&gt;
&lt;P&gt;在完全运气的因素下，双方获胜的几率都是50%，而实力因素则导致强的一方以接近100%的概率获胜。&lt;/P&gt;
&lt;P&gt;那么两个实力悬殊的对手，假设实际的竞争中强者获胜的概率是x，那么当x = 100%的时候表明游戏中实力因素占100%，而x = 50%的时候表明运气因素占100%。&lt;/P&gt;
&lt;P&gt;x介于这两个数值之间的时候（如果x &amp;lt; 50%，表明对实力的评判依据有问题，或者采样数量不足），运用线性拟合的方式得到实力因素在游戏中占据的比例是(x-50%)*2&lt;/P&gt;
&lt;P&gt;这个比例并不准确，我们使用这个公式先进行初步的分析。&lt;/P&gt;
&lt;P&gt;使用这个公式，玩家之间胜率和实力对比的曲线如图中蓝色曲线所示：&lt;/P&gt;
&lt;P&gt;&lt;IMG height=400 src="/images/vckbase_com/panic/game.gif" width=400 border=0&gt;&lt;/P&gt;
&lt;P&gt;A1点就是一个新手挑战高水平玩家的胜率。&lt;/P&gt;
&lt;P&gt;图中的胜率曲线必定过点B，这表明双方实力相同的时候，任何游戏中，双方的胜率都是50%，即只受运气因素影响。&lt;/P&gt;
&lt;P&gt;同时曲线自身关于B点旋转对称，也就是说当竞争双方互换角色的时候，胜率也刚好互换。&lt;/P&gt;
&lt;P&gt;D点是一个额外的参数，表明玩家在游戏中可以容忍的最小胜率，玩家实力从0进阶到C1（这个实力进阶，可以以玩家选定固定实力的对手，而提升自身实力来实现，也可以通过选择实力更弱的玩家来实现--b）的过程，就是游戏的上手过程。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;现在回来分析最初的两个游戏，首先是掰手腕，在图中用紫色曲线表示。&lt;/P&gt;
&lt;P&gt;这个游戏很特别，当两个玩家实力稍微拉开，则结果就很明确了，实力悬殊的玩家，弱的一方几乎没有获胜的可能性。同时玩家实力要从0进阶到C2才有可能完成上手过程，这个过程可能会相当漫长。&lt;/P&gt;
&lt;P&gt;掷硬币则刚好相反，如图中红色曲线所示，图中可以看出玩家的胜率和实力几乎没有关系，而且初始胜率A3已经在D点之上了，表示这个游戏不需要一个上手过程。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;尽管在曲线AB段可以有各种不同的形式，但是简洁起见，我们还是只把A点位置，和曲线在B点的斜率作为两个关键的参数来分析一个游戏的特性。&lt;/P&gt;
&lt;P&gt;A点位置的高低决定了游戏的新手起始胜率，这个数值高有利于吸引新手加入，因为可以有比较高的几率获得胜利，同时也会增加高水平玩家离开的可能性。&lt;/P&gt;
&lt;P&gt;B点的斜率决定了游戏是运气主导还是实力主导，斜率越接近0，则运气的比重越大。接近1则两者参半，接近无穷则为实力主导。&lt;/P&gt;
&lt;P&gt;同时，运气主导的游戏一般而言上手难度低，而实力主导的游戏上手难度会高一些。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;当设计一个游戏的时候，在竞争方式上选择一个实力和运气的比例是很重要的，过分强调实力的游戏会在上手阶段遭遇障碍，而过分强调运气的游戏则会潜在引发资深玩家流失。&lt;/P&gt;
&lt;P&gt;专业的竞技类游戏，比如棋类，球类，田径等都是实力主导的，运气成分很低，所以新手几乎没有可能战胜专业的玩家。而一些普及的游戏，比如麻将，升级一类则是运气主导。&lt;/P&gt;
&lt;P&gt;游戏的不同阶段可以采用不同的控制方法，使得这两个因素总是保持在一个相对理想的状态，不过这会导致设定的复杂度增加。&lt;/P&gt;
&lt;P&gt;除了通过控制运气比例来提高初始胜率之外，也可以在游戏规则上对实力悬殊的玩家之间竞争做一些限制，比如围棋的让子等等。&lt;/P&gt;
&lt;P&gt;在一个严谨并且有比较明确的实力界定方法的游戏中，这种限制不失为一种好的方法。但是多数游戏面对的是形色各异的玩家，除了实力难以界定之外，游戏中的一方或者双方无法按照规则进行限制也是很常见的事情。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/23296.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>发布一个speedsim源代码</title><link>http://blog.vckbase.com/panic/archive/2006/11/29/23280.html</link><pubDate>Wed, 29 Nov 2006 02:13:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/11/29/23280.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/23280.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/11/29/23280.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/23280.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/23280.html</trackback:ping><description>最近在玩一个网页游戏叫做ogame，详情请到 ogame.org 了解。&lt;BR&gt;ogame简体中文版的网址是&lt;BR&gt;ogame.com.cn&lt;BR&gt;&lt;BR&gt;speedsim是ogame的战斗模拟器。&lt;BR&gt;speedsim是一个开源项目，原作者好像是德国人，但是现有的release版对ogame.com.cn的支持不是很好，于是我下载了源代码做了一些修改。&lt;BR&gt;代码和可执行文件下载请&lt;BR&gt;&lt;A href="http://blog.vckbase.com/Files/Panic/speedsim.rar"&gt;点击这里&lt;BR&gt;&lt;/A&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/23280.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>今天下午开始，google.com又访问不了了</title><link>http://blog.vckbase.com/panic/archive/2006/10/30/22920.html</link><pubDate>Mon, 30 Oct 2006 10:17:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/10/30/22920.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/22920.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/10/30/22920.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/22920.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/22920.html</trackback:ping><description>但是我用代理访问没有任何问题。&lt;BR&gt;继blogspot.com被再次屏蔽后，google.com难道也面临新一轮的屏蔽？？&lt;img src ="http://blog.vckbase.com/panic/aggbug/22920.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>我的hosts文件又增加了几条</title><link>http://blog.vckbase.com/panic/archive/2006/10/18/22799.html</link><pubDate>Wed, 18 Oct 2006 03:15:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/10/18/22799.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/22799.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/10/18/22799.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/22799.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/22799.html</trackback:ping><description>&lt;P&gt;如下：&lt;BR&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doubleclick.net&lt;BR&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allyes.com&lt;BR&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atpanel.com&lt;BR&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atdmt.com&lt;BR&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; suitesmart.com&lt;BR&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csa.qq.com&lt;/P&gt;
&lt;P&gt;说明，除了最后一个csa.qq.com不知是什么用途之外，前面那些无一例外都是广告网站。&lt;/P&gt;
&lt;P&gt;这些网站的恶劣之处在于，你根本就不知道何时访问了他们，但是他们却在你的cookie中留下了记录。&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/22799.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>从一个小问题衍生的方法－－三进制数</title><link>http://blog.vckbase.com/panic/archive/2006/10/11/22727.html</link><pubDate>Wed, 11 Oct 2006 11:02:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/10/11/22727.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/22727.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/10/11/22727.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/22727.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/22727.html</trackback:ping><description>&lt;P&gt;从一个小问题衍生的方法－－三进制数&lt;/P&gt;
&lt;P&gt;作者： &lt;a title="Panic" href="http://blog.vckbase.com/panic/" &gt;Panic&lt;/a&gt; 2006年10月11日&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;有一个很久以前（可能有数百年）的问题，是这样：&lt;/P&gt;
&lt;P&gt;一个重40磅的砝码，不小心摔成了4块，结果这4块刚好都是整数，而且可以用天平称量1～40以内的任何重量。请问这4块的重量分别是多少。&lt;/P&gt;
&lt;P&gt;问题很好分析，天平的特性是，砝码可以放置在两边。也就是说，一个1磅的砝码，可以放在右侧作为砝码，也可以放在左侧作为称量物，放在左侧则最终的称量结果要减去砝码重量。&lt;/P&gt;
&lt;P&gt;我们现在考虑只有两个砝码的情况，其中一个砝码是1磅，另外一个假设是2磅。那么称量情况是这样：&lt;/P&gt;
&lt;P&gt;1磅砝码&amp;nbsp;&amp;nbsp;&amp;nbsp; 2磅砝码&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 称量的重量&lt;BR&gt;右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3磅&lt;BR&gt;不放&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2磅&lt;BR&gt;右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不放&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1磅&lt;BR&gt;左侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1磅&lt;/P&gt;
&lt;P&gt;从这个表可以看出，当大的砝码是2磅的时候，砝码分置两侧，并不能得到一个新的称量结果，所以大的砝码至少应该有3磅，结果变成：&lt;/P&gt;
&lt;P&gt;1磅砝码&amp;nbsp;&amp;nbsp;&amp;nbsp; 3磅砝码&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 称量的重量&lt;BR&gt;右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4磅&lt;BR&gt;不放&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3磅&lt;BR&gt;右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不放&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1磅&lt;BR&gt;左侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右侧&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2磅&lt;/P&gt;
&lt;P&gt;两颗砝码，可以称量4种重量。用大于3磅的砝码也可以称量4种重量，但是那样的话结果就不连续了。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;现在把这两个砝码作为一个组合，加入更大的第三颗砝码，那么为了同样满足砝码分置两侧得到不同结果，第三颗砝码的重量应该是：2&amp;#215;两颗之和+1，也就是9磅。然后利用前两颗的拆分交替，就可以得到1～13的任何重量。&lt;/P&gt;
&lt;P&gt;同样的可以轻易计算出第三颗砝码是 13&amp;#215;2+1 = 27磅。&lt;/P&gt;
&lt;P&gt;这样，1，3，9，27，4颗砝码组成了一个以3为倍率的等比数列。这4颗砝码可以称量1～40之间的任何整数重量。&lt;/P&gt;
&lt;P&gt;回到最初的问题，我们可以抽象为：用4个位，表达至少40个不同的量。而考虑到砝码有放在左侧，右侧和完全不使用三种状态，这其实是个三进制数，一个有4位的三进制数。&lt;/P&gt;
&lt;P&gt;4位三进制数能够表达的范围是81，在天平的问题中，称量物放在左侧和右侧可以认为是两种不同的结果（或者说是符号位），而称量物也没有放置（或者说重量为0）也算一种情况，刚好造成81种结果。&lt;/P&gt;
&lt;P&gt;这个问题到此就完整的结束了。&lt;/P&gt;
&lt;P&gt;之所以会考虑这个问题，是因为我在设计一个单片机电路的时候，无意中利用到单片机口线的三种状态。&lt;/P&gt;
&lt;P&gt;三种状态就表达了一个三进制位，这样利用7条口线，就可以表达3^7 = 2187种状态，这个数字已经超过了11bit的二进制位(2048)，利用这个特性可以用更少的口线，实现更多的功能，更有效的利用单片机有限的资源。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/panic/aggbug/22727.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Panic</dc:creator><title>旧事重提，反转一个字节的算法讨论</title><link>http://blog.vckbase.com/panic/archive/2006/09/06/22310.html</link><pubDate>Wed, 06 Sep 2006 08:17:00 GMT</pubDate><guid>http://blog.vckbase.com/panic/archive/2006/09/06/22310.html</guid><wfw:comment>http://blog.vckbase.com/panic/comments/22310.html</wfw:comment><comments>http://blog.vckbase.com/panic/archive/2006/09/06/22310.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blog.vckbase.com/panic/comments/commentRss/22310.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/panic/services/trackbacks/22310.html</trackback:ping><description>&lt;P&gt;作者： &lt;a title="Panic" HREF="/panic/" &gt;Panic&lt;/a&gt; 2006年9月6日&lt;BR&gt;&lt;BR&gt;很久以前发过一个相关的随笔：&lt;!--StartFragment --&gt;&amp;nbsp;&lt;A class=singleposttitle id=viewpost1_TitleUrl HREF="/panic/archive/2005/06/11/6389.html"&gt;反转一个字节的算法&lt;/A&gt;&lt;BR&gt;以及相关的效率探讨：&lt;!--StartFragment --&gt; &lt;A class=singleposttitle id=viewpost1_TitleUrl HREF="/panic/archive/2005/06/13/6509.html"&gt;效率的边界－－几种反转字节算法分析&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;昨天 &lt;A href="http://blog.vckbase.com/bruceteen"&gt;&lt;a title="" HREF="/bruceteen/" target="_blank"&gt;周星星&lt;/a&gt;&lt;/A&gt; 旧事重提，又引发了对这个简单问题的讨论，相关的东西以前已经讨论了很多了，这里不再重复，只提供两个新的算法：&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;首先是周星星的新算法：&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"&gt;
&lt;DIV&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;SPAN style="COLOR: #000000"&gt;unsigned&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;char&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;reverse8(&amp;nbsp;unsigned&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;char&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;c&amp;nbsp;)&lt;BR&gt;&lt;IMG id=Codehighlighter1_42_199_Open_Image onclick="this.style.display='none'; Codehighlighter1_42_199_Open_Text.style.display='none'; Codehighlighter1_42_199_Closed_Image.style.display='inline'; Codehighlighter1_42_199_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_42_199_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_42_199_Closed_Text.style.display='none'; Codehighlighter1_42_199_Open_Image.style.display='inline'; Codehighlighter1_42_199_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedBlock.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_42_199_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_42_199_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0x55&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;|&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0xAA&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0x33&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;2&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;|&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0xCC&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;2&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0x0F&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;4&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;|&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(&amp;nbsp;c&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;0xF0&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;4&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;c;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;BR&gt;经过测试，这是目前在32位环境，除查表法之外的最高效算法。&lt;BR&gt;&lt;BR&gt;我也尝试了一下，要超越这个算法的效率的确很难，几经周折也没有能够成功。不过这个过程中，考虑了另外一个算法，需要64位环境的支持，代码如下：&lt;BR&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"&gt;
&lt;DIV&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;SPAN style="COLOR: #000000"&gt;typedef&amp;nbsp;unsigned&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;long&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;U_INT64;&amp;nbsp;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;//&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;64位环境。long应该是64bit长度。&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;//&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;如果有更适合的类型，替换这个typedef即可。&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;typedef&amp;nbsp;unsigned&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;char&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;U_INT8;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/None.gif" align=top&gt;U_INT8&amp;nbsp;reverse64(&amp;nbsp;U_INT8&amp