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

📄 septon

📁 一些JAVA的小程序
💻
📖 第 1 页 / 共 4 页
字号:
X	tradeCards.disable();X      }X      statusLine.setText("Select country to attack from.");X      break;X    case ATTACK_TO:X      currentCountry = n;X      statusLine.setText("Attack which country from " +X			 world.getCountry(n).getName() + "?");X      break;X    case ATTACK_MOVE:X      statusLine.setText("Click on " + world.getCountry(n).getName() +X			 " to move armies from " +X			 world.getCountry(currentCountry).getName() + ".");X      currentCountryTarget = n;X      break;X    case FORTIFY_FROM:X      statusLine.setText("Select country to fortify from.");X      world.repaint();X      break;X    case FORTIFY_TO:X      currentCountry = n;X      statusLine.setText("Fortify which country from " +X			 world.getCountry(n).getName() + "?");X      break;X    }X  }X			X  protected World getWorld()X  {X    return world;X  }X  X  public static void main(String args[])X  {X    //     RegisterFrame rf = new RegisterFrame(risk);X    //     rf.show();X    Risk risk = new Risk();XX    risk.registerPlayers();X    risk.setup();XX    // Once the window is showing, actions will be driven by GUIX    // events, and so the static driver ends here.X    risk.show();X  }}SHAR_EOF  $shar_touch -am 1210132596 'Risk.java' &&  chmod 0644 'Risk.java' ||  $echo 'restore of' 'Risk.java' 'failed'  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then    md5sum -c << SHAR_EOF >/dev/null 2>&1 \    || $echo 'Risk.java:' 'MD5 check failed'3891711f4ca764c97f6fcf117d6ef144  Risk.javaSHAR_EOF  else    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'Risk.java'`"    test 12482 -eq "$shar_count" ||    $echo 'Risk.java:' 'original size' '12482,' 'current size' "$shar_count!"  fifi# ============= World.java ==============if test -f 'World.java' && test "$first_param" != -c; then  $echo 'x -' SKIPPING 'World.java' '(file already exists)'else  $echo 'x -' extracting 'World.java' '(text)'  sed 's/^X//' << 'SHAR_EOF' > 'World.java' &&// CS 582 - Fall 1996 - OSU// Jean-Guy SpetonXimport java.awt.*;import java.util.*;Xpublic class World extends Canvas{X  private static final int WIDTH  = 720;X  private static final int HEIGHT = 388;XX  private Risk risk;X  private Country[] countries;XX  // For double-buffering.X  Image offScreenImage;X  Dimension offScreenSize;X  Graphics offScreenGraphics;X  X  public World(Risk risk)X  {X    this.risk = risk;X    countries = Country.makeWorld();XX    setBackground(Color.blue.darker());X  }XX  // AWT methods.X  X  public Dimension minimumSize()X  {X    return new Dimension(WIDTH, HEIGHT);X  }XX  public Dimension preferredSize()X  {X    return minimumSize();X  }X  X  public void paint(Graphics g)X  {X    super.paint(g);X    X    for (int i = 0; i < countries.length; i++) {X      //      g.setColor(Color.red);X      countries[i].paint(g);X    }X    g.setColor(Color.white);X    g.drawLine(298, 259, 333, 234);  // Brazil to N. AfricaX    g.drawLine(240, 110, 256, 92);   // Quebec to GreenlandX    g.drawLine(173, 106, 231, 52);   // Ontario to GreenlandX    g.drawLine(177, 64, 209, 40);    // NWT to GreenlandX    g.drawLine(411, 173, 405, 161);  // Egypt to S. EuropeX    g.drawLine(387, 162, 394, 156);  // N. Africa to S. EuropeX    g.drawLine(313, 71, 319, 77);    // Greenland to IcelandX    g.drawLine(343, 83, 373, 90);    // Iceland to ScandinaviaX    g.drawLine(335, 92, 350, 102);   // Iceland to Great BritainX    g.drawLine(654, 166, 646, 155);  // Japan to MongoliaX    g.drawLine(672, 141, 670, 139);  // Japan to KamchatkaX    g.drawLine(464, 277, 457, 264);  // Madagascar to E. AfricaX    g.drawLine(457, 291, 450, 287);  // Madagascar to S. AfricaX  }XX  public void update(Graphics g)X  {X    Dimension d = size();XX    if ((offScreenImage == null) ||X        (d.width != offScreenSize.width) ||X        (d.height != offScreenSize.height)) {X      offScreenImage = createImage(d.width, d.height);X      offScreenSize = d;X      offScreenGraphics = offScreenImage.getGraphics();X      offScreenGraphics.setFont(getFont());X    }X    paint(offScreenGraphics);X    g.drawImage(offScreenImage, 0, 0, null);X  }XX  public boolean mouseDown(Event event, int x, int y)X  {X    Player player = risk.getCurrentPlayer();X    int phase = risk.getCurrentPhase();X    Country country = pointsInCountry(x, y);X    int cc = risk.getCurrentCountry();XX    if (country != null) {X      switch (phase) {XX      case Risk.PLACE_ARMIES:X	if ((player.getArmies() > 0) && (country.getOwner() == player)) {X	  // Place all armies if RMB, 1 if LMB.X	  if ((event.modifiers & Event.META_MASK) != 0) {X	    country.incrementArmies(player.getArmies());X	    player.setArmies(0);X	  }X	  else {X	    country.incrementArmies(1);X	    player.decrementArmies(1);X	  }X	  risk.repaint();X	  repaint();X	  risk.setArmiesToPlace(player.getArmies());X	} X	break;X	X      case Risk.ATTACK_FROM:X	if ((country.getOwner() == player) &&X	    (country.getArmies() > 1)) {X	  risk.setPhase(Risk.ATTACK_TO, country.getNum());X	}X	break;XX      case Risk.ATTACK_TO:X	// If the user clicks on the same country which s/he choseX	// as the attacking country, cancel the attack.X	if (country.getNum() == cc) {X	  risk.setPhase(Risk.ATTACK_FROM);X	}X	else if ((country.getOwner() != player) &&X	    (country.isAdjacentTo(countries[cc]))) {X	  int rolls[] = countries[cc].attackCountry(country);X	  risk.setAttackRolls(rolls);X	  risk.repaint();X	  repaint();XX	  // If territory captured, allow army movement.X	  if ((country.getOwner() == countries[cc].getOwner()) &&X	      (countries[cc].getArmies() > 1)) {X	    // If the player killed an enemy he took his cards, andX	    // thus may need to trade some in.X	    if (player.getPile().size() > 4) {X	      risk.setPhase(Risk.FORCED_TRADE);X	    }X	    else {X	      risk.setPhase(Risk.ATTACK_MOVE, country.getNum());X	    }X	    risk.getCurrentPlayer().setCardFlag();X	  }X	  // Else if depleted armies, cancel attack.X	  else if (countries[cc].getArmies() == 1) {X	    risk.setPhase(Risk.ATTACK_FROM);X	  }X	}X	break;XX      case Risk.ATTACK_MOVE:X	if (country == countries[risk.getCurrentCountryTarget()]) {X	  if ((event.modifiers & Event.META_MASK) != 0) {X	    country.incrementArmies(countries[cc].getArmies() - 1);X	    countries[cc].setArmies(1);X	  }X	  else {X	    country.incrementArmies(1);X	    countries[cc].decrementArmies(1);X	  }X	  repaint();X	  if (countries[cc].getArmies() == 1) {X	    risk.setPhase(Risk.ATTACK_FROM);X	  }X	}X	else {X	  risk.setPhase(Risk.ATTACK_FROM);X	}X	break;X	X      case Risk.FORTIFY_FROM:X	if ((country.getOwner() == player) &&X	    (country.getArmies() > 1)) {X	  risk.setPhase(Risk.FORTIFY_TO, country.getNum());X	}X	break;XX      case Risk.FORTIFY_TO:X	// If the user clicks on the same country which s/he choseX	// as the attacking country, cancel the attack.X	if (country.getNum() == cc) {X	  risk.setPhase(Risk.FORTIFY_FROM);X	}X	else if ((country.getOwner() == player) &&X		 (country.isAdjacentTo(countries[cc])) &&X		 (countries[cc].getArmies() > 1)) {X	  // If RMB, transfer all but 1 army.  Else if LMB, transfer 1.X	  if ((event.modifiers & Event.META_MASK) != 0) {X	    country.incrementArmies(countries[cc].getArmies() - 1);X	    countries[cc].setArmies(1);X	  }X	  else {X	    country.incrementArmies(1);X	    countries[cc].decrementArmies(1);X	  }X	  if (countries[cc].getArmies() == 1) {X	    risk.setPhase(Risk.FORTIFY_FROM);X	  }X	  repaint();X	}X	break;X      }X    }X    X    return true;X  }X  X  public boolean mouseMove(Event event, int x, int y)X  {X    Graphics g = getGraphics();XX    g.setColor(getBackground());X    //g.fillRect(0, 0, 100, 13);X    g.fillRect(0, HEIGHT-14, 200, HEIGHT);XX    g.setColor(Color.white);X    //g.drawString("" + x + ", " + y, 0, 12);X    //System.err.println("" + x + ", " + y);XX    for (int i = 0; i < countries.length; i++) {X      if (countries[i].inside(x, y)) {X	g.drawString(countries[i].getName(), 0, HEIGHT-2);X	break;X      }X    }X    X    return true;X  }XX  private Country pointsInCountry(int x, int y)X  {X    for (int i = 0; i < countries.length; i++) {X      if (countries[i].inside(x, y)) {X	return countries[i];X      }X    }X    return null;X  }X  X  // Game methods.XX  // Generate a random Country ordering permutation.  Useful for theX  // initial (random) distribution of countries to players.X  public Country[] randomCountryPermutation()X  {X    Country random[] = new Country[countries.length];X    Vector v = new Vector();X    Random r = new Random();XX    // Copy the countries into a Vector so we can remove them.X    for (int i = 0; i < countries.length; i++) {X      v.addElement(countries[i]);X    }XX    for (int i = 0; i < countries.length; i++) {X      int j = Math.abs(r.nextInt()) % v.size();X      random[i] = (Country)v.elementAt(j);X      v.removeElementAt(j);X    }X    X    return random;X  }XX  public Country getCountry(int i)X  {X    return countries[i];X  }X  X  public Player ownerOfContinent(int cont)X  {X    Player pl = countries[Country.CONTINENT_LO[cont]].getOwner();XX    for (int i = Country.CONTINENT_LO[cont] + 1;X	 i <= Country.CONTINENT_HI[cont];X	 i++) {X      if (countries[i].getOwner() != pl) {X	return null;X      }X    }X    return pl;X  }}SHAR_EOF  $shar_touch -am 1210132596 'World.java' &&  chmod 0644 'World.java' ||  $echo 'restore of' 'World.java' 'failed'  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then    md5sum -c << SHAR_EOF >/dev/null 2>&1 \    || $echo 'World.java:' 'MD5 check failed'71332ea7f5521a4a167cab37609b4b64  World.javaSHAR_EOF  else    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'World.java'`"    test 7256 -eq "$shar_count" ||    $echo 'World.java:' 'original size' '7256,' 'current size' "$shar_count!"  fifi# ============= Country.java ==============if test -f 'Country.java' && test "$first_param" != -c; then  $echo 'x -' SKIPPING 'Country.java' '(file already exists)'else  $echo 'x -' extracting 'Country.java' '(text)'  sed 's/^X//' << 'SHAR_EOF' > 'Country.java' &&// CS 582 - Fall 1996 - OSU// Jean-Guy SpetonXimport java.awt.*;import java.util.Random;Xpublic class Country extends Polygon{X  // Country and continent constants.XX  public static final int NUM_COUNTRIES = 42;X  X  public static final int NORTH_AMERICA = 0;X  public static final int SOUTH_AMERICA = 1;X  public static final int AFRICA        = 2;X  public static final int EUROPE        = 3;X  public static final int ASIA          = 4;X  public static final int AUSTRALIA     = 5;X  X  public static final int CONTINENT_LO[] = {X    0, 9, 13, 19, 26, 38X  };X  public static final int CONTINENT_HI[] = {X    8, 12, 18, 25, 37, 41X  };X  public static final int ARMY_BONUS[] = {X    5, 2, 3, 5, 7, 2X  };X  X  // North AmericaX  public static final int ALASKA = 0;X  public static final int NORTHWEST_TERRITORIES = 1;X  public static final int GREENLAND = 2;X  public static final int ALBERTA = 3;X  public static final int ONTARIO = 4;X  public static final int QUEBEC = 5;X  public static final int WESTERN_US = 6;X  public static final int EASTERN_US = 7;X  public static final int MEXICO = 8;X  public static final int NORTH_AMERICA_LO = 0;X  public static final int NORTH_AMERICA_HI = 8;XX  // South AmericaX  public static final int VENEZUELA = 9;X  public static final int PERU = 10;X  public static final int BRAZIL = 11;X  public static final int ARGENTINA = 12;X  public static final int SOUTH_AMERICA_LO = 9;X  public static final int SOUTH_AMERICA_HI = 12;XX  // AfricaX  public static final int NORTH_AFRICA = 13;X  public static final int EGYPT = 14;X  public static final int CONGO = 15;X  public static final int EAST_AFRICA = 16;X  public static final int SOUTH_AFRICA = 17;X  public static final int MADAGASCAR = 18;X  public static final int AFRICA_LO = 13;X  public static final int AFRICA_HI = 18;XX  // EuropeX  public static final int ICELAND = 19;X  public static final int GREAT_BRITAIN = 20;X  public static final int SCANDINAVIA = 21;X  public static final int WESTERN_EUROPE = 22;X  public static final int NORTHERN_EUROPE = 23;X  public static final int SOUTHERN_EUROPE = 24;X  public static final int UKRAINE = 25;X  public static final int EUROPE_LO = 19;X  public static final int EUROPE_HI = 25;XX  // AsiaX  public static final int URAL = 26;X  public static final int SIBERIA = 27;X  public static final int YAKUTSK = 28;X  public static final int KAMCHATKA = 29;X  public static final int AFGHANISTAN = 30;X  public static final int IRKUTSK = 31;X  public static final int CHINA = 32;X  public static final int MONGOLIA = 33;X  public static final int JAPAN = 34;X  public static final int MIDDLE_EAST = 35;X  public static final int INDIA = 36;X  public static final int SIAM = 37;X  public static final int ASIA_LO = 26;X  public static final int ASIA_HI = 37;XX  // AustraliaX  public static final int INDONESIA = 38;X  public static final int NEW_GUINEA = 39;X  public static final int WESTERN_AUSTRALIA = 40;X  public static final int EASTERN_AUSTRALIA = 41;X  public static final int AUSTRALIA_LO = 38;X  public static final int AUSTRALIA_HI = 41;XX  private static String countryNames[] = {X    "Alaska", "Northwest Territories", "Greenland", "Alberta", "Ontario", "Quebec", "Western US", "Eastern US", "Mexico",X    "Venezuela", "Peru", "Brazil", "Argentina",X    "North Africa", "Egypt", "Congo", "East Africa", "South Africa", "Madagascar",X    "Iceland", "Great Britain", "Scandinavia", "Western Europe", "Northern Europe", "Southern Europe", "Ukraine",X    "Ural", "Siberia", "Yakutsk", "Kamchatka", "Afghanistan", "Irkutsk", "China", "Mongolia", "Japan", "Middle East", "India", "Siam",X    "Indonesia", "New Guinea", "Western Australia", "Eastern Australia"X  };XX  private static int adjacencies[][] = {X    // North AmericaX    { NORTHWEST_TERRITORIES, ALBERTA, KAMCHATKA },X    { ALASKA, GREENLAND, ALBERTA, ONTARIO },X    { NORTHWEST_TERRITORIES, ICELAND, ONTARIO, QUEBEC },X    { ALASKA, NORTHWEST_TERRITORIES, ONTARIO, WESTERN_US },X    { ALBERTA, NORTHWEST_TERRITORIES, GREENLAND, QUEBEC, WESTERN_US, EASTERN_US },X    { ONTARIO, GREENLAND, EASTERN_US },X    { ALBERTA, ONTARIO, EASTERN_US, MEXICO },X    { WESTERN_US, ONTARIO, QUEBEC, MEXICO },X    { WESTERN_US, EASTERN_US, VENEZUELA},X    // South AmericaX    { MEXICO, PERU, BRAZIL },X    { VENEZUELA, BRAZIL, ARGENTINA },X    { VENEZUELA, PERU, ARGENTINA, NORTH_AFRICA },X    { PERU, BRAZIL },X    // AfricaX    { BRAZIL, EGYPT, CONGO, EAST_AFRICA, WESTERN_EUROPE, SOUTHERN_EUROPE },X    { NORTH_AFRICA, EAST_AFRICA, WESTERN_EUROPE, SOUTHERN_EUROPE, MIDDLE_EAST },X    { SOUTH_AFRICA, NORTH_AFRICA, EAST_AFRICA },X    { SOUTH_AFRICA, CONGO, MADAGASCAR, NORTH_AFRICA, EGYPT, MIDDLE_EAST },X    { CONGO, EAST_AFRICA, MADAGASCAR },X    { SOUTH_AFRICA, EAST_AFRICA },X    // EuropeX    { GREENLAND, SCANDINAVIA, GREAT_BRITAIN },X    { ICELAND, WESTERN_EUROPE, NORTHERN_EUROPE, SCANDINAVIA },X    { ICELAND, GREAT_BRITAIN, NORTHERN_EUROPE, UKRAINE },X    { NORTH_AFRICA, GREAT_BRITAIN, NORTHERN_EUROPE, SOUTHERN_EUROPE },X    { GREAT_BRITAIN,  SCANDINAVIA, WESTERN_EUROPE, SOUTHERN_EUROPE, UKRAINE },

⌨️ 快捷键说明

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