Google Code Jam

这是两个星期之前的一个Google的活动了,非常遗憾,当时因为公司的网中了毒,网速慢而没办法注册成功,错过了小试牛刀的机会。现在注册和初赛已经结束了。不过我还是做了一下热身赛的题目,有一道题我觉得还有点意思,大家想玩编程的话不妨用这些题目打一下基本功,题目如下:

在一个20×20的矩阵里,用"."来表示,有一个点从"0,0"开始移动,然后给出一串指令,"FORWARD n"就向前移动n步,"LEFT"就转左,这个点经过的就变成"x",一串指令后要求返回打印出这个矩阵。

举个例,如这串指令是"FORWARD 5","LEFT","FORWARD 10","LEFT","FORWARD 5","LEFT","FORWARD 5",则返回的结果应该是:

x….xxxxx……….
x……..x……….
x……..x……….
x……..x……….
xxxxxxxxxx……….
………………..
………………..
………………..
………………..
………………..
………………..
………………..
………………..
………………..
………………..
………………..
………………..
………………..
………………..
………………..

我和华君都选择了用JAVA来写(Code Jam可以允许大家使用Java,C++,VB,C#的任一种来写),大家有兴趣的可以先思考一下,然后往下翻我再公布我和华君的code。

更多的题目,上Code Jam的官方论坛玩下,http://groups.google.com/group/google-code?lnk=lr

先公布华君的Code,他说也有点难度,主要是转弯那一下,所以都思考了一下。

华君这段比较难懂,我自己写的就注重可读性多点,不过就当然会比他长一点啦。我觉得最核心的代码就是forward这个method。