1 package de.jos.game.objects; 2 3 public class ScoreCalculator { 4 5 private static final int DEFAULT_SCORE_MULTIPLICATION_FACTOR = 1; 6 7 public final int INIT_SCORE_BLUE = 50; 8 public final int INIT_SCORE_RED = 75; 9 public final int INIT_SCORE_YELLOW = 100; 10 public final int INIT_SCORE_PINK = 125; 11 12 public final int[] INIT_SCORE_ARRAY = { INIT_SCORE_BLUE, INIT_SCORE_RED, INIT_SCORE_YELLOW, INIT_SCORE_PINK }; 13 14 public int nextScoreMultiplicationFactor = DEFAULT_SCORE_MULTIPLICATION_FACTOR; 15 16 public int getScore(Integer color, int numberBullets) { 17 int score = INIT_SCORE_ARRAY[color.intValue()]; 18 19 switch(numberBullets) { 20 case 3: 21 break; 22 case 4: 23 score *= 2; 24 break; 25 case 5: 26 score *= 4; 27 break; 28 case 6: 29 score = getScore(color, 5) + getScore(color, 4) + getScore(color, 3); 30 break; 31 case 7: 32 score = getScore(color, 6) + getScore(color, 5); 33 break; 34 case 8: 35 score = getScore(color, 7) + getScore(color, 5) + getScore(color, 3); 36 break; 37 case 9: 38 score = getScore(color, 8) + getScore(color, 5) + getScore(color, 4); 39 break; 40 } 41 42 score *= nextScoreMultiplicationFactor; 43 setNextScoreMultiplicationFactor(DEFAULT_SCORE_MULTIPLICATION_FACTOR); 44 return score; 45 } 46 47 public int getNextScoreMultiplicationFactor() { 48 return nextScoreMultiplicationFactor; 49 } 50 51 public void setNextScoreMultiplicationFactor(int nextScoreMultiplicationFactor) { 52 this.nextScoreMultiplicationFactor = nextScoreMultiplicationFactor; 53 } 54 55 }