牛刀小试 之 猜数字

呵呵,都是很久以前的事了。这个游戏很适合大家作为编程练习来试一下。
哪位有兴趣也翻版一下?
作为奖励,周日(9月25日)前,第一位实现这个游戏的送80分,其他实现的平分20分。如果只有一位实现,则100分全送他。没有人实现,那分数就平分给捧场的朋友了。
介绍一下游戏规则:
首先计算机生成一个随机的4位数字,这个4位数每一位互不相同,首位可以为0。
玩家猜这个4位数是多少。计算机跟据玩家每次提交的数字给出相应的提示,提示的格式为xAyB。
A表示玩家的4位数中某一位数字与计算机出的4位数中的一位,数字相同,位置也相同。
B表示玩家的4位数中某一位数字与计算机出的4位数中的一位,数字相同,但位置不同。
x表示这次玩家猜的数中有几个得A。
y表示这次玩家猜的数中有几个得B。
如果在7次之内玩家猜到了计算机的数字(也就是4A)则获胜,超过7次则失败。可以证明,任何这样的4位数都可以在7次之内猜到。
玩这个游戏需要一定的推理能力。为了更直观一些,我做了一个简单的示例,大家可以下载玩玩,了解一下游戏的过程。由于程序是用C#写的,win7系统可以直接玩,xp需要有2.0以上版本的.net的支持。
不限语言,不要求界面,只要能实现游戏的逻辑就可以。