/** *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 Marscar car = new Marscar(x, y, f);
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 Marscarclass 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); }}