From 039f7f71e049029ab71a6d6c60d2eed5f95e5795 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Thu, 16 Feb 2017 09:35:10 -0500 Subject: Update --- .../src/main/java/bjc/utils/esodata/Tape.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java (limited to 'BJC-Utils2/src/main/java/bjc/utils/esodata') diff --git a/BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java b/BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java new file mode 100644 index 0000000..4ead829 --- /dev/null +++ b/BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java @@ -0,0 +1,44 @@ +package bjc.utils.esodata; + +import java.util.ArrayList; + +public class Tape { + private ArrayList backing; + private int pos; + + public Tape() { + backing = new ArrayList<>(); + } + + public T item() { + return backing.get(pos); + } + + public boolean left() { + if(pos == 0) return false; + + pos -= 1; + return true; + } + + public boolean left(int amt) { + if((pos - amt) < 0) return false; + + pos -= amt; + return true; + } + + public boolean right() { + if(pos == (backing.size() - 1)) return false; + + pos += 1; + return true; + } + + public boolean right(int amt) { + if((pos + amt) >= (backing.size() - 1)) return false; + + pos += amt; + return true; + } +} -- cgit v1.2.3