summaryrefslogtreecommitdiff
path: root/src/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/state.rs')
-rw-r--r--src/state.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/state.rs b/src/state.rs
new file mode 100644
index 0000000..2f81d5d
--- /dev/null
+++ b/src/state.rs
@@ -0,0 +1,37 @@
+use crate::command::Command;
+
+pub struct GameState {
+ players: [Player; 2],
+}
+
+pub struct Player {}
+impl GameState {
+ fn update(&mut self, commands: [Command; 2]) {
+ self.do_command(0, &commands[0]);
+ self.do_command(1, &commands[1]);
+ self.update_player_collisions();
+ self.update_player_travel();
+ }
+
+ fn do_command(&mut self, player_index: usize, command: &Command) {
+ use Command::*;
+
+ match command {
+ Nothing => {}
+ Accelerate => unimplemented!(),
+ Decelerate => unimplemented!(),
+ TurnLeft => unimplemented!(),
+ TurnRight => unimplemented!(),
+ UseBoost => unimplemented!(),
+ UseOil => unimplemented!(),
+ }
+ }
+
+ fn update_player_collisions(&mut self) {
+ //TODO
+ }
+
+ fn update_player_travel(&mut self) {
+ //TODO
+ }
+}