001    package jagafa.scores;
002    
003    import jagafa.rule.ObenRules;
004    import jagafa.rule.RuleSet;
005    import jagafa.rule.TrumpfRules;
006    import jagafa.rule.UntenRules;
007    
008    import java.util.Iterator;
009    import java.util.Map;
010    import java.util.TreeMap;
011    /**
012     * @deprecated
013     */
014    public class CoiffeurScoreTable extends AbstractScoreTable implements ScoreTable {
015    
016            private int winningScore_;
017    
018            private Map<RuleSet, Integer> ruleList_;
019    
020            
021            public CoiffeurScoreTable(int winningScore) {
022                    super();
023                    this.winningScore_ = winningScore;
024                     ruleList_ = new TreeMap<RuleSet, Integer>();
025                    
026                    ruleList_.put(new TrumpfRules(0), 1);
027                    ruleList_.put(new TrumpfRules(1), 2);
028                    ruleList_.put(new TrumpfRules(2), 3);
029                    ruleList_.put(new TrumpfRules(3), 4);
030                    ruleList_.put(new ObenRules(), 5);
031                    ruleList_.put(new UntenRules(), 6);
032                    
033                    Iterator<RuleSet> ruleIter = ruleList_.keySet().iterator();
034    
035                    while (ruleIter.hasNext()) {
036                            this.activateRule(ruleIter.next());
037                    }
038            }
039    
040            
041            
042            @Override
043            public void addScores(int[] scores, RuleSet rules) {
044                    int mult = this.getMultiplier(rules);
045                    
046                    for (int i = 0;i<scores.length;i++) {
047                            scores[i] *= mult;
048                    }
049                    super.addScores(scores, rules);
050                    
051            }
052    
053    
054    
055            public boolean isGameOver() {
056                    int scores[] = this.getScores();
057    
058                    int scoreTeam1 = scores[0] + scores[2];
059                    int scoreTeam2 = scores[1] + scores[3];
060    
061                    if (scoreTeam1 >= this.winningScore_) {
062                            return true;
063                    }
064                    if (scoreTeam2 >= this.winningScore_) {
065                            return true;
066                    }
067                    return false;
068            }
069    
070            public int getMultiplier(RuleSet rule) {
071                    return (Integer)this.ruleList_.get(rule);
072            }
073    
074    
075    
076            public boolean changeChoosingPlayer() {
077                    return false;
078                    
079            }
080    
081    
082    
083            public int getChoosingPlayer() {
084                    // TODO Auto-generated method stub
085                    return -1;
086            }
087    
088    
089    
090            
091    
092    
093            public int getWinningScore() {
094                    return 0;
095            }
096    
097            
098            
099            
100    
101    }