summaryrefslogtreecommitdiff
path: root/src/command.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/command.rs')
-rw-r--r--src/command.rs73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/command.rs b/src/command.rs
deleted file mode 100644
index c6d6695..0000000
--- a/src/command.rs
+++ /dev/null
@@ -1,73 +0,0 @@
-use crate::geometry::Direction;
-use crate::geometry::Point2d;
-use std::fmt;
-
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
-pub struct Command {
- pub worm: Option<i32>,
- pub action: Action,
-}
-
-impl fmt::Display for Command {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- match self.worm {
- Some(worm) => write!(f, "select {};{}", worm, self.action),
- None => write!(f, "{}", self.action),
- }
- }
-}
-
-impl Command {
- pub fn with_select(worm: i32, action: Action) -> Command {
- Command {
- worm: Some(worm),
- action,
- }
- }
-
- pub fn new(action: Action) -> Command {
- Command { worm: None, action }
- }
-}
-
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
-pub enum Action {
- Move(Point2d),
- Dig(Point2d),
- Shoot(Direction),
- Bomb(Point2d),
- Snowball(Point2d),
- DoNothing,
-}
-
-impl fmt::Display for Action {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- use Action::*;
- match self {
- Move(p) => write!(f, "move {} {}", p.x, p.y),
- Dig(p) => write!(f, "dig {} {}", p.x, p.y),
- Shoot(dir) => write!(f, "shoot {}", dir),
- Bomb(p) => write!(f, "banana {} {}", p.x, p.y),
- Snowball(p) => write!(f, "snowball {} {}", p.x, p.y),
- DoNothing => write!(f, "nothing"),
- }
- }
-}
-
-impl Action {
- pub fn is_attack(&self) -> bool {
- use Action::*;
- match self {
- Shoot(_) | Bomb(_) => true,
- _ => false,
- }
- }
-
- pub fn is_snowball(&self) -> bool {
- use Action::*;
- match self {
- Snowball(_) => true,
- _ => false,
- }
- }
-}