Sufferball


  • Considered Harmful

    Briefly explained,

    
    public abstract class Scoring implements BallScores, PlayerScores, GoalieScores {
        /**
         * Any gerbils not in a gerbil cage, count as free. 
         * Gerbil cages will eject hamsters on detection.
         * Gerbil cages will eject gerbils at random.
         */
        protected volatile int freeGerbils;
        /**
         * Hamster cages work like gerbil cages, but for hamsters.
         */
        protected volatile int freeHamsters;
        protected volatile int playerScore;
    
        /**
         * Implementations must 
         * count the number of gerbil cages without a gerbil in them
         * and may
         * signal ejection of hamsters from gerbil cages.
         */
        @Override
        public abstract int countFreeGerbils();
        /**
         * Hamster freedom works like gerbil freedom, but for hamsters.
         */
        @Override
        public abstract int countFreeHamsters();
    
        /**
         * The goalie bot can't 
         * go faster than this.
         */
        @Override 
        public int getMaxKph() {
            return 10 * freeGerbils;
        }
        /**
         * The goalie bot can't 
         * turn more sharply than this.
         */
        @Override 
        public int getMaxTurnDegrees() {
            return 10 * freeHamsters;
        }
        /**
         * The razor-sharp toughened steel blade on the front of the goalie bot
         * can't turn faster than this.
         */
        @Override 
        public int getBladeRpm() {
            return getMaxKph() * getMaxTurnDegrees();
        }
    
        /**
         * You are in an Atlasphere, the inside surface has small-animal cages on it.
         * Score is re-evaluated for every meter you move.
         */
        public void incrementScore() {
            playerScore += freeGerbils * freeHamsters;
        }
    }
    

Log in to reply