这是一道面试题目,很有意思,于是花了几个小时,将它完成。
题目:
请应用任何你最熟悉的语言,设计如下程序
在屏幕上画8 X 8 的一个棋盘(整个棋盘的宽度长度都是100米),一共是64个格子,并请产生64个棋子,我们假设编号是1,2,3, 一直到64, ,每个棋子上面写上自己的编号。 你让用户可以输入3个命令:
1. 布局, 用户输入一个小于65大于10的数字,为了描述,我们用N代替,(比如N = 15), 那么你从64个棋子里面随机的挑选N个棋子,随机的决定他们分别在棋盘上的位置,并在屏幕上显示出来。
2. 取棋子: 用户输入一个小于65大于0的数字,这个数字代表用户想要的棋子,比如 I, 这儿有两种情况,一种情况是I代表的棋子在棋盘中,另一种情况是不在棋盘中。
3. 抛棋子: 这个命令把用户选中的棋子(取棋子命令选中的棋子),从一定的高度往下做重力加速度运动,这个高度是由这个选中的其中的编号决定的,公式是
高度 Height = I*(I-1) : 这儿I是棋子的编号, 高度的单位是米
棋子在这个高度的下落速度是0, 同时我们会有水平的风在吹,我们定义风的速度有三种: 分别是 0.1 米每秒, 0.5 米每秒, 1米每秒。 用户在用这个命令的时候,可以选择具体的风速度,并请定义4种风向,让用户选择。
如果碰到棋盘,那么这个下落的棋子会碰到0到4个棋子, 把碰到的棋子移走,同时自己取代棋子的一个棋子放在棋盘上。
这个无聊的游戏的目标是让用户把棋盘上的棋子全部移走。
注意事项: 你可以利用javascript+ html 页面实现,也可以用C/C++, C#, Java, Perl, Lua但一定要是可以运行的程序。 不强求完全做完这个游戏,但是你的实现程度和具体的编码情况会影响你的成绩。
除了用程序实现这个小游戏,如果你有兴趣,请描述如何在这个基本的创意下,让这个游戏变得更有吸引力。
代码实现: