Android Open Source - DroidChineseCheckers Fillable Board Cell






From Project

Back to project page DroidChineseCheckers.

License

The source code is released under:

Apache License

If you think the Android project DroidChineseCheckers 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 Federico Paolinelli/*w  w w .j  a v  a2 s  . co  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.whiterabbit.checkers.board;


import com.whiterabbit.checkers.Constants;
import com.whiterabbit.checkers.exceptions.CantFillException;
import com.whiterabbit.checkers.ui.CheckersSpriteFactory;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.sprite.Sprite;


public class FillableBoardCell extends BoardCell {
    private Boolean mFilled;
    private Sprite mSprite;
    

    public FillableBoardCell(int x, int y, Boolean filled) {
        super(x, y);
        mFilled = filled;
    }
    
    @Override
    public Boolean fillableBall(){
        return true;
    }

    @Override
    public void getBall() throws CantFillException {
        if(mFilled){
            mFilled = false;
            return;
        }
                
        throw new CantFillException("No ball here");
    }

    @Override
    public void putBall() throws CantFillException {
        if(mFilled){
            throw new CantFillException("Ball already here");
        }
        mFilled = true;
    }
    
    private float getScale(Sprite s, float newSize){
        float actualSize = s.getWidth();
        return newSize / actualSize;
    }

    @Override
    public void buildSprites(CheckersSpriteFactory f, Scene s, AndEngineBoard b, float size) {
        
        Sprite hole = f.getHoleSprite(x, y, b, size);
        s.getChildByIndex(Constants.HOLE_LAYER).attachChild(hole);
        float scale = getScale(hole, size);
        //hole.setScale(scale);
        
        if(mFilled){
            mSprite = f.getBallSprite(x, y, b, size);
            s.getChildByIndex(Constants.BALL_LAYER).attachChild(mSprite);
            //mSprite.setScale(scale);
            s.registerTouchArea(mSprite);
        }
    }

    @Override
    public Sprite getBallSprite() {
        return mSprite;
    }

    @Override
    public void eraseBallSprite() {
        mSprite = null;
    }

    @Override
    public void setBallSprite(Sprite b) {
        mSprite = b;        
    }
    
    @Override
    public Boolean hasBall(){
        return mFilled;
    }

    @Override
    public char getEncoding() {
        if(mFilled)
            return '1';
        else
            return 'X';
    }
    

    
}




Java Source Code List

com.whiterabbit.checkers.Constants.java
com.whiterabbit.checkers.PegDroidApplication.java
com.whiterabbit.checkers.PreferencesStore.java
com.whiterabbit.checkers.board.AndEngineBoard.java
com.whiterabbit.checkers.board.BoardCell.java
com.whiterabbit.checkers.board.FillableBoardCell.java
com.whiterabbit.checkers.board.FilledBoardCell.java
com.whiterabbit.checkers.board.LastMove.java
com.whiterabbit.checkers.boards.Board32Diamond.java
com.whiterabbit.checkers.boards.BoardAsymmetrical.java
com.whiterabbit.checkers.boards.BoardClassicEng.java
com.whiterabbit.checkers.boards.BoardClassicExtended.java
com.whiterabbit.checkers.boards.BoardClassic.java
com.whiterabbit.checkers.boards.BoardKind.java
com.whiterabbit.checkers.boards.BoardS.java
com.whiterabbit.checkers.boards.BoardStar.java
com.whiterabbit.checkers.boards.CheckersDbHelper.java
com.whiterabbit.checkers.boards.CheckersStorage.java
com.whiterabbit.checkers.boards.HoleMushroom.java
com.whiterabbit.checkers.boards.NineByNineBoard.java
com.whiterabbit.checkers.boards.SimpleCross1.java
com.whiterabbit.checkers.boards.SimpleCross2.java
com.whiterabbit.checkers.boards.SimpleCross3.java
com.whiterabbit.checkers.boards.SixBySixBoard.java
com.whiterabbit.checkers.boards.WieglebBoard.java
com.whiterabbit.checkers.exceptions.CantFillException.java
com.whiterabbit.checkers.ui.BackArrowSprite.java
com.whiterabbit.checkers.ui.BallSprite.java
com.whiterabbit.checkers.ui.BoardListElem.java
com.whiterabbit.checkers.ui.BoardSprite.java
com.whiterabbit.checkers.ui.BoardsListActivity.java
com.whiterabbit.checkers.ui.CheckersGameActivity.java
com.whiterabbit.checkers.ui.CheckersMainMenu.java
com.whiterabbit.checkers.ui.CheckersSpriteFactory.java
com.whiterabbit.checkers.ui.CheckersStallActivity.java
com.whiterabbit.checkers.ui.PegDroidPrefs.java
com.whiterabbit.checkers.util.Utils.java