Package modelo

Source Code of modelo.Player

package modelo;

import tablero.Square;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

import cards.Card;
import cards.Features;
import cards.Monje;


public class Player implements Comparable<Player>{
  public enum Colors{
    ROJO,VERDE,AZUL,
    AMARILLO,BLANCO,NEGRO
  }
  private static int playerNum=0; //variable estatica para ir asignando numeros unicos a cada jugador
  private int number;             //numero del jugador
  private Colors color;
  private String playerName;
  private Square ubication=null;
  private boolean hasMoved=false;
  private boolean votoSilencio=false;
  //private Set<Monje> cartasMonje=null;
  //Modificacion de Cartas de Jugador para recibir todo tipo de carta
  private Set<Card> cartasMonje=null;
  private Set<Sospechoso> hojaSospechosos=null;
 
 
  /**
   * Constructor for player object.
   * <p>
   * @param  name the player's name
   * @param  color a color for the player, it's an enum type
   */
  public Player(String name,Colors color){
    playerName=name;
    this.color=color;
    number=++playerNum;
  }
 
  /**
   * returns true if the player has moved, else it returns false
   * <p>
   * @return    boolean
   */
  public boolean hasMoved(){
    return hasMoved;
  }
 
  public boolean votoSilencio(){
    return votoSilencio;
  }
 
  /**
   * set the hasMoved boolean to false
   * <p>
   * @return    void
   */
  public void reset(){
    hasMoved=false;
    votoSilencio=false;
  }
 
  /**
   *
   * @param hand
   * @param features
   * @return
   */
  public int answer(int hand,List<Features> features){  // 1 o dos caracteristicas en cartas monje // true si va a la mano false si va ala hoja de sospechosos
    Card pibot = new Monje();
    int cont = 0;
    if(hand==1){
      for(Card monje:cartasMonje){
        if(monje.getClass().equals(pibot.getClass()))
          if(((Monje) monje).is(features))cont++;
      }
    }
    else if(hand==2){
      for(Sospechoso sospechoso:hojaSospechosos){
        if(sospechoso.getMonje().is(features)&& sospechoso.isMarcado()) cont++;
      }
    }
    return cont;
  }
 
  public void setNewCardToPlayersCardDeck(Monje card){
     cartasMonje.add(card);
  }
 
  public boolean answer(int hand,String nombre){
    boolean check=false;
    Card pibot = new Monje();
    if(hand==1){
      for(Card monje:cartasMonje){
        if(monje.getClass().equals(pibot.getClass()))
        if(nombre.equals(((Monje) monje).getName()))check = true;
      }
    }
    else if(hand==2){
      for(Sospechoso sospechoso:hojaSospechosos){
        if(sospechoso.getMonje().getName().equals(nombre) && sospechoso.isMarcado()) check=true;
      }
    }
    return check;
  }

  public  Monje getMonkCardX(int position) throws NullPointerException{
    int cont = 0;
    Card pibot = new Monje();
    Monje temp=null;
    for (Card n : cartasMonje ){
      if (cont == position)  
        if(n.getClass().equals(pibot.getClass()))
          temp= (Monje) n;
      cont++;      
    }
    cartasMonje.remove(temp);

    return temp;
  }
  public void setHojaDeSospechosos(Set<Sospechoso> set){
    if(hojaSospechosos==null) hojaSospechosos= set;

  }

  public Square getUbication() {
    return ubication;
  }

  public void setUbicacion(Square ubicacion) {
    this.ubication = ubicacion; 
  }

  public void move(Square ubication){
    this.ubication = ubication;
    hasMoved=true;
  }

  public void setCartasMonje(Set<Monje> cartasMonjeJugador){
    this.cartasMonje=new TreeSet<Card>(cartasMonjeJugador);
  }
  public Monje getLastMonkCardInPlayersCardDeck(){
    Monje aDevolver=null;
    Card pibot = new Monje();
    for (Card p:cartasMonje)
      if(p.getClass().equals(pibot.getClass()))
      aDevolver=(Monje) p;
    cartasMonje.remove(aDevolver);
    //if (aDevolver!=null)
    return aDevolver;
  }

  public Set<Card> getCartasMonje(){
    return cartasMonje;
  }

  public Set<Sospechoso> getHojaSospechosos(){
    return hojaSospechosos;
  }
 
  public void marcarSospechosos(){
    for(Sospechoso s:hojaSospechosos){
      Monje m = s.getMonje();
      if(cartasMonje.contains(m)) s.setMarcado();
    }
  }
 
  public void marcarSospechoso(String name){
    for(Sospechoso s:hojaSospechosos){
      Monje m = s.getMonje();
      if(m.getName().equals(name)) s.setMarcado();
    }
  }


  @Override
  public String toString() {
    String casilla;
    if(ubication!=null) casilla = ubication.getSquareName();
    else casilla="no ubicado";
    return "nombre : " + playerName + ", color : " + color
        + ", numero : " + number +", ubicacion : "+ casilla +"]";
  }

  public int getNumero() {
    return number;
  }

  public Colors getColor() {
    return color;
  }

  public String getNombreJugador() {
    return playerName;
  }

  @Override
  public int compareTo(Player o) {
    // TODO Auto-generated method stub
    return (this.number-o.number);
  }

}
TOP

Related Classes of modelo.Player

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.