java面试题之编程火星车问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面试题之编程火星车问题相关的知识,希望对你有一定的参考价值。
/**
*author:Kevin
*date:2011-07-17
*function:The problem of Mars car. *China firmly opposes Obama-Dalai meeting
*The WAR is actually begun!Now you are the Commander of the Fleet.
*You can input command to control the Mars Car to go straight,
*turn left,turn right,and the car maybe your loyal soldier.
*The command input like this string:LL1LRR89L2,
*and at last report the location of the car to Commander.
*L means turn left,R means turn right,number0-9 means how far the car can go
*request:1).ExtremeProgramming 2).Pair Programming 3).Test Driven Development
*/import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;public class TestMarsCar
public static void main(String[] args) throws Exception
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out
.println("Now,the Mars car is loarding on the Mars,input the loaction");
System.out.println("input x:(number)");
String x = bf.readLine();
System.out.println("input y:(number)");
String y = bf.readLine();
System.out.println("input direction:(N,W,S,E)");
String f = bf.readLine();
System.out.println("the car is loaded in (" + x + "," + y + "," + f
+ ")");
// create Marscar object while (true)
System.out.println("\\n***********************"
+ "\\npress 1or 2 to select *" + "\\n1:new command *"
+ "\\n2:exit *"
+ "\\n***********************\\ninput number:");
Scanner s1 = new Scanner(System.in);
int ints1 = Integer.parseInt(s1.next());
if (ints1 == 1)
System.out.println("input new command like (L,R,0-9):"); Scanner s = new Scanner(System.in);
String commands = s.next();
for (int i = 0; i < commands.length(); i++)
String command = String.valueOf(commands.charAt(i)); if (command.equals("L"))
car.turnLeft(car.getF());
else if (command.equals("R"))
car.goRight(car.getF());
else
int n = Integer.parseInt(command);
car.goAhead(n);
// show the location of mars car.
System.out.println("the new location is (" + car.getX()
+ "," + car.getY() + "," + car.getF() + ")");
else if (ints1 == 2)
System.exit(0);
else
System.out.println("YOu command is Wrong!");
// -----------------------------------------
// class Marscar
class Marscar
private String x; // x-coordinate
private String y; // Y-coordinate
private String f; // direction public String getX()
return x;
public void setX(String x)
this.x = x;
public String getY()
return y;
public void setY(String y)
this.y = y;
public String getF()
return f;
public void setF(String f)
this.f = f;
// constructor
public Marscar(String x, String y, String f)
this.x = x;
this.y = y;
this.f = f;
public void turnLeft(String f)
System.out.println("go left");
if (f.equals("N"))
setF("W");
else if (f.equals("E"))
setF("N");
else if (f.equals("S"))
setF("E");
else if (f.equals("W"))
setF("S");
public void goRight(String f)
System.out.println("go right");
if (f.equals("N"))
setF("E");
else if (f.equals("E"))
setF("S");
else if (f.equals("S"))
setF("W");
else if (f.equals("W"))
setF("N");
// input number to control how far the car go ahead
public void goAhead(int n)
int intx = Integer.parseInt(x);
int inty = Integer.parseInt(y);
if (this.getF().equals("N"))
intx += n;
else if (this.getF().equals("E"))
inty += n;
else if (this.getF().equals("S"))
intx -= n;
else if (this.getF().equals("W"))
inty -= n;
this.x = String.valueOf(intx);
this.y = String.valueOf(inty);
以上是关于java面试题之编程火星车问题的主要内容,如果未能解决你的问题,请参考以下文章
Java最最最最最基础的面试题之谈谈你对面向对象思想的理解(含视频讲解)-建议收藏!!!
Java最最最最最基础的面试题之谈谈你对面向对象思想的理解(含视频讲解)-建议收藏!!!