Android Open Source - Droid-Maze Maze Cell






From Project

Back to project page Droid-Maze.

License

The source code is released under:

Apache License

If you think the Android project Droid-Maze listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * Copyright 2011 Massimo Gaddini//from  w  ww  . j  a v  a2  s  . c  o  m
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 *  
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  
 */
package com.sgxmobileapps.droidmaze.maze.generator;

/**
 * @author Massimo Gaddini
 */
public abstract class MazeCell {

    public static final byte NORTH_WALL = 0x01;
    public static final byte EAST_WALL  = 0x02;
    public static final byte SOUTH_WALL = 0x04;
    public static final byte WEST_WALL  = 0x08;

    private byte             mCarvedWalls;
    private int              mX, mY;

    public MazeCell(int x, int y) {
        mX = x;
        mY = y;
        init();
    }
    
    public void init() {
        mCarvedWalls = 0;
    }

    public int getX() {
        return mX;
    }

    public int getY() {
        return mY;
    }

    public byte getOppositeWall(byte wall) {
        if (wall >= 0x04) {
            return (byte) ( wall / 4 );
        }

        return (byte) ( wall * 4 );
    }

    public void openTo(MazeCell to) {

        if (mX < to.mX) {
            mCarvedWalls |= SOUTH_WALL;
        }

        if (mX > to.mX) {
            mCarvedWalls |= NORTH_WALL;
        }

        if (mY < to.mY) {
            mCarvedWalls |= EAST_WALL;
        }

        if (mY > to.mY) {
            mCarvedWalls |= WEST_WALL;
        }
    }

    public boolean isClosed() {
        return ( mCarvedWalls == 0 );
    }

    public boolean isEastWallClosed() {
        return ( mCarvedWalls & EAST_WALL ) == 0;
    }

    public boolean isSouthWallClosed() {
        return ( mCarvedWalls & SOUTH_WALL ) == 0;
    }
}




Java Source Code List

com.sgxmobileapps.droidmaze.datastore.DroidMazeDbAdapter.java
com.sgxmobileapps.droidmaze.datastore.DroidMazeDbMetadata.java
com.sgxmobileapps.droidmaze.game.GameLevelManager.java
com.sgxmobileapps.droidmaze.game.model.GamePlayerProfile.java
com.sgxmobileapps.droidmaze.maze.generator.BacktrackingMazeGenerator.java
com.sgxmobileapps.droidmaze.maze.generator.IterativeBacktrackingMazeGenerator.java
com.sgxmobileapps.droidmaze.maze.generator.KruskalMazeGenerator.java
com.sgxmobileapps.droidmaze.maze.generator.MazeCell.java
com.sgxmobileapps.droidmaze.maze.generator.MazeGenerator.java
com.sgxmobileapps.droidmaze.maze.generator.PrimMazeGenerator.java
com.sgxmobileapps.droidmaze.ui.MainMenuActivity.java
com.sgxmobileapps.droidmaze.ui.MainSplashActivity.java
com.sgxmobileapps.droidmaze.ui.MazeActivity.java
com.sgxmobileapps.droidmaze.ui.animator.MultiSlideMenuAnimator.java
com.sgxmobileapps.droidmaze.ui.shape.ComplexShape.java
com.sgxmobileapps.droidmaze.ui.shape.LevelBarShape.java
com.sgxmobileapps.droidmaze.ui.shape.LoadingShape.java
com.sgxmobileapps.droidmaze.ui.shape.MazeShape.java
com.sgxmobileapps.droidmaze.util.ActivityUtils.java