ロボットの機能を模倣するコードを作成することでした。回したり動かしたりなど。まるで間違った方法でこれに取り組んでいるかのように感じます... これを書いているとき、私はそれの要点を理解したと思いました.コンストラクターの方向がこれである場合、新しい方向はこれです. 私はこれをテストしましたが、もちろん、実際には正しくない結果が得られました。オブジェクトにこれらの関数を実際に使用していないことは間違いありません。この種のコードの操作方法に関するヒントを得ることができますか?
import java.awt.Point;
public class Robot
{
private int x;
private int y;
private int d;
private int p;
public static final int NORTH = 0;
public static final int SOUTH = 1;
public static final int EAST = 2;
public static final int WEST = 3;
/**
* Constructor for objects of class Robot
* @param theX the x coordinate
* @param theY the y coordinate
* @param theDirection the direction the robot is facing
*/
public Robot(int theX, int theY, int theDirection)
{
x = theX;
y = theY;
d = theDirection;
}
public void turnLeft()
{
if(d == NORTH) {
d = WEST;
}
if(d == WEST) {
d = SOUTH;
}
if(d == SOUTH) {
d = EAST;
}
if(d == EAST) {
d = NORTH;
}
}
public String getDirection()
{
if(d == NORTH) {
return "N";
}
if(d == SOUTH) {
return "S";
}
if(d == WEST) {
return "W";
}
if(d == EAST) {
return "E";
}
return "";
}
}
テスト
Robot rob = new Robot(20, 20, Robot.SOUTH);
rob.turnLeft;
System.out.println(rob.getDirection);
これは、実際には E を返すべきだと思うときに S を返します。