darozak / Advolition

1 stars 0 forks source link

Provide information on scanned robots #34

Closed darozak closed 7 months ago

darozak commented 7 months ago

When a player robot (PR) scans the room, I want it to get information on the current status of every non player robot (NPR) in the scan.

Although information on all scanned NPRs will remain in the PRs memory, they will become dated if not rescanned.

To implement this, the PR will need to start with an array of all NPR stats in the game. However, each NPR stat will have no information associated with it.

As the PR encounters and scans an NPR, it will update the stats for that robot and can reference it even when the NPR is no longer being scanned. However, this information will no longer be current.

darozak commented 7 months ago

I've modified the code so that scans collect and retain historic data on both the arena map and the robots that are in it. All of this data has a time stamp associated with it, so it's possible for the robot to assess how old a particular data set is. (https://github.com/darozak/Advolition/commit/71952d3362c58dd1f861a2213340f7907a890d28).

One of the concessions that I had to make when collecting data on other robots is that all in-game robots are presumed to be identical to the player's robot prior to being scanned for the first time. This basically means that the robot should not trust any scan data collected at time zero.

The only thing that I have left to do here is make sure that the robots can access their current and historic scan data.

darozak commented 7 months ago

Refactored the code so that the Program interface is simpler and more intuitive to the user (https://github.com/darozak/Advolition/commit/484b9e25ec43da4a50cdff548c881c79fcaac199). Now, all environmental data is passed to the robot via a ScanData object to include data about the robot itself.

I do need to modify the code so that the robot's personal data in the ScanData object is updated regardless of whether the robot has completed a scan.

darozak commented 7 months ago

Ok. The code now updates a robot's personal data even if it hasn't completed a scan (https://github.com/darozak/Advolition/commit/25691f869f43784691a13c6565ef49e7ef319134).