牛刀小试 之 猜数字
GuessNumber.rar
(50.51 KB)
这两天看到有朋友做猜数字游戏,勾起我很多美好的回忆。我做的第一个自我感觉良好的程序就是猜数字游戏(不是猜大小的那个猜数字),以前用过文曲星的朋友应该玩过,我就是玩了朋友的文曲星后决定翻版这个游戏。最早是在小霸王学习机上用BASIC实现的(呵呵,还有人知道小霸王吗?),后来学习C语言,用C又翻版了一遍。之后每学一门新语言都会拿这个小游戏来练手。再后来,猜电脑出的数字玩腻了,又写了段代码,我出数字让电脑猜。呵呵,都是很久以前的事了。这个游戏很适合大家作为编程练习来试一下。
哪位有兴趣也翻版一下?
作为奖励,周日(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的支持。
不限语言,不要求界面,只要能实现游戏的逻辑就可以。