亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? partida.java

?? J2ME 技術(shù)開發(fā)的撲克牌類游戲 是開源代碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Partida.java
 *
 * Created on 2 de junio de 2005, 15:43
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package telefono;

import java.io.IOException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

/**
 * representa los datos de una parida.
 * almacena los nombres de os jugadores y los puntos totales de cada jugador, en cada ronda.
 * los lpuntos parciales (los obtenidos en cada una de las rondas) son calculados.
 * @author Enrique Vicent Ramis
 * @version 1.0
 */
public class Partida
{
    public interface Reglas
    {
        public int getCartas(int ronda);
        public int[] getLines();
        public int decParcial();
        public int incParcial();
        public int decParcial(int parcial);
        public int incParcial(int parcial);
    }
    
    /**
     * constante que representa las reglas de pocheada
     */
    public static final int POCHEADA=1;
    /**
     * constante que representa las reglas de pocha normal
     */
    public static final int POCHA=2;
    /**
     * constante que representa las reglas genericas
     */
    public static final int OTRO=3;
    /** guardamos las normas en formato numero para poder almacenarlo en xml */
    private int idNormas;
    

    /**
     * lista ordenada por posiciones de los nombres de losjugadores
     */
    private String [] nombres;
    /**
     * estructura que almacena los puntos de la partida
     */
    private java.util.Vector /*Ronda*/ puntos;
    /**
     * constante indicativa de las reglas utilizadas
     */
    private int normas;
    /**
     * puntero a una clase de tipo reglas que contiene las reglas aplicadas a la partida en curso
     */
    private Reglas reglas;

    static final public String xmlTag = "partida";
    
    /**
     * obtiene  puntero a una clase de tipo reglas que contiene las reglas aplicadas a la partida en curso
     * @return  puntero a una clase de tipo reglas que contiene las reglas aplicadas a la partida en curso
     */
    Reglas getReglas()
    {
        return reglas;
    }
    
    /**
     * Creates a new instance of Partida
     * @param nombres lista de nombres de los jugadores. 
     * Esta variable tambien se emplear? para calcular el n?mero
     * de jugadores de la parida
     * @param tipo constante indicativa de las reglas que se emplear?n en
     * la partida
     * @see POCHEADA
     * @see POCHA
     * @see OTRO
     */
    public Partida(String [] nombres, int tipo) 
    {
        setNombres(nombres);
        setNormas(tipo);
        idNormas=tipo;
        puntos=new java.util.Vector();
    }
    
    /**
     * constructor, basado en xml
     */
    public Partida(java.io.Reader xml, XmlPullParser analizador) throws XmlPullParserException, IOException
    {
        boolean finPartidaEncontrado=false;
        puntos=new java.util.Vector();
        java.util.Vector jugadores=new java.util.Vector();
        int tag;
        int ronda=0;
        int jugador=0;
        while(finPartidaEncontrado==false)
        {
            tag=analizador.nextTag();
            if(tag==analizador.END_TAG)
                finPartidaEncontrado=analizador.getName().equals(xmlTag);
            else if(tag==analizador.START_TAG)
            {
                //captura de los jutadores;
                //se requiere que los gugadores vayan antes que los puntos
                if(analizador.getName().equals("jugador"))
                {
                    while(tag!=analizador.TEXT)
                        tag=analizador.nextToken();//saltar comentarios
                    String nombre=analizador.getText();
                    jugadores.addElement(nombre);
                    analizador.nextTag();//tag de cierre        
                    //finalizada la lectura componemos ls datos
                    String[] nom=new String[jugadores.size()];
                    jugadores.copyInto(nom);
                    setNombres(nom);
                }
                //procesamos los puntos
                //importante todos los nombres deben estar ya definidos
                else if(analizador.getName().equals("puntos"))
                {
                    ronda++;
                    jugador=0;
                    boolean tagSalidaPuntos=false;
                    while (tagSalidaPuntos==false)
                    {                        
                        tag=analizador.nextTag();
                        if(tag==analizador.END_TAG)
                        {
                            if(analizador.getName().equals("puntos"))
                                tagSalidaPuntos=true;
                        }
                        else if(tag==analizador.START_TAG)
                        {
                            String nombre=analizador.getName();
                            if(nombre.equals("punto"))
                            {
                                jugador++;
                                while(tag!=analizador.TEXT)
                                    tag=analizador.nextToken();//saltar comentarios
                                String spunto=analizador.getText();
                                try
                                {
                                    int punto=Integer.parseInt(spunto);
                                    setParcial(jugador,ronda,punto);
                                }
                                catch (Exception e)
                                {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
                //establecemos las reglas
                else if(analizador.getName().equals("reglas"))
                {
                    while(tag!=analizador.TEXT)
                        tag=analizador.nextToken();//saltar comentarios
                    String snorma=analizador.getText();
                    try
                    {
                        int norma=Integer.parseInt(snorma);
                        setNormas(norma);
                    }
                    catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    /**
     * obtiene la lista de nombres de los jugadores
     * @return lista de nombres de los jugadores
     */
    public String[] getNombres() 
    {
        return nombres;
    }

    /**
     * atenci?n modificar los nombres a mitad de partida puede dar 
     * resltados imprevistos si se modifica el n?mero de los mismos
     * @param nombres nombres de los jugadores
     */
    public void setNombres(String[] nombres) 
    {
        this.nombres = nombres;
    }

    /**
     * obtiene una estructura con los puntos de la partida
     * @return estructura con los puntos de la partida
     */
    public java.util.Vector getPuntos() 
    {
        return puntos;
    }

    /**
     * setter de puntos
     * @deprecated no es conveniente establecer los puntos por este mecanismo. este es un setter convencional. no realiza comprobaci?n ninguna de la coherencia de los datos
     * @param puntos estructura de puntos
     */
    public void setPuntos(java.util.Vector puntos) 
    {
        this.puntos = puntos;
    }

    /**
     * getter de normas
     * @return obtiene la constante indicativa de las reglas empleadas
     */
    public int getNormas() 
    {
        return normas;
    }

    /**
     * setter de la constant indicativa de las normas
     * @param normas constante inicativa de las norms
     */
    public void setNormas(int normas) 
    {
        this.normas = (normas>0 && normas<4)?normas:OTRO;
        switch(normas)
        {
            case POCHA:
                reglas=new telefono.reglas.Pocha(getNJugadores());
                break;
            case POCHEADA:
                reglas=new telefono.reglas.Pocheada(getNJugadores());
                break;
            case OTRO:
            default:
                reglas=new telefono.reglas.Otro();
                break;
        }
    }

    /**
     * establece un valor de puntos acumulados
     * @param jugador jugador a la que se le asignan los puntos
     * @param ronda ronda en que se le asigna los puntos
     * @param valor puntos totales para el ugador y la ronda
     * @throws java.lang.IndexOutOfBoundsException si el jugador o la ronda no 
     * se encuentran. tenga en cuenta solo se crear? la ronda si exist?a la inmediatame anterior.
     */
    public void setAcumulado(int jugador, int ronda, int valor)throws IndexOutOfBoundsException
    {
        if(ronda>getRondas()+1 || ronda<=0)
            throw new IndexOutOfBoundsException();
        if(ronda<getRondas(jugador))
        {
            try
            {
                //no es la ?ltima ronda
                int sig=this.getAcumulado(jugador, ronda+1);
                int esta=this.getAcumulado(jugador,ronda);
                this.setAcumulado(jugador, ronda+1,sig-esta+valor);
            }
            catch(IndexOutOfBoundsException ioobe)
            {
                //nada, si no se puede no se puede. sin traumas
            }
        }
        if(puntos.size()==ronda-1)
        {
            getAcumulado(jugador,ronda-1);//probamos que tiene una anotaci?n anterior o es el primer
            puntos.addElement(new Ronda(getNJugadores(),reglas.getCartas(ronda),1));
        }
        ((Ronda)(puntos.elementAt(ronda-1))).setPuntos(jugador, valor);
    }
    
    /**
     * calcula el n?mero de jugadores de la parida en funci?n del n?mero de nombres de 
     * jugador establecidos.
     * @return numero de jugadores
     */
    public int getNJugadores()
    {
        return nombres.length;
    }

    /**
     * obtiene un valor acumulado 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区中文免费| 青青草一区二区三区| 欧美一区二区三区啪啪| 丁香天五香天堂综合| 日本麻豆一区二区三区视频| 亚洲视频在线一区| 久久久不卡影院| 91精品国产美女浴室洗澡无遮挡| 成人黄色777网| 久久99国产精品免费网站| 亚洲一级在线观看| 综合久久综合久久| 亚洲国产精品国自产拍av| 欧美大片一区二区三区| 欧美视频日韩视频| 国产99久久久国产精品免费看| 人人超碰91尤物精品国产| 亚洲综合成人在线视频| 亚洲视频香蕉人妖| 国产亚洲美州欧州综合国| 欧美成人一区二区三区片免费| 欧美日韩一二三区| 色噜噜狠狠色综合欧洲selulu| 国产91丝袜在线播放九色| 久久精品久久综合| 国产精品亚洲视频| 日韩经典一区二区| 亚洲成人福利片| 亚洲最色的网站| 亚洲色图.com| 亚洲美女在线国产| 最新国产成人在线观看| 中文字幕一区免费在线观看| 国产精品国产自产拍在线| 欧美极品xxx| 中文字幕精品综合| 国产精品视频一区二区三区不卡 | 欧美成人激情免费网| 欧美片网站yy| 91麻豆精品久久久久蜜臀| 欧美日韩国产美女| 91精品国产91热久久久做人人| 91精品欧美福利在线观看 | 国产亚洲欧美中文| 国产日韩欧美一区二区三区综合| 2020国产精品| 国产女人aaa级久久久级| 国产精品系列在线| 综合久久久久久久| 亚洲综合小说图片| 午夜精品久久久久影视| 久热成人在线视频| 国产a久久麻豆| 色呦呦国产精品| 欧美日韩国产一二三| 日韩免费高清av| 久久久久国产一区二区三区四区| 国产欧美精品一区二区色综合| 国产欧美在线观看一区| 亚洲人亚洲人成电影网站色| 亚洲一二三四区不卡| 久久精品国产澳门| 日韩一卡二卡三卡国产欧美| 精品美女在线播放| 中文成人综合网| 综合久久久久综合| 亚洲福中文字幕伊人影院| 亚洲精品乱码久久久久久| 亚洲午夜一区二区三区| 日本午夜精品视频在线观看 | 亚洲午夜一区二区| 免费成人结看片| 成人动漫av在线| 欧美高清精品3d| 国产情人综合久久777777| 一个色综合网站| 久久er99精品| 日本韩国一区二区三区视频| 日韩亚洲欧美中文三级| 国产色综合一区| 香蕉av福利精品导航| 高清在线观看日韩| 欧美日韩免费电影| 中文成人av在线| 免费成人美女在线观看.| 99视频在线精品| 欧美成人一区二区三区片免费| 亚洲免费观看视频| 激情文学综合丁香| 欧美制服丝袜第一页| 国产三级欧美三级| 天堂av在线一区| av在线播放一区二区三区| 日韩一区二区视频| 亚洲九九爱视频| 国产91丝袜在线观看| 日韩精品综合一本久道在线视频| 亚洲精品日韩一| 国产不卡高清在线观看视频| 在线成人av影院| 亚洲免费观看视频| 丁香另类激情小说| 精品国产精品一区二区夜夜嗨| 亚洲一区成人在线| 色综合色综合色综合| 久久久久久久综合| 日韩高清一区二区| 欧美中文字幕亚洲一区二区va在线 | 在线中文字幕不卡| 国产欧美日韩另类视频免费观看| 美腿丝袜在线亚洲一区 | 欧美日韩一级片在线观看| 欧美韩日一区二区三区| 久久91精品久久久久久秒播| 欧美日韩aaaaaa| 一级日本不卡的影视| 色综合视频在线观看| 国产精品视频在线看| 国产精品白丝jk黑袜喷水| 精品久久久久一区二区国产| 免费成人av在线| 欧美一卡2卡三卡4卡5免费| 同产精品九九九| 欧美人妇做爰xxxⅹ性高电影| 一区二区三区日韩欧美| 色综合天天综合色综合av| 综合电影一区二区三区 | 亚洲.国产.中文慕字在线| 色老汉av一区二区三区| 中文字幕一区二区在线播放| 国产不卡视频在线观看| 久久精品视频一区二区三区| 国产一区久久久| 久久久久久久久免费| 国产精品小仙女| 亚洲国产高清在线观看视频| 成人网页在线观看| 国产精品伦理一区二区| 99re视频精品| 亚洲视频一二区| 在线观看日韩精品| 日日嗨av一区二区三区四区| 欧美一区二区三区小说| 久久国产福利国产秒拍| 久久亚洲精品小早川怜子| 国产成人av一区二区三区在线观看| 久久精品亚洲精品国产欧美kt∨| 丁香婷婷综合网| 亚洲日本丝袜连裤袜办公室| 日本高清无吗v一区| 亚洲五码中文字幕| 日韩欧美在线综合网| 国产一区日韩二区欧美三区| 国产精品久久久久一区二区三区共| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲精品成人a在线观看| 欧美精选午夜久久久乱码6080| 日本在线不卡一区| 国产亚洲精久久久久久| 色偷偷一区二区三区| 日韩影视精彩在线| 久久在线观看免费| 99精品热视频| 日韩黄色在线观看| 欧美激情艳妇裸体舞| 欧美亚洲一区二区在线| 免费一级片91| 中文字幕在线观看不卡视频| 欧美日韩精品欧美日韩精品一综合| 在线观看日产精品| 日本三级亚洲精品| 中文字幕成人在线观看| 欧美视频在线观看一区| 精品一区二区三区免费观看| 一区在线播放视频| 欧美一级在线观看| 99视频精品全部免费在线| 三级久久三级久久| 国产精品乱码一区二三区小蝌蚪| 精品视频一区二区三区免费| 国产成人免费视频一区| 天堂va蜜桃一区二区三区漫画版| 国产亚洲精久久久久久| 欧美久久久影院| av一区二区不卡| 九一久久久久久| 亚洲国产精品一区二区www在线| 亚洲精品一区二区精华| 欧美午夜影院一区| 国产精品一级片在线观看| 水蜜桃久久夜色精品一区的特点| 国产婷婷精品av在线| 3d成人h动漫网站入口| aaa欧美大片| 国精产品一区一区三区mba桃花| 一区二区三区色| 国产精品福利在线播放| 欧美v国产在线一区二区三区| 欧洲视频一区二区| 99久久国产免费看|