华为杯校园编程大赛决赛

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2011 编程题(共1题,100分。请上机编写程序,按题目要求提交文件。测试用例不对考生公开,凡不满足提交要求导致不能运行或用例不通过,不予评分。)

1.跳棋快跑

跳棋是一种可以由二至六人同时进行的棋,棋盘为六角星型,棋子分为六种颜色,每种颜色10或15枚棋子,每一位玩家占一个角,拥有一种颜色的棋子。跳棋是一项老少皆宜、流传广泛的益智型棋类游戏。跳棋的游戏规则很简单,谁最先把正对面的阵地全部占领,谁就取得胜利。

本试题是在跳棋棋盘上,采用部分棋子完成一组简单的功能,在上图所示121格的六角星型棋盘上,给定跳棋棋子的初始布局和结束布局,按照下面描述的规则将棋子从初始布局移动到结束布局。

●棋盘采用如下坐标标识棋盘格子:

按照上图所示的六角星棋盘标识位置,从上到下,从左到右,从1开始,依次进行编号,直到最下方的格子标识为121。

●采用的跳棋规则为:

1、棋子可以一步步在有直线连接的相邻六个方向推进;

2、“相邻跳”:如果相邻位置上有棋子,该位置直线方向下一个位置是空的,则可以直接跳到该空位上,跳的过程中,只要相同条件满足就可以连续进行。

3、“等距跳”:如果在和同一直线上的任意一个空位A所构成的线段中,只有一个位置有棋子,并且该棋子位于该线段中心位置,则可以直接跳到空位A上,跳的过程中,只要相同条件满足就可以连续进行。

●初始布局和结束布局由输入文件给定,程序输出棋子移动的步骤和总的步数到输出文

件,输入输出文件都存放于可执行文件所在目录。

输入文件名为testin_x.txt(x为数字),格式如下,“I”标识初始布局,“1 2 3”标识初始布局包括3颗棋子,位于棋盘的第1,2,3个格子上。“O”标识结束布局,“7 8 9”标识结束布局时3颗棋子位于棋盘的第7,8,9个格子上。

I

1 2 3

O

7 8 9

输出文件名为testout_x.txt(x与输入文件名中数字相同),格式如下,其中每一行标识一步,记录下从哪一格出发,跳过哪些中间棋子后,到达哪个结束格。“1 2 4”标识当前步移动的是格子1的棋子,从格子1,跳过格子2的棋子,到达格子4。输出文件的最后一行记录下了总的移动步数。

1 2 4

2 4 7

4 8

3 5

5 9

5

●要求:

1、棋子按规则移动到指定的结束布局;

2、在(1)的基础上,移动到结束布局所用步数越少越好。

●限定条件:

1、其中跳棋棋子个数限定为仅蓝色的棋子3到15颗之间(包括3和15),

2、对棋子在结束布局中的位置不要求,如上输入文件中的要求,只要最终三个棋子在7、8、

9位置即可,不要求初始布局中位置1上面的棋子在结束布局中位于位置7,

3、不做界面强制要求,可选择图形界面展示跳棋过程,也可以无图形界面,但是一定要支

持读取指定输入文件,并将结果按要求自动输出为输出文件。

交付件要求

C/C++:需要提交可执行文件和压缩打包的工程目录,

JAVA:需要提交压缩打包的整个编码工程目录。

(本资料素材和资料部分来自网络,仅供参考。请预览后才下载,期待您的好评与关注!)

相关文档
最新文档