Subversion Repositories AndroidProjects

Rev

Rev 435 | Rev 585 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.PonPonChun.game;

import com.gebauz.PonPonChun.game.entities.Block;
import com.gebauz.PonPonChun.game.entities.PlayField;

public abstract class GameModeLogic extends GameLogicObject
{
        // Constants========================================================================================

        // Embedded Types===================================================================================

        // Members==========================================================================================
       
        private GameLogic.GameMode mGameMode;
       

        // Methods==========================================================================================
        public GameModeLogic(GameLogic gameLogic, GameLogic.GameMode mode)
        {
                super(gameLogic);
                mGameMode = mode;
        }
       
        public abstract void init(String param);
        public abstract void exit();
        public abstract void update(float deltaTime);
        public abstract void render();
       
        /** Generate a row that does not have triplets. */
        public int[] generateRow()
        {
                int[] lastTypes = new int[] { -1, -1 };
                int[] row = new int[PlayField.NUM_CELLS_X];
               
                for (int dx = 0; dx < PlayField.NUM_CELLS_X; dx++)
                {
                        // prevent triplets along the row
                        int type = getGameLogic().getGame().getRandomInt(0, Block.NUM_TYPES-1);
                        while ((type == lastTypes[0]) && (type == lastTypes[1]))
                        {
                                type = getGameLogic().getGame().getRandomInt(0, Block.NUM_TYPES-1);
                        }
                       
                        lastTypes[1] = lastTypes[0];
                        lastTypes[0] = type;
                       
                        row[dx] = type;
                }
               
                return row;
        }
       
        // Getters/Setters==================================================================================
       
        public final GameLogic.GameMode getGameMode()
        {
                return mGameMode;
        }
}