From 8b2061b85722163de3b9e5f47534d7869b16239e Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 16 Apr 2015 18:23:27 +0200 Subject: Initial commit --- .../main/java/com/camilstaps/rushhour/Board.java | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 app/src/main/java/com/camilstaps/rushhour/Board.java (limited to 'app/src/main/java/com/camilstaps/rushhour/Board.java') diff --git a/app/src/main/java/com/camilstaps/rushhour/Board.java b/app/src/main/java/com/camilstaps/rushhour/Board.java new file mode 100644 index 0000000..7ea52de --- /dev/null +++ b/app/src/main/java/com/camilstaps/rushhour/Board.java @@ -0,0 +1,55 @@ +package com.camilstaps.rushhour; + +import android.content.Context; +import android.util.Log; +import android.widget.RelativeLayout; + +import java.util.HashSet; +import java.util.Set; + +/** + * Created by camilstaps on 16-4-15. + */ +public class Board { + + Set cars = new HashSet<>(); + + public static final int DIMENSION = 6; + + private MoveListener moveListener = new MoveListener() { + @Override + public void onMove(Car car, int offset) { + Coordinate newC = car.wouldMoveTo(offset); + if (newC.getY() > DIMENSION - 1 || newC.getX() > DIMENSION - 1 || newC.getX() < 0 || newC.getY() < 0) return; + for (Car iter : cars) { + if (iter.occupies(newC)) { + Log.d("Board", "Can't move"); + return; + } + } + car.move(offset); + } + }; + + public Board() { + this(new HashSet()); + } + + public Board(Set cars) { + for (Car car : cars) { + add(car); + } + } + + public void add(Car car) { + car.setMoveListener(moveListener); + cars.add(car); + } + + public void addToLayout(Context context, RelativeLayout layout) { + for (Car car : cars) { + layout.addView(car.getImageView(context)); + } + } + +} -- cgit v1.2.3