玉兔主程序复杂版
玉兔号离开嫦娥三号后,根据自身安装的定位系统可以知道自己的初始位置,我们记为 X0 , Y0 ;同时玉兔号也可以知道当前它的朝向,如东、西、南、北(暂时只考虑这四个方向)。
中国国家航天局会向玉兔号发送指令,我们先暂定为3种:
- F : 当玉兔号接收到这条指令之后,会向前移动一个坐标单位的距离
- L : 当玉兔号接受到这条指令之后,会原地向左旋转90度
- R : 当玉兔号接收到这条指令之后,会原地向右旋转90度
要求:
一)设计一个玉兔号的主程序,能够接收中国国家航天局发送过来的指令序列(如FFLFRFLL),执行该指令序列之后,玉兔号能够走到正确的位置,并知道当前正确的位置。(如:玉兔号初始位置为 (0,0),方向朝东,执行指令 FFLFRFLL之后,位置为 (3,1) 方向朝西)
三)主程序可以用任何语言编写,如Java、C#、Ruby、Python、PHP等
在所选语言允许的情况下,请编写相应的单元测试
主程序:
/** * @author:sky * @Description:TODO * @CreateDate:2014-2-10下午8:43:00 */ public class YuTu { //计算玉兔位置 public String position(int x,int y,String instructions, char toward){ //将字符串转为char数组 char[] instruction=instructions.toCharArray(); for(int i=0;i<instruction.length;i++){ if(toward=='东'){ if(instruction[i]=='F'){ x=x+1; } if(instruction[i]=='L'){ toward='北'; continue; } if(instruction[i]=='R'){ toward='南'; continue; } } if(toward=='西'){ if(instruction[i]=='F'){ x=x-1; } if(instruction[i]=='L'){ toward='南'; continue; } if(instruction[i]=='R'){ toward='北'; continue; } } if(toward=='南'){ if(instruction[i]=='F'){ y=y-1; } if(instruction[i]=='L'){ toward='东'; continue; } if(instruction[i]=='R'){ toward='西'; continue; } } if(toward=='北'){ if(instruction[i]=='F'){ y=y+1; } if(instruction[i]=='L'){ toward='西'; continue; } if(instruction[i]=='R'){ toward='东'; continue; } } } return "当前位置为:("+ x+","+y+"),方向朝"+toward; } }
浙公网安备 33010602011771号