Giter Club home page Giter Club logo

mars-rover's Introduction

Mars Rover

假想你在火星探索团队中负责软件开发。现在你要给登陆火星的探索小车编写控制程序,根据地球发送的控制指令来控制火星车的行动。

火星车收到的指令分为:

  • 初始化信息:火星车的降落地点(x, y)和朝向(N, S, E, W)信息;
  • 移动指令:火星车可以前进(M),一次移动一格;
  • 转向指令:火星车可以左转90度(L)或右转90度(R)。

由于地球和火星之间的距离很远,指令必须批量发送,火星车执行完整批指令之后,再回报自己所在的位置坐标和朝向。

新需求

  • 新需求1,加一个新指令,如果接受到B指令,那么久会进入倒车状态,这个时候MLR跟正向的时候是反的。注意,指令的操作虽然反了,但是朝向不能变。比如朝北的M之后,y坐标是减了,但是朝向必须还是北。

  • 新需求2,有一个雷达功能,执行完判断一下自己是不是掉沟里了,如果掉沟里了,就再map上打个记号X(只是表达这个意思,不一定非要是字符串X),后面的rover会忽略走向这个记号的命令(当火星车掉到沟里时,调用init方法创建一辆新的火星车,但旧的火星车还要在沟里,不能消失)。判断无法动的方式目前先用随机数吧,正好练练mock。

  • 新需求3,地图有不同的地形,有的地形能触发无法移动,有的不能。掉沟里是火星车自己在地图上打的标记,不同地形是火星车在来到火星时就知道的地图信息(考虑,X标在哪?真实的地图上吗?真实的世界的映射的地图,和标记了X的地图应该是个什么关系?)

  • 新需求4,车也有状态,有的状态,车会忽略一些指令,比如左转坏了,会忽略左转指令

  • 新需求5,车还分类型,比如Bus,占两格,他的坐标是车头的坐标,但是它左拐时周边必须有可以拐的空间(右侧两格都不能是X),否则会忽略掉指令。 Bus可能会在拐弯时坏掉, 引入卡车,卡车占两格,不同于Bus的是,卡车如果车头处没有坏掉,可以接受特殊指令来脱钩车头,其他车接受这个指令无反应。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.