www.pudn.com > 红心大战 游戏源码.rar > Score.java


 
package com.skybright.pig; 
 
import java.util.Enumeration; 
import java.util.Hashtable; 
 
 
public class Score 
{ 
 
    public Score() 
    { 
        scores = new Hashtable(); 
    } 
 
    public void set(Duel d) 
    { 
       boolean b = isWinall(d); 
        int s = 0; 
        String name = ""; 
        if (b) 
        { 
          //just print play name : current score 
       /*     System.out.println(d.getPlayer1().getName() 
                                .concat(Integer.toString( 
                                                d.getPlayer1().getScore()))); 
 
            System.out.println(d.getPlayer2().getName() 
                                .concat(Integer.toString( 
                                                d.getPlayer2().getScore()))); 
            System.out.println(d.getPlayer3().getName() 
                                .concat(Integer.toString( 
                                                d.getPlayer3().getScore()))); 
            System.out.println(d.getPlayer4().getName() 
                                .concat(Integer.toString( 
                                                d.getPlayer4().getScore()))); 
        */ 
 
            s = d.getPlayer1().getScore(); 
            name = d.getPlayer1().getName(); 
 
            if (s == 26) 
            { //play1 win 
                insert(name, 0); 
                insert(d.getPlayer2().getName(), 26); 
                insert(d.getPlayer3().getName(), 26); 
                insert(d.getPlayer4().getName(), 26); 
 
                return; 
            } 
 
            s = d.getPlayer2().getScore(); 
            name = d.getPlayer2().getName(); 
 
            if (s == 26) //play2 win all 
            { 
                insert(name, 0); 
                insert(d.getPlayer1().getName(), 26); 
                insert(d.getPlayer3().getName(), 26); 
                insert(d.getPlayer4().getName(), 26); 
 
                return; 
            } 
 
            s = d.getPlayer3().getScore(); 
            name = d.getPlayer3().getName(); 
 
            if (s == 26) //play3 win all 
            { 
                insert(name, 0); 
                insert(d.getPlayer1().getName(), 26); 
                insert(d.getPlayer2().getName(), 26); 
                insert(d.getPlayer4().getName(), 26); 
 
                return; 
            } 
 
            s = d.getPlayer4().getScore(); 
            name = d.getPlayer4().getName(); 
 
            if (s == 26) //play2 win all 
            { 
                insert(name, 0); 
                insert(d.getPlayer1().getName(), 26); 
                insert(d.getPlayer2().getName(), 26); 
                insert(d.getPlayer3().getName(), 26); 
 
                return; 
            } 
        }else 
        { 
            //play1 
            name = d.getPlayer1().getName(); 
            s = d.getPlayer1().getScore(); 
            insert(name, s); 
 
 
            //play2 
            name = d.getPlayer2().getName(); 
            s = d.getPlayer2().getScore(); 
            insert(name, s); 
 
 
            //play3 
            name = d.getPlayer3().getName(); 
            s = d.getPlayer3().getScore(); 
            insert(name, s); 
 
 
            //play4 
            name = d.getPlayer4().getName(); 
            s = d.getPlayer4().getScore(); 
            insert(name, s); 
        } 
    } 
 
 
 
    public String whoOver() 
    { 
        for(Enumeration en = scores.keys(); en.hasMoreElements();) 
        { 
            String name = (String)en.nextElement(); 
            int t = 0; 
            try 
            { 
                t = ((Integer)scores.get(name)).intValue(); 
            } 
            catch(Exception exception) { } 
           //just test change t>100 to t>20 
            if(t >= 100) 
                return name; 
        } 
 
        return null; 
    } 
 
    public int get(String name) 
    { 
        int t = 0; 
        try 
        { 
            t = ((Integer)scores.get(name)).intValue(); 
        } 
        catch(Exception exception) { } 
        return t; 
    } 
 
    public void clear() 
    { 
        scores.clear(); 
    } 
 
    private void insert(String name, int s) 
    { 
        int t = 0; 
        try 
        { 
            t = ((Integer)scores.get(name)).intValue(); 
        } 
        catch(Exception exception) { } 
        scores.put(name, new Integer(t + s)); 
    } 
 
    private boolean isWinall(Duel d) 
    { 
        String name = d.getPlayer1().getName(); 
        int s = d.getPlayer1().getScore(); 
        if(s == 26) 
            return true; 
        name = d.getPlayer2().getName(); 
        s = d.getPlayer2().getScore(); 
        if(s == 26) 
            return true; 
        name = d.getPlayer3().getName(); 
        s = d.getPlayer3().getScore(); 
        if(s == 26) 
            return true; 
        name = d.getPlayer4().getName(); 
        s = d.getPlayer4().getScore(); 
        return s == 26; 
    } 
 
    private Hashtable scores; 
}