⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.java

📁 一些JAVA的小程序
💻 JAVA
字号:
// CS 582 - Fall 1996 - OSU// Jean-Guy Spetonimport java.awt.*;import java.util.*;public class Player{  private Risk risk;    private String name;  private Color color;  private Hashtable countries;  private Pile pile;  private int numArmies;  // Tracks whether or not the player has captured at least 1 enemy  // territory in the current turn.  Should be cleared at the end of  // each turn.  private boolean cardFlag;  public Player(Risk risk, String name, Color color)  {    this.risk = risk;    this.name = name;    this.color = color;    countries = new Hashtable();    pile = new Pile();    numArmies = 0;  }  // Game methods.    public String getName()  {    return name;  }    public Color getColor()  {    return color;  }  public Pile getPile()  {    return pile;  }  public void addCard(Card c)  {    pile.addCard(c);  }  public boolean canTradeCards()  {    Card c[] = new Card[3];    int j = 0;        c[2] = null;  // marker    for (int i = 0; i < pile.size(); i++) {      if (pile.cardAt(i).isSelected()) {	c[j++] = pile.cardAt(i);      }    }    if (c[2] != null) {      return Card.isSet(c[0], c[1], c[2]);    }    return false;  }  public void tradeCards(int a)  {    boolean hasBonus = false;  // only 1 bonus per trade!    for (int i = 0; i < pile.size(); i++) {      if (pile.cardAt(i).isSelected()) {	// If we own the country on the card, award with bonus 2 armies.	Country cn;	if (!hasBonus &&	    (cn = hasCountry(pile.cardAt(i).getCountry())) != null) {	  hasBonus = true;	  cn.incrementArmies(2);	}		pile.removeCardAt(i);	i--;  // to offset the end-of-for increment      }    }    incrementArmies(a);      }    public void addCountry(Country c)  {    countries.put(c.getID(), c);    c.setOwner(this);  }  public void removeCountry(Country c)  {    countries.remove(c.getID());    c.setOwner(null);  }  public int numCountries()  {    return countries.size();  }  public Country hasCountry(int i)  {    Enumeration enum = countries.elements();    while (enum.hasMoreElements()) {      Country c = (Country)enum.nextElement();      if (c.getNum() == i) {	return c;      }    }    return null;  }    public int getArmies()  {    return numArmies;  }    public void setArmies(int i)  {    numArmies = i;  }  public void decrementArmies(int i)  {    numArmies -= i;  }  public void incrementArmies(int i)  {    numArmies += i;  }  // Calculate start-of-turn bonus armies based on holdings.  public void gainBonusArmies()  {    int bonus = countries.size() / 3;    if (bonus < 3) {      bonus = 3;    }    // Calculate continent bonuses.    World world = risk.getWorld();    for (int i = Country.NORTH_AMERICA; i <= Country.AUSTRALIA; i++) {      if (world.ownerOfContinent(i) == this) {	bonus += Country.ARMY_BONUS[i];      }    }    incrementArmies(bonus);  }    // Randomly distribute reserve armies.  Usually only called during  // game setup.  public void distributeArmies()  {    while (numArmies > 0) {      Enumeration e = countries.elements();      while (e.hasMoreElements()) {	if (numArmies == 0) {	  break;	}	((Country)e.nextElement()).incrementArmies(1);	numArmies--;      }    }  }  public int getTotalCountries()  {    return countries.size();  }  public int getTotalArmies()  {    int n = 0;    Enumeration enum = countries.elements();    while (enum.hasMoreElements()) {      Country c = (Country)enum.nextElement();      n += c.getArmies();    }    return n;  }  public void setCardFlag()  {    cardFlag = true;  }  public void clearCardFlag()  {    cardFlag = false;  }  public boolean getCardFlag()  {    return cardFlag;  }    // Called when this occupies pl's last territory.  public void vanquished(Player pl)  {    // Take the player's cards.    pile.addPile(pl.getPile());    // Check to see if we've won the game.    if (countries.size() == Country.NUM_COUNTRIES) {      System.out.println(name + " wins!");      System.exit(0);    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -