博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小练习 登月机器人
阅读量:6352 次
发布时间:2019-06-22

本文共 1653 字,大约阅读时间需要 5 分钟。

  今天看到园子里有一个登月机器人的面试题,于试着写一下,有一点坑爹的地方是if不能起过5个,下面就有这种情况

if(a){    if(x) code1;    if(y) code2;}

这个我改成

if(a && x) code1;if(a && y) code2;

我这样不是也少了if吗?这坑爹.

下面是一坨C#代码

public class MoonRabbit    {        private string DIR = "NESW";        private Tuple
position;//当前位置 private int direction;//当前的方向 public MoonRabbit(Tuple
position, char direction) { this.position = position; this.direction = DIR.IndexOf(direction); } public void Foo(string instruct) { char[] ch = instruct.ToArray
(); for (int i = 0, ct = ch.Length; i < ct; i++) { Rotation(ch[i]); Move(ch[i]); } } public void Show() { Console.WriteLine("当前位置({0},{1}),方向{2}", position.Item1, position.Item2, DIR[direction]); } private void Rotation(char instruct) { if (instruct == 'R') direction = (direction + 1) % 4; if (instruct == 'L') direction = (direction - 1 + 4) % 4; } private void Move(char instruct) { int x = position.Item1; int y = position.Item2; if (instruct == 'F' && (DIR.IndexOf('E') == direction || DIR.IndexOf('W') == direction)) x = x + (2 - direction); //13 EW if (instruct == 'F' && (DIR.IndexOf('N') == direction || DIR.IndexOf('S') == direction)) y = y + (1 - direction);//02 NS position = new Tuple
(x, y); } }

 

转载于:https://www.cnblogs.com/gw2010/p/3582286.html

你可能感兴趣的文章
Java之品优购课程讲义_day07(5)
查看>>
Java的新项目学成在线笔记-day3(八)
查看>>
路由简单的实验
查看>>
好程序员web前端教程分享js reduce方法使用教程
查看>>
零基础学习大数据Hadoop需要什么准备?Hadoop如何发展起来的?
查看>>
前端程序员需要具备的几个软实力,你具备了吗
查看>>
RHEL系列网络配置2015083101
查看>>
c# 基本值类型及其默认值
查看>>
服务器端解决JS跨域调用问题
查看>>
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
查看>>
雨巷-戴望舒
查看>>
OpenCms创建网站过程图解——献给OpenCms的初学者们
查看>>
C++ 异常处理机制的实现
查看>>
Freebsd的ports命令
查看>>
分布式系统---幂等性设计
查看>>
【转】时钟周期,机器周期,指令周期的区别
查看>>
MYSQL 更新时间自己主动同步与创建时间默认值共存问题
查看>>
android 屏幕适配
查看>>
Android Activity的4种启动模式
查看>>
leetcode第一刷_Minimum Depth of Binary Tree
查看>>