aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorCamil Staps2015-04-29 10:59:40 +0200
committerCamil Staps2015-04-29 10:59:40 +0200
commit240eaf2f0d5b2896232906277c7f2df2aaaeebd1 (patch)
tree1b84fa3f2437356e73044fc039f31c64efeb855b /app/src
parentMerge branch 'master' of github:camilstaps/RushHourAndroid into MainActivity (diff)
parentCleanup (diff)
Merge branch 'master' into MainActivity
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/Board.java53
-rwxr-xr-xapp/src/main/java/com/camilstaps/rushhour/BoardLoader.java55
-rwxr-xr-x[-rw-r--r--]app/src/main/java/com/camilstaps/rushhour/Car.java61
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/DriveListener.java8
-rwxr-xr-x[-rw-r--r--]app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java60
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/HighScore.java40
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/HighScoreList.java36
-rwxr-xr-xapp/src/main/res/drawable-hdpi/car_1_white.pngbin3102 -> 3847 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/car_1_white_vertical.pngbin0 -> 3957 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/car_2_white.pngbin3654 -> 4267 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/car_2_white_vertical.pngbin0 -> 4621 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/car_3_white.pngbin3789 -> 4572 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/car_3_white_vertical.pngbin0 -> 5088 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/car_4_white.pngbin3683 -> 4421 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/car_4_white_vertical.pngbin0 -> 4840 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/truck_1_white.pngbin2281 -> 2662 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/truck_1_white_vertical.pngbin0 -> 2749 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/truck_2_white.pngbin2124 -> 2615 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/truck_2_white_vertical.pngbin0 -> 2648 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/truck_3_white.pngbin2706 -> 3199 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/truck_3_white_vertical.pngbin0 -> 3304 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/truck_4_white.pngbin2265 -> 2752 bytes
-rwxr-xr-xapp/src/main/res/drawable-hdpi/truck_4_white_vertical.pngbin0 -> 2783 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/car_1_white.pngbin1399 -> 1595 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/car_1_white_vertical.pngbin0 -> 1608 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/car_2_white.pngbin1582 -> 1874 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/car_2_white_vertical.pngbin0 -> 2027 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/car_3_white.pngbin1669 -> 2072 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/car_3_white_vertical.pngbin0 -> 2177 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/car_4_white.pngbin1571 -> 1843 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/car_4_white_vertical.pngbin0 -> 2013 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/truck_1_white.pngbin1009 -> 1165 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/truck_1_white_vertical.pngbin0 -> 1200 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/truck_2_white.pngbin967 -> 1098 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/truck_2_white_vertical.pngbin0 -> 1097 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/truck_3_white.pngbin1148 -> 1373 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/truck_3_white_vertical.pngbin0 -> 1384 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/truck_4_white.pngbin987 -> 1147 bytes
-rwxr-xr-xapp/src/main/res/drawable-ldpi/truck_4_white_vertical.pngbin0 -> 1153 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/car_1_white.pngbin1595 -> 2569 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/car_1_white_vertical.pngbin0 -> 2576 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/car_2_white.pngbin1874 -> 2930 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/car_2_white_vertical.pngbin0 -> 3139 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/car_3_white.pngbin2072 -> 3038 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/car_3_white_vertical.pngbin0 -> 3369 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/car_4_white.pngbin1843 -> 2872 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/car_4_white_vertical.pngbin0 -> 3161 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/truck_1_white.pngbin1165 -> 1849 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/truck_1_white_vertical.pngbin0 -> 1853 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/truck_2_white.pngbin1098 -> 1741 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/truck_2_white_vertical.pngbin0 -> 1730 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/truck_3_white.pngbin1373 -> 2173 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/truck_3_white_vertical.pngbin0 -> 2176 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/truck_4_white.pngbin1147 -> 1813 bytes
-rwxr-xr-xapp/src/main/res/drawable-mdpi/truck_4_white_vertical.pngbin0 -> 1813 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/car_1_white.pngbin2569 -> 3893 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/car_1_white_vertical.pngbin0 -> 4052 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/car_2_white.pngbin2930 -> 4830 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/car_2_white_vertical.pngbin0 -> 5223 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/car_3_white.pngbin3038 -> 5013 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/car_3_white_vertical.pngbin0 -> 5500 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/car_4_white.pngbin2872 -> 4720 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/car_4_white_vertical.pngbin0 -> 5175 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/truck_1_white.pngbin1824 -> 3160 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/truck_1_white_vertical.pngbin0 -> 3093 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/truck_2_white.pngbin1768 -> 2837 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/truck_2_white_vertical.pngbin0 -> 2687 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/truck_3_white.pngbin2083 -> 3518 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/truck_3_white_vertical.pngbin0 -> 3463 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/truck_4_white.pngbin1812 -> 3000 bytes
-rwxr-xr-xapp/src/main/res/drawable-tvdpi/truck_4_white_vertical.pngbin0 -> 2926 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/car_1_white.pngbin3847 -> 6205 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/car_1_white_vertical.pngbin0 -> 6406 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/car_2_white.pngbin4267 -> 6768 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/car_2_white_vertical.pngbin0 -> 7400 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/car_3_white.pngbin4572 -> 7458 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/car_3_white_vertical.pngbin0 -> 8342 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/car_4_white.pngbin4421 -> 7137 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/car_4_white_vertical.pngbin0 -> 7906 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/truck_1_white.pngbin2662 -> 4322 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/truck_1_white_vertical.pngbin0 -> 4418 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/truck_2_white.pngbin2615 -> 4229 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/truck_2_white_vertical.pngbin0 -> 4295 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/truck_3_white.pngbin3199 -> 5144 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/truck_3_white_vertical.pngbin0 -> 5321 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/truck_4_white.pngbin2752 -> 4476 bytes
-rwxr-xr-xapp/src/main/res/drawable-xhdpi/truck_4_white_vertical.pngbin0 -> 4480 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/car_1_white.pngbin7697 -> 10073 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/car_1_white_vertical.pngbin0 -> 10368 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/car_2_white.pngbin8540 -> 10234 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/car_2_white_vertical.pngbin0 -> 11059 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/car_3_white.pngbin9057 -> 11749 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/car_3_white_vertical.pngbin0 -> 12900 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/car_4_white.pngbin8947 -> 11427 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/car_4_white_vertical.pngbin0 -> 12317 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/truck_1_white.pngbin5175 -> 6227 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/truck_1_white_vertical.pngbin0 -> 6626 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/truck_2_white.pngbin5204 -> 6811 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/truck_2_white_vertical.pngbin0 -> 6922 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/truck_3_white.pngbin6442 -> 8058 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/truck_3_white_vertical.pngbin0 -> 8282 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/truck_4_white.pngbin5538 -> 7011 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxhdpi/truck_4_white_vertical.pngbin0 -> 6963 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/car_1_white.pngbin10073 -> 21165 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/car_1_white_vertical.pngbin0 -> 21280 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/car_2_white.pngbin10234 -> 22860 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/car_2_white_vertical.pngbin0 -> 24721 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/car_3_white.pngbin11749 -> 25042 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/car_3_white_vertical.pngbin0 -> 27538 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/car_4_white.pngbin11427 -> 24498 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/car_4_white_vertical.pngbin0 -> 26485 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/truck_1_white.pngbin6227 -> 14556 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/truck_1_white_vertical.pngbin0 -> 14485 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/truck_2_white.pngbin6811 -> 14225 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/truck_2_white_vertical.pngbin0 -> 13979 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/truck_3_white.pngbin8058 -> 17292 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/truck_3_white_vertical.pngbin0 -> 17352 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/truck_4_white.pngbin7011 -> 14881 bytes
-rwxr-xr-xapp/src/main/res/drawable-xxxhdpi/truck_4_white_vertical.pngbin0 -> 14601 bytes
-rwxr-xr-xapp/src/main/res/raw/level.txt25
120 files changed, 300 insertions, 38 deletions
diff --git a/app/src/main/java/com/camilstaps/rushhour/Board.java b/app/src/main/java/com/camilstaps/rushhour/Board.java
index eeb2580..bdfb6d4 100644
--- a/app/src/main/java/com/camilstaps/rushhour/Board.java
+++ b/app/src/main/java/com/camilstaps/rushhour/Board.java
@@ -19,38 +19,75 @@ public class Board {
private DriveListener driveListener;
+ /**
+ * Move a car if possible, and call the appropriate listeners
+ */
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))
+ if (newC.getY() > DIMENSION - 1 || newC.getX() > DIMENSION - 1 || newC.getX() < 0 || newC.getY() < 0) {
+ driveListener.onBlocked();
+ return;
+ }
+ for (Car iter : cars) {
+ if (iter.occupies(newC)) {
+ driveListener.onBlocked();
return;
+ }
+ }
car.move(offset);
driveListener.onDrive();
}
};
- public Board() {
- this(new HashSet<Car>());
- }
-
public Board(Set<Car> cars) {
for (Car car : cars) {
add(car);
}
}
+ public Board() {
+ this(new HashSet<Car>());
+ }
+
public void add(Car car) {
car.setMoveListener(moveListener);
cars.add(car);
}
+ /**
+ * Add all cars to an existing layout
+ * RelativeLayout is assumed, although this may work with other Layouts
+ * @param context
+ * @param layout
+ */
public void addToLayout(Context context, ViewGroup layout) {
for (Car car : cars) {
- layout.addView(car.getImageView(context, (layout.getWidth() - layout.getPaddingLeft() - layout.getPaddingRight()) / DIMENSION));
+ layout.addView(car.getImageView(
+ context,
+ (layout.getWidth() - layout.getPaddingLeft() - layout.getPaddingRight()) / DIMENSION
+ ));
+ }
+ }
+
+ /**
+ * True iff the red car can move out without problems
+ * @return
+ */
+ public boolean isSolved() {
+ for (int x = DIMENSION - 1; x >= 0; x++) {
+ for (Car car : cars) {
+ if (car.occupies(new Coordinate(x, 3))) {
+ if (car.canMoveHorizontally()) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
}
+ return false;
}
public void setDriveListener(DriveListener dl) {
diff --git a/app/src/main/java/com/camilstaps/rushhour/BoardLoader.java b/app/src/main/java/com/camilstaps/rushhour/BoardLoader.java
new file mode 100755
index 0000000..c92c96b
--- /dev/null
+++ b/app/src/main/java/com/camilstaps/rushhour/BoardLoader.java
@@ -0,0 +1,55 @@
+package com.camilstaps.rushhour;
+
+import android.graphics.Color;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Scanner;
+
+/**
+ * Created by Jos on 23-4-2015.
+ */
+public class BoardLoader {
+ public BoardLoader()
+ {}
+
+ public Board loadBoard(InputStream file)
+ {
+ /*
+ Level formaat:
+ 1 regel: Aantal auto's
+
+ voor iedere auto:
+ x1 y1 x2 y2 op een regel.
+ r g b op een regel.
+ */
+ Scanner scan = new Scanner(file);
+
+ Board board = new Board();
+
+ int numCars = scan.nextInt();
+ scan.nextLine();
+
+ for(int carN = 0; carN < numCars; carN++)
+ {
+ int x1 = scan.nextInt();
+ int y1 = scan.nextInt();
+ int x2 = scan.nextInt();
+ int y2 = scan.nextInt();
+ scan.nextLine();
+
+ int r = scan.nextInt();
+ int g = scan.nextInt();
+ int b = scan.nextInt();
+
+ Car c = new Car(new Coordinate(x1, y1), new Coordinate(x2, y2), Color.rgb(r, g, b));
+ board.add(c);
+
+ if(scan.hasNext()) scan.nextLine();
+ }
+
+ return board;
+ }
+}
diff --git a/app/src/main/java/com/camilstaps/rushhour/Car.java b/app/src/main/java/com/camilstaps/rushhour/Car.java
index 2dce203..faa5796 100644..100755
--- a/app/src/main/java/com/camilstaps/rushhour/Car.java
+++ b/app/src/main/java/com/camilstaps/rushhour/Car.java
@@ -11,6 +11,8 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TableLayout;
+import java.util.Random;
+
/**
* Created by camilstaps on 16-4-15.
*/
@@ -58,7 +60,40 @@ public class Car {
calculatedHeight = (int) ((endCoordinate.getY() - startCoordinate.getY() + 1) * (this.widthPerCell + MARGIN) - MARGIN);
iv = new ImageView(context);
- iv.setBackgroundColor(colour);
+
+ int[] images = null;
+ if(canMoveHorizontally()) {
+ if(getCarLength() == 2) {
+ images = new int[] {
+ R.drawable.car_1_white,
+ R.drawable.car_2_white,
+ R.drawable.car_3_white,
+ R.drawable.car_4_white};
+ }else{
+ images = new int[] {
+ R.drawable.truck_1_white,
+ R.drawable.truck_2_white,
+ R.drawable.truck_3_white,
+ R.drawable.truck_4_white};
+ }
+ }else{
+ if(getCarLength() == 2) {
+ images = new int[] {
+ R.drawable.car_1_white_vertical,
+ R.drawable.car_2_white_vertical,
+ R.drawable.car_3_white_vertical,
+ R.drawable.car_4_white_vertical};
+ }else{
+ images = new int[] {
+ R.drawable.truck_1_white_vertical,
+ R.drawable.truck_2_white_vertical,
+ R.drawable.truck_3_white_vertical,
+ R.drawable.truck_4_white_vertical};
+ }
+ }
+
+ iv.setImageResource(choose(images));
+ iv.setColorFilter(colour);
iv.setMinimumWidth(calculatedWidth);
iv.setMinimumHeight(calculatedHeight);
@@ -76,6 +111,30 @@ public class Car {
return iv;
}
+ private static int choose(int[] a)
+ {
+ Random r = new Random();
+ return a[r.nextInt(a.length)];
+ }
+
+ private float getCarDirection()
+ {
+ final double TWOPI = Math.PI * 2;
+ double radians = ((Math.atan2(startCoordinate.getY() - endCoordinate.getY(), endCoordinate.getX() - startCoordinate.getX()) + TWOPI) % TWOPI);
+ double degrees = radians / Math.PI * 180.0;
+
+ return (float)degrees;
+ }
+ private int getCarLength()
+ {
+ if(startCoordinate.getX() == endCoordinate.getX())
+ {
+ return endCoordinate.getY() - startCoordinate.getY() + 1;
+ }else{
+ return endCoordinate.getX() - startCoordinate.getX() + 1;
+ }
+ }
+
public boolean canMoveHorizontally() {
return startCoordinate.getY() == endCoordinate.getY();
}
diff --git a/app/src/main/java/com/camilstaps/rushhour/DriveListener.java b/app/src/main/java/com/camilstaps/rushhour/DriveListener.java
index f3a83e7..553c29f 100644
--- a/app/src/main/java/com/camilstaps/rushhour/DriveListener.java
+++ b/app/src/main/java/com/camilstaps/rushhour/DriveListener.java
@@ -4,5 +4,13 @@ package com.camilstaps.rushhour;
* Created by camilstaps on 22-4-15.
*/
public abstract class DriveListener {
+ /**
+ * Called when a car moves
+ */
public abstract void onDrive();
+
+ /**
+ * Called when a car attempted to move, but couldn't
+ */
+ public abstract void onBlocked();
}
diff --git a/app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java b/app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java
index 1c0b2ab..d7958c3 100644..100755
--- a/app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java
+++ b/app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java
@@ -1,17 +1,18 @@
package com.camilstaps.rushhour;
import android.app.Activity;
-import android.graphics.Color;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.ViewTreeObserver;
import android.widget.RelativeLayout;
+import java.io.InputStream;
+
public class GamePlayActivity extends Activity {
private SoundPool soundPool;
- private int soundBackgroundId, soundCarDriveId;
+ private int soundBackgroundId, soundCarDriveId, soundCantMoveId;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -19,31 +20,12 @@ public class GamePlayActivity extends Activity {
setContentView(R.layout.activity_fullscreen);
- final Board board = new Board();
- board.add(new Car(new Coordinate(0,0), new Coordinate(2,0), Color.YELLOW));
- board.add(new Car(new Coordinate(3,0), new Coordinate(3,1), Color.rgb(128,223,182)));
- board.add(new Car(new Coordinate(4,0), new Coordinate(4,2), Color.rgb(198, 134,221)));
- board.add(new Car(new Coordinate(0,2), new Coordinate(1,2), Color.RED));
- board.add(new Car(new Coordinate(5,2), new Coordinate(5,3), Color.rgb(255,165,0)));
- board.add(new Car(new Coordinate(0,3), new Coordinate(0,4), Color.rgb(158,231,246)));
- board.add(new Car(new Coordinate(1,3), new Coordinate(2,3), Color.rgb(245,158,246)));
- board.add(new Car(new Coordinate(3,3), new Coordinate(4,3), Color.rgb(150,126,196)));
- board.add(new Car(new Coordinate(1,4), new Coordinate(2,4), Color.GREEN));
- board.add(new Car(new Coordinate(3,4), new Coordinate(3,5), Color.BLACK));
- board.add(new Car(new Coordinate(5,4), new Coordinate(5,5), Color.rgb(219,202,161)));
- board.add(new Car(new Coordinate(0,5), new Coordinate(2,5), Color.rgb(25,195,167)));
+ setupSoundPool();
- soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
- soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
- @Override
- public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
- if (sampleId == soundBackgroundId) {
- soundPool.play(soundBackgroundId, 1, 1, 2, -1, 1);
- }
- }
- });
- soundCarDriveId = soundPool.load(this, R.raw.car_drive, 1);
- soundBackgroundId = soundPool.load(this, R.raw.tune, 2);
+ InputStream input = getResources().openRawResource(R.raw.level);
+
+ BoardLoader loader = new BoardLoader();
+ final Board board = loader.loadBoard(input);
final RelativeLayout boardLayout = (RelativeLayout) findViewById(R.id.board);
ViewTreeObserver vto = boardLayout.getViewTreeObserver();
@@ -55,11 +37,37 @@ public class GamePlayActivity extends Activity {
}
});
+ /*
+ * Sounds on move and attempt to move
+ */
board.setDriveListener(new DriveListener() {
@Override
public void onDrive() {
soundPool.play(soundCarDriveId, 1, 1, 1, 0, 1);
}
+
+ @Override
+ public void onBlocked() {
+ soundPool.play(soundCantMoveId, 1, 1, 1, 0, 1);
+ }
+ });
+ }
+
+ /**
+ * Load sounds; start background music
+ */
+ protected void setupSoundPool() {
+ soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
+ soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
+ @Override
+ public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
+ if (sampleId == soundBackgroundId) {
+ soundPool.play(soundBackgroundId, 1, 1, 2, -1, 1);
+ }
+ }
});
+ soundBackgroundId = soundPool.load(this, R.raw.tune, 2);
+ soundCarDriveId = soundPool.load(this, R.raw.car_drive, 1);
+ soundCantMoveId = soundPool.load(this, R.raw.cantmove, 1);
}
}
diff --git a/app/src/main/java/com/camilstaps/rushhour/HighScore.java b/app/src/main/java/com/camilstaps/rushhour/HighScore.java
index ce5e001..9168f02 100644
--- a/app/src/main/java/com/camilstaps/rushhour/HighScore.java
+++ b/app/src/main/java/com/camilstaps/rushhour/HighScore.java
@@ -1,5 +1,8 @@
package com.camilstaps.rushhour;
+import org.json.JSONException;
+import org.json.JSONObject;
+
/**
* Created by camilstaps on 23-4-15.
* Edited by Halzyn on 23-4-15.
@@ -14,6 +17,24 @@ public class HighScore implements Comparable<HighScore> {
this.name = name;
}
+ /**
+ * HighScore from json
+ * @see #toString()
+ * @param jsonString
+ */
+ public HighScore(String jsonString) {
+ int temp_score = -1;
+ String temp_name = null;
+ try {
+ JSONObject json = new JSONObject(jsonString);
+ temp_score = json.getInt("score");
+ temp_name = json.getString("name");
+ } catch (JSONException e) {
+ }
+ score = temp_score;
+ name = temp_name;
+ }
+
public int getScore() {
return score;
}
@@ -24,11 +45,11 @@ public class HighScore implements Comparable<HighScore> {
@Override
public int compareTo(HighScore other_score) {
- if (other_score.getScore() < score)
+ if (other_score.score < score)
{
return -1;
}
- else if (other_score.getScore() == score)
+ else if (other_score.score == score)
{
return 0;
}
@@ -38,4 +59,19 @@ public class HighScore implements Comparable<HighScore> {
}
}
+ /**
+ * JSON representation
+ * @see #HighScore(String)
+ * @return
+ */
+ public String toString() {
+ JSONObject json = new JSONObject();
+ try {
+ json.put("score", score);
+ json.put("name", name);
+ } catch (JSONException ex) {
+ }
+ return json.toString();
+ }
+
}
diff --git a/app/src/main/java/com/camilstaps/rushhour/HighScoreList.java b/app/src/main/java/com/camilstaps/rushhour/HighScoreList.java
index c0a7e67..4d8f829 100644
--- a/app/src/main/java/com/camilstaps/rushhour/HighScoreList.java
+++ b/app/src/main/java/com/camilstaps/rushhour/HighScoreList.java
@@ -3,27 +3,61 @@
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
-package rushhour;
+package com.camilstaps.rushhour;
+
+import android.content.Context;
+import android.preference.PreferenceManager;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
*
* @author Created by halzyn on 23-4-15.
*/
public class HighScoreList {
+
+ private final String PREFERENCES_KEY = "highscores";
private List<HighScore> list;
public HighScoreList (List<HighScore> some_list) {
this.list = some_list;
}
+
+ /**
+ * Get highscores from sharedpreferences
+ * @param context
+ */
+ public HighScoreList(Context context) {
+ Set<String> jsonList = PreferenceManager.getDefaultSharedPreferences(context).getStringSet(PREFERENCES_KEY, new HashSet<String>());
+ for (String json : jsonList) {
+ list.add(new HighScore(json));
+ }
+ }
+
+ public List<HighScore> getList() {
+ return list;
+ }
public void addToList(HighScore score)
{
list.add(score);
Collections.sort(list);
}
+
+ /**
+ * Save highscores to sharedpreferences
+ * @param context
+ */
+ public void save(Context context) {
+ Set<String> jsonList = new HashSet<>();
+ for (HighScore hs : list) {
+ jsonList.add(hs.toString());
+ }
+ PreferenceManager.getDefaultSharedPreferences(context).edit().putStringSet(PREFERENCES_KEY, jsonList).apply();
+ }
}
diff --git a/app/src/main/res/drawable-hdpi/car_1_white.png b/app/src/main/res/drawable-hdpi/car_1_white.png
index 3a6a39f..5ce9218 100755
--- a/app/src/main/res/drawable-hdpi/car_1_white.png
+++ b/app/src/main/res/drawable-hdpi/car_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/car_1_white_vertical.png b/app/src/main/res/drawable-hdpi/car_1_white_vertical.png
new file mode 100755
index 0000000..5c2fed1
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/car_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/car_2_white.png b/app/src/main/res/drawable-hdpi/car_2_white.png
index 3f0dc15..b92b54c 100755
--- a/app/src/main/res/drawable-hdpi/car_2_white.png
+++ b/app/src/main/res/drawable-hdpi/car_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/car_2_white_vertical.png b/app/src/main/res/drawable-hdpi/car_2_white_vertical.png
new file mode 100755
index 0000000..565778e
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/car_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/car_3_white.png b/app/src/main/res/drawable-hdpi/car_3_white.png
index 832218e..4843efe 100755
--- a/app/src/main/res/drawable-hdpi/car_3_white.png
+++ b/app/src/main/res/drawable-hdpi/car_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/car_3_white_vertical.png b/app/src/main/res/drawable-hdpi/car_3_white_vertical.png
new file mode 100755
index 0000000..1d41d4c
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/car_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/car_4_white.png b/app/src/main/res/drawable-hdpi/car_4_white.png
index 8217b38..8bfbab9 100755
--- a/app/src/main/res/drawable-hdpi/car_4_white.png
+++ b/app/src/main/res/drawable-hdpi/car_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/car_4_white_vertical.png b/app/src/main/res/drawable-hdpi/car_4_white_vertical.png
new file mode 100755
index 0000000..0c47b74
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/car_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/truck_1_white.png b/app/src/main/res/drawable-hdpi/truck_1_white.png
index f9d22e4..91594c1 100755
--- a/app/src/main/res/drawable-hdpi/truck_1_white.png
+++ b/app/src/main/res/drawable-hdpi/truck_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/truck_1_white_vertical.png b/app/src/main/res/drawable-hdpi/truck_1_white_vertical.png
new file mode 100755
index 0000000..fa5b24d
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/truck_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/truck_2_white.png b/app/src/main/res/drawable-hdpi/truck_2_white.png
index 0bef701..616f90b 100755
--- a/app/src/main/res/drawable-hdpi/truck_2_white.png
+++ b/app/src/main/res/drawable-hdpi/truck_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/truck_2_white_vertical.png b/app/src/main/res/drawable-hdpi/truck_2_white_vertical.png
new file mode 100755
index 0000000..cfaae76
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/truck_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/truck_3_white.png b/app/src/main/res/drawable-hdpi/truck_3_white.png
index fdcc2f5..eb1caff 100755
--- a/app/src/main/res/drawable-hdpi/truck_3_white.png
+++ b/app/src/main/res/drawable-hdpi/truck_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/truck_3_white_vertical.png b/app/src/main/res/drawable-hdpi/truck_3_white_vertical.png
new file mode 100755
index 0000000..356e75b
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/truck_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/truck_4_white.png b/app/src/main/res/drawable-hdpi/truck_4_white.png
index 24d657b..b700276 100755
--- a/app/src/main/res/drawable-hdpi/truck_4_white.png
+++ b/app/src/main/res/drawable-hdpi/truck_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/truck_4_white_vertical.png b/app/src/main/res/drawable-hdpi/truck_4_white_vertical.png
new file mode 100755
index 0000000..01b5428
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/truck_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/car_1_white.png b/app/src/main/res/drawable-ldpi/car_1_white.png
index 867e37a..3b3f5bc 100755
--- a/app/src/main/res/drawable-ldpi/car_1_white.png
+++ b/app/src/main/res/drawable-ldpi/car_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/car_1_white_vertical.png b/app/src/main/res/drawable-ldpi/car_1_white_vertical.png
new file mode 100755
index 0000000..d86f93a
--- /dev/null
+++ b/app/src/main/res/drawable-ldpi/car_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/car_2_white.png b/app/src/main/res/drawable-ldpi/car_2_white.png
index 9d7cc4e..fe2cd95 100755
--- a/app/src/main/res/drawable-ldpi/car_2_white.png
+++ b/app/src/main/res/drawable-ldpi/car_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/car_2_white_vertical.png b/app/src/main/res/drawable-ldpi/car_2_white_vertical.png
new file mode 100755
index 0000000..f3bc560
--- /dev/null
+++ b/app/src/main/res/drawable-ldpi/car_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/car_3_white.png b/app/src/main/res/drawable-ldpi/car_3_white.png
index 03721fd..e1a67b9 100755
--- a/app/src/main/res/drawable-ldpi/car_3_white.png
+++ b/app/src/main/res/drawable-ldpi/car_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/car_3_white_vertical.png b/app/src/main/res/drawable-ldpi/car_3_white_vertical.png
new file mode 100755
index 0000000..b1572a8
--- /dev/null
+++ b/app/src/main/res/drawable-ldpi/car_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/car_4_white.png b/app/src/main/res/drawable-ldpi/car_4_white.png
index 56e94ee..6fb775a 100755
--- a/app/src/main/res/drawable-ldpi/car_4_white.png
+++ b/app/src/main/res/drawable-ldpi/car_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/car_4_white_vertical.png b/app/src/main/res/drawable-ldpi/car_4_white_vertical.png
new file mode 100755
index 0000000..2bb1790
--- /dev/null
+++ b/app/src/main/res/drawable-ldpi/car_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/truck_1_white.png b/app/src/main/res/drawable-ldpi/truck_1_white.png
index 90b70e9..44ea608 100755
--- a/app/src/main/res/drawable-ldpi/truck_1_white.png
+++ b/app/src/main/res/drawable-ldpi/truck_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/truck_1_white_vertical.png b/app/src/main/res/drawable-ldpi/truck_1_white_vertical.png
new file mode 100755
index 0000000..ea17059
--- /dev/null
+++ b/app/src/main/res/drawable-ldpi/truck_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/truck_2_white.png b/app/src/main/res/drawable-ldpi/truck_2_white.png
index 6d946af..50e5a62 100755
--- a/app/src/main/res/drawable-ldpi/truck_2_white.png
+++ b/app/src/main/res/drawable-ldpi/truck_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/truck_2_white_vertical.png b/app/src/main/res/drawable-ldpi/truck_2_white_vertical.png
new file mode 100755
index 0000000..00af4df
--- /dev/null
+++ b/app/src/main/res/drawable-ldpi/truck_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/truck_3_white.png b/app/src/main/res/drawable-ldpi/truck_3_white.png
index 19b1819..062abaf 100755
--- a/app/src/main/res/drawable-ldpi/truck_3_white.png
+++ b/app/src/main/res/drawable-ldpi/truck_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/truck_3_white_vertical.png b/app/src/main/res/drawable-ldpi/truck_3_white_vertical.png
new file mode 100755
index 0000000..b51692f
--- /dev/null
+++ b/app/src/main/res/drawable-ldpi/truck_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/truck_4_white.png b/app/src/main/res/drawable-ldpi/truck_4_white.png
index 5afe1f5..471bdb0 100755
--- a/app/src/main/res/drawable-ldpi/truck_4_white.png
+++ b/app/src/main/res/drawable-ldpi/truck_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-ldpi/truck_4_white_vertical.png b/app/src/main/res/drawable-ldpi/truck_4_white_vertical.png
new file mode 100755
index 0000000..c9e4754
--- /dev/null
+++ b/app/src/main/res/drawable-ldpi/truck_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/car_1_white.png b/app/src/main/res/drawable-mdpi/car_1_white.png
index 3b3f5bc..80fe682 100755
--- a/app/src/main/res/drawable-mdpi/car_1_white.png
+++ b/app/src/main/res/drawable-mdpi/car_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/car_1_white_vertical.png b/app/src/main/res/drawable-mdpi/car_1_white_vertical.png
new file mode 100755
index 0000000..1647e16
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/car_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/car_2_white.png b/app/src/main/res/drawable-mdpi/car_2_white.png
index fe2cd95..0955671 100755
--- a/app/src/main/res/drawable-mdpi/car_2_white.png
+++ b/app/src/main/res/drawable-mdpi/car_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/car_2_white_vertical.png b/app/src/main/res/drawable-mdpi/car_2_white_vertical.png
new file mode 100755
index 0000000..4b4df5e
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/car_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/car_3_white.png b/app/src/main/res/drawable-mdpi/car_3_white.png
index e1a67b9..a25713e 100755
--- a/app/src/main/res/drawable-mdpi/car_3_white.png
+++ b/app/src/main/res/drawable-mdpi/car_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/car_3_white_vertical.png b/app/src/main/res/drawable-mdpi/car_3_white_vertical.png
new file mode 100755
index 0000000..d7e1994
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/car_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/car_4_white.png b/app/src/main/res/drawable-mdpi/car_4_white.png
index 6fb775a..f82c2d5 100755
--- a/app/src/main/res/drawable-mdpi/car_4_white.png
+++ b/app/src/main/res/drawable-mdpi/car_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/car_4_white_vertical.png b/app/src/main/res/drawable-mdpi/car_4_white_vertical.png
new file mode 100755
index 0000000..c67446c
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/car_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/truck_1_white.png b/app/src/main/res/drawable-mdpi/truck_1_white.png
index 44ea608..eda19c0 100755
--- a/app/src/main/res/drawable-mdpi/truck_1_white.png
+++ b/app/src/main/res/drawable-mdpi/truck_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/truck_1_white_vertical.png b/app/src/main/res/drawable-mdpi/truck_1_white_vertical.png
new file mode 100755
index 0000000..a7aba0c
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/truck_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/truck_2_white.png b/app/src/main/res/drawable-mdpi/truck_2_white.png
index 50e5a62..09e4d41 100755
--- a/app/src/main/res/drawable-mdpi/truck_2_white.png
+++ b/app/src/main/res/drawable-mdpi/truck_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/truck_2_white_vertical.png b/app/src/main/res/drawable-mdpi/truck_2_white_vertical.png
new file mode 100755
index 0000000..e078d11
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/truck_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/truck_3_white.png b/app/src/main/res/drawable-mdpi/truck_3_white.png
index 062abaf..4565d1f 100755
--- a/app/src/main/res/drawable-mdpi/truck_3_white.png
+++ b/app/src/main/res/drawable-mdpi/truck_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/truck_3_white_vertical.png b/app/src/main/res/drawable-mdpi/truck_3_white_vertical.png
new file mode 100755
index 0000000..a9fec19
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/truck_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/truck_4_white.png b/app/src/main/res/drawable-mdpi/truck_4_white.png
index 471bdb0..db415bd 100755
--- a/app/src/main/res/drawable-mdpi/truck_4_white.png
+++ b/app/src/main/res/drawable-mdpi/truck_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/truck_4_white_vertical.png b/app/src/main/res/drawable-mdpi/truck_4_white_vertical.png
new file mode 100755
index 0000000..54e755c
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/truck_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/car_1_white.png b/app/src/main/res/drawable-tvdpi/car_1_white.png
index 80fe682..b757a79 100755
--- a/app/src/main/res/drawable-tvdpi/car_1_white.png
+++ b/app/src/main/res/drawable-tvdpi/car_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/car_1_white_vertical.png b/app/src/main/res/drawable-tvdpi/car_1_white_vertical.png
new file mode 100755
index 0000000..abbb6e4
--- /dev/null
+++ b/app/src/main/res/drawable-tvdpi/car_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/car_2_white.png b/app/src/main/res/drawable-tvdpi/car_2_white.png
index 0955671..33039fb 100755
--- a/app/src/main/res/drawable-tvdpi/car_2_white.png
+++ b/app/src/main/res/drawable-tvdpi/car_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/car_2_white_vertical.png b/app/src/main/res/drawable-tvdpi/car_2_white_vertical.png
new file mode 100755
index 0000000..de7032e
--- /dev/null
+++ b/app/src/main/res/drawable-tvdpi/car_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/car_3_white.png b/app/src/main/res/drawable-tvdpi/car_3_white.png
index a25713e..5b37799 100755
--- a/app/src/main/res/drawable-tvdpi/car_3_white.png
+++ b/app/src/main/res/drawable-tvdpi/car_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/car_3_white_vertical.png b/app/src/main/res/drawable-tvdpi/car_3_white_vertical.png
new file mode 100755
index 0000000..60d2e29
--- /dev/null
+++ b/app/src/main/res/drawable-tvdpi/car_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/car_4_white.png b/app/src/main/res/drawable-tvdpi/car_4_white.png
index f82c2d5..b4e212e 100755
--- a/app/src/main/res/drawable-tvdpi/car_4_white.png
+++ b/app/src/main/res/drawable-tvdpi/car_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/car_4_white_vertical.png b/app/src/main/res/drawable-tvdpi/car_4_white_vertical.png
new file mode 100755
index 0000000..9bc65ae
--- /dev/null
+++ b/app/src/main/res/drawable-tvdpi/car_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/truck_1_white.png b/app/src/main/res/drawable-tvdpi/truck_1_white.png
index 3da11df..007a0a0 100755
--- a/app/src/main/res/drawable-tvdpi/truck_1_white.png
+++ b/app/src/main/res/drawable-tvdpi/truck_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/truck_1_white_vertical.png b/app/src/main/res/drawable-tvdpi/truck_1_white_vertical.png
new file mode 100755
index 0000000..f31141b
--- /dev/null
+++ b/app/src/main/res/drawable-tvdpi/truck_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/truck_2_white.png b/app/src/main/res/drawable-tvdpi/truck_2_white.png
index 68046ec..ff91eff 100755
--- a/app/src/main/res/drawable-tvdpi/truck_2_white.png
+++ b/app/src/main/res/drawable-tvdpi/truck_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/truck_2_white_vertical.png b/app/src/main/res/drawable-tvdpi/truck_2_white_vertical.png
new file mode 100755
index 0000000..506653d
--- /dev/null
+++ b/app/src/main/res/drawable-tvdpi/truck_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/truck_3_white.png b/app/src/main/res/drawable-tvdpi/truck_3_white.png
index c2ca378..ad8d00d 100755
--- a/app/src/main/res/drawable-tvdpi/truck_3_white.png
+++ b/app/src/main/res/drawable-tvdpi/truck_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/truck_3_white_vertical.png b/app/src/main/res/drawable-tvdpi/truck_3_white_vertical.png
new file mode 100755
index 0000000..842d859
--- /dev/null
+++ b/app/src/main/res/drawable-tvdpi/truck_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/truck_4_white.png b/app/src/main/res/drawable-tvdpi/truck_4_white.png
index 1c4d409..4323c4d 100755
--- a/app/src/main/res/drawable-tvdpi/truck_4_white.png
+++ b/app/src/main/res/drawable-tvdpi/truck_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-tvdpi/truck_4_white_vertical.png b/app/src/main/res/drawable-tvdpi/truck_4_white_vertical.png
new file mode 100755
index 0000000..0459d1c
--- /dev/null
+++ b/app/src/main/res/drawable-tvdpi/truck_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/car_1_white.png b/app/src/main/res/drawable-xhdpi/car_1_white.png
index 5ce9218..88c5810 100755
--- a/app/src/main/res/drawable-xhdpi/car_1_white.png
+++ b/app/src/main/res/drawable-xhdpi/car_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/car_1_white_vertical.png b/app/src/main/res/drawable-xhdpi/car_1_white_vertical.png
new file mode 100755
index 0000000..72003d0
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/car_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/car_2_white.png b/app/src/main/res/drawable-xhdpi/car_2_white.png
index b92b54c..91eab30 100755
--- a/app/src/main/res/drawable-xhdpi/car_2_white.png
+++ b/app/src/main/res/drawable-xhdpi/car_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/car_2_white_vertical.png b/app/src/main/res/drawable-xhdpi/car_2_white_vertical.png
new file mode 100755
index 0000000..f79e57f
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/car_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/car_3_white.png b/app/src/main/res/drawable-xhdpi/car_3_white.png
index 4843efe..ac99c4b 100755
--- a/app/src/main/res/drawable-xhdpi/car_3_white.png
+++ b/app/src/main/res/drawable-xhdpi/car_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/car_3_white_vertical.png b/app/src/main/res/drawable-xhdpi/car_3_white_vertical.png
new file mode 100755
index 0000000..ac2152d
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/car_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/car_4_white.png b/app/src/main/res/drawable-xhdpi/car_4_white.png
index 8bfbab9..febac34 100755
--- a/app/src/main/res/drawable-xhdpi/car_4_white.png
+++ b/app/src/main/res/drawable-xhdpi/car_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/car_4_white_vertical.png b/app/src/main/res/drawable-xhdpi/car_4_white_vertical.png
new file mode 100755
index 0000000..421c235
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/car_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/truck_1_white.png b/app/src/main/res/drawable-xhdpi/truck_1_white.png
index 91594c1..b6150a5 100755
--- a/app/src/main/res/drawable-xhdpi/truck_1_white.png
+++ b/app/src/main/res/drawable-xhdpi/truck_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/truck_1_white_vertical.png b/app/src/main/res/drawable-xhdpi/truck_1_white_vertical.png
new file mode 100755
index 0000000..69a64ae
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/truck_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/truck_2_white.png b/app/src/main/res/drawable-xhdpi/truck_2_white.png
index 616f90b..21ee6a8 100755
--- a/app/src/main/res/drawable-xhdpi/truck_2_white.png
+++ b/app/src/main/res/drawable-xhdpi/truck_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/truck_2_white_vertical.png b/app/src/main/res/drawable-xhdpi/truck_2_white_vertical.png
new file mode 100755
index 0000000..ff0262b
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/truck_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/truck_3_white.png b/app/src/main/res/drawable-xhdpi/truck_3_white.png
index eb1caff..1fc58b7 100755
--- a/app/src/main/res/drawable-xhdpi/truck_3_white.png
+++ b/app/src/main/res/drawable-xhdpi/truck_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/truck_3_white_vertical.png b/app/src/main/res/drawable-xhdpi/truck_3_white_vertical.png
new file mode 100755
index 0000000..d55bc9e
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/truck_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/truck_4_white.png b/app/src/main/res/drawable-xhdpi/truck_4_white.png
index b700276..fc17341 100755
--- a/app/src/main/res/drawable-xhdpi/truck_4_white.png
+++ b/app/src/main/res/drawable-xhdpi/truck_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/truck_4_white_vertical.png b/app/src/main/res/drawable-xhdpi/truck_4_white_vertical.png
new file mode 100755
index 0000000..a16319e
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/truck_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/car_1_white.png b/app/src/main/res/drawable-xxhdpi/car_1_white.png
index 3b71fd4..4e97ea9 100755
--- a/app/src/main/res/drawable-xxhdpi/car_1_white.png
+++ b/app/src/main/res/drawable-xxhdpi/car_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/car_1_white_vertical.png b/app/src/main/res/drawable-xxhdpi/car_1_white_vertical.png
new file mode 100755
index 0000000..a3c7280
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/car_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/car_2_white.png b/app/src/main/res/drawable-xxhdpi/car_2_white.png
index e85c464..44deb2e 100755
--- a/app/src/main/res/drawable-xxhdpi/car_2_white.png
+++ b/app/src/main/res/drawable-xxhdpi/car_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/car_2_white_vertical.png b/app/src/main/res/drawable-xxhdpi/car_2_white_vertical.png
new file mode 100755
index 0000000..e35bfa4
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/car_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/car_3_white.png b/app/src/main/res/drawable-xxhdpi/car_3_white.png
index 21eb4d4..c1bd11f 100755
--- a/app/src/main/res/drawable-xxhdpi/car_3_white.png
+++ b/app/src/main/res/drawable-xxhdpi/car_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/car_3_white_vertical.png b/app/src/main/res/drawable-xxhdpi/car_3_white_vertical.png
new file mode 100755
index 0000000..bd92db9
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/car_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/car_4_white.png b/app/src/main/res/drawable-xxhdpi/car_4_white.png
index daf5f73..489eec2 100755
--- a/app/src/main/res/drawable-xxhdpi/car_4_white.png
+++ b/app/src/main/res/drawable-xxhdpi/car_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/car_4_white_vertical.png b/app/src/main/res/drawable-xxhdpi/car_4_white_vertical.png
new file mode 100755
index 0000000..62ea361
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/car_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/truck_1_white.png b/app/src/main/res/drawable-xxhdpi/truck_1_white.png
index a72d6df..e33162f 100755
--- a/app/src/main/res/drawable-xxhdpi/truck_1_white.png
+++ b/app/src/main/res/drawable-xxhdpi/truck_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/truck_1_white_vertical.png b/app/src/main/res/drawable-xxhdpi/truck_1_white_vertical.png
new file mode 100755
index 0000000..187e3e2
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/truck_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/truck_2_white.png b/app/src/main/res/drawable-xxhdpi/truck_2_white.png
index a27f02a..19310b7 100755
--- a/app/src/main/res/drawable-xxhdpi/truck_2_white.png
+++ b/app/src/main/res/drawable-xxhdpi/truck_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/truck_2_white_vertical.png b/app/src/main/res/drawable-xxhdpi/truck_2_white_vertical.png
new file mode 100755
index 0000000..3ff992d
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/truck_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/truck_3_white.png b/app/src/main/res/drawable-xxhdpi/truck_3_white.png
index e24e9b1..f14e92a 100755
--- a/app/src/main/res/drawable-xxhdpi/truck_3_white.png
+++ b/app/src/main/res/drawable-xxhdpi/truck_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/truck_3_white_vertical.png b/app/src/main/res/drawable-xxhdpi/truck_3_white_vertical.png
new file mode 100755
index 0000000..4dd994f
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/truck_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/truck_4_white.png b/app/src/main/res/drawable-xxhdpi/truck_4_white.png
index a382310..3f699c8 100755
--- a/app/src/main/res/drawable-xxhdpi/truck_4_white.png
+++ b/app/src/main/res/drawable-xxhdpi/truck_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/truck_4_white_vertical.png b/app/src/main/res/drawable-xxhdpi/truck_4_white_vertical.png
new file mode 100755
index 0000000..0399dc6
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/truck_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/car_1_white.png b/app/src/main/res/drawable-xxxhdpi/car_1_white.png
index 4e97ea9..8762c67 100755
--- a/app/src/main/res/drawable-xxxhdpi/car_1_white.png
+++ b/app/src/main/res/drawable-xxxhdpi/car_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/car_1_white_vertical.png b/app/src/main/res/drawable-xxxhdpi/car_1_white_vertical.png
new file mode 100755
index 0000000..dde976f
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/car_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/car_2_white.png b/app/src/main/res/drawable-xxxhdpi/car_2_white.png
index 44deb2e..e727428 100755
--- a/app/src/main/res/drawable-xxxhdpi/car_2_white.png
+++ b/app/src/main/res/drawable-xxxhdpi/car_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/car_2_white_vertical.png b/app/src/main/res/drawable-xxxhdpi/car_2_white_vertical.png
new file mode 100755
index 0000000..780e41c
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/car_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/car_3_white.png b/app/src/main/res/drawable-xxxhdpi/car_3_white.png
index c1bd11f..1775a8a 100755
--- a/app/src/main/res/drawable-xxxhdpi/car_3_white.png
+++ b/app/src/main/res/drawable-xxxhdpi/car_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/car_3_white_vertical.png b/app/src/main/res/drawable-xxxhdpi/car_3_white_vertical.png
new file mode 100755
index 0000000..adfa820
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/car_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/car_4_white.png b/app/src/main/res/drawable-xxxhdpi/car_4_white.png
index 489eec2..fd597f0 100755
--- a/app/src/main/res/drawable-xxxhdpi/car_4_white.png
+++ b/app/src/main/res/drawable-xxxhdpi/car_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/car_4_white_vertical.png b/app/src/main/res/drawable-xxxhdpi/car_4_white_vertical.png
new file mode 100755
index 0000000..8d30cce
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/car_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/truck_1_white.png b/app/src/main/res/drawable-xxxhdpi/truck_1_white.png
index e33162f..1b8dc46 100755
--- a/app/src/main/res/drawable-xxxhdpi/truck_1_white.png
+++ b/app/src/main/res/drawable-xxxhdpi/truck_1_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/truck_1_white_vertical.png b/app/src/main/res/drawable-xxxhdpi/truck_1_white_vertical.png
new file mode 100755
index 0000000..1a698c8
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/truck_1_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/truck_2_white.png b/app/src/main/res/drawable-xxxhdpi/truck_2_white.png
index 19310b7..c4e22c0 100755
--- a/app/src/main/res/drawable-xxxhdpi/truck_2_white.png
+++ b/app/src/main/res/drawable-xxxhdpi/truck_2_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/truck_2_white_vertical.png b/app/src/main/res/drawable-xxxhdpi/truck_2_white_vertical.png
new file mode 100755
index 0000000..dd587e2
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/truck_2_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/truck_3_white.png b/app/src/main/res/drawable-xxxhdpi/truck_3_white.png
index f14e92a..64ae82b 100755
--- a/app/src/main/res/drawable-xxxhdpi/truck_3_white.png
+++ b/app/src/main/res/drawable-xxxhdpi/truck_3_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/truck_3_white_vertical.png b/app/src/main/res/drawable-xxxhdpi/truck_3_white_vertical.png
new file mode 100755
index 0000000..c37d317
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/truck_3_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/truck_4_white.png b/app/src/main/res/drawable-xxxhdpi/truck_4_white.png
index 3f699c8..80e2449 100755
--- a/app/src/main/res/drawable-xxxhdpi/truck_4_white.png
+++ b/app/src/main/res/drawable-xxxhdpi/truck_4_white.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/truck_4_white_vertical.png b/app/src/main/res/drawable-xxxhdpi/truck_4_white_vertical.png
new file mode 100755
index 0000000..0bc3adf
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/truck_4_white_vertical.png
Binary files differ
diff --git a/app/src/main/res/raw/level.txt b/app/src/main/res/raw/level.txt
new file mode 100755
index 0000000..dd6241b
--- /dev/null
+++ b/app/src/main/res/raw/level.txt
@@ -0,0 +1,25 @@
+12
+0 0 2 0
+255 255 0
+3 0 3 1
+128 223 182
+4 0 4 2
+198 134 221
+0 2 1 2
+196 0 0
+5 2 5 3
+255 165 0
+0 3 0 4
+158 231 246
+1 3 2 3
+245 158 246
+3 3 4 3
+150 126 196
+1 4 2 4
+0 196 0
+3 4 3 5
+0 0 0
+5 4 5 5
+219 202 161
+0 5 2 5
+25 195 167 \ No newline at end of file