Java 用于在游戏中表示道路交通状况的数据结构
我想设计一个面向对象的数据结构来模拟赛车游戏中的交通状况。 要求如下:Java 用于在游戏中表示道路交通状况的数据结构,java,oop,data-structures,racing,Java,Oop,Data Structures,Racing,我想设计一个面向对象的数据结构来模拟赛车游戏中的交通状况。 要求如下: 每辆车都可以知道它行驶在车道的哪个位置、哪个车道和哪个路段上 对于每条道路,它可以知道道路上有多少辆车,以及道路上每条车道上有多少辆车 (另外)每辆车都有自己的驾驶策略。例如,有些车辆喜欢开快车,而另一些车辆喜欢开慢车 我使用java来实现这个主题。目前我的对象如下。我只知道这可能需要车辆和道路/路段之间的双向关系,但我不知道如何实现它 class Lane { List<Vehicle> vehicle
车辆
和道路
/路段
之间的双向关系,但我不知道如何实现它
class Lane {
List<Vehicle> vehicleDrivingOnMe = new ArrayList<Vehicle>()
}
class RoadSection {
int roadSectionLengthByKM
/**
* Integer: LaneID, example: 0 for overspeed
*/
Map<Integer, Lane> lanes = new HashMap<Integer, Lane>()
}
class Road {
List<RoadSection> roadSectionList = new ArrayList<RoadSection>()
}
class Vehicle {
int drivingSpeedByKM
}
class车道{
列表vehicleDrivingOnMe=new ArrayList()
}
等级路段{
国际路段长度(公里)
/**
*整数:LaneID,例如:0表示超速
*/
Map lanes=newhashmap()
}
等级公路{
List roadSectionList=新建ArrayList()
}
等级车辆{
国际驾驶速度公里
}
那么,我的问题是,为了满足需求1和需求2,我应该在什么对象中添加什么元素?任何建议都将不胜感激。为了满足要求1,您可以维护父指针
class Lane {
RoadSection roadSection;
List<Vehicle> vehicleDrivingOnMe = new ArrayList<Vehicle>();
public void addVehicle(Vehicle vehicle) {
//Update parent
vehicle.lane = this;
//Update the position
vehicle.position = vehicleDrivingOnMe.size();
vehicleDrivingOnMe.add(vehicle);
}
}
class Vehicle {
Lane lane;
int drivingSpeedByKM;
int position;
}
为了满足需求1,您可以维护父指针
class Lane {
RoadSection roadSection;
List<Vehicle> vehicleDrivingOnMe = new ArrayList<Vehicle>();
public void addVehicle(Vehicle vehicle) {
//Update parent
vehicle.lane = this;
//Update the position
vehicle.position = vehicleDrivingOnMe.size();
vehicleDrivingOnMe.add(vehicle);
}
}
class Vehicle {
Lane lane;
int drivingSpeedByKM;
int position;
}