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

📄 wealthspace.java

📁 创新系统仿真模型代码
💻 JAVA
字号:
/*$$ * packages uchicago.src.* * Copyright (c) 1999, Trustees of the University of Chicago * All rights reserved. * * Redistribution and use in source and binary forms, with  * or without modification, are permitted provided that the following  * conditions are met: * *	 Redistributions of source code must retain the above copyright notice, *	 this list of conditions and the following disclaimer. * *	 Redistributions in binary form must reproduce the above copyright notice, *	 this list of conditions and the following disclaimer in the documentation *	 and/or other materials provided with the distribution. * *	 Neither the name of the University of Chicago nor the names of its *   contributors may be used to endorse or promote products derived from *   this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Nick Collier * nick@src.uchicago.edu * * packages cern.jet.random.* * Copyright (c) 1999 CERN - European Laboratory for Particle * Physics. Permission to use, copy, modify, distribute and sell this * software and its documentation for any purpose is hereby granted without * fee, provided that the above copyright notice appear in all copies * and that both that copyright notice and this permission notice appear in * supporting documentation. CERN makes no representations about the  * suitability of this software for any purpose. It is provided "as is"  * without expressed or implied warranty.  * * Wolfgang Hoschek * wolfgang.hoschek@cern.ch *$$*/package tom.edu.csustan.astarte;import java.awt.Dimension;import uchicago.src.sim.space.*;import uchicago.src.collection.BaseMatrix;public class WealthSpace {  // the Wealth space is composed of two tori which track the maximum  // amount of wealth, and the current value at each x,y coordinate.  private Object2DTorus currentWealth;  private Object2DTorus maxWealth;  // default wealth grow rate and the default maximum wealth//  private int wealthGrowRate = 1;  private int wealthGrowRate = 0;//  private int globalMaxWealth = 4;  private int globalMaxWealth = 0;  private Dimension size;  public WealthSpace(String wealthFile) {    // constructs the maximum wealth torus using the values in the    // pgm file, wealthspace.pgm.    // we get this as a stream so can load it from a jar file.    // if we didn't need to get this from a jar we could just pass    // the file name to Object2DTorus.    java.io.InputStream stream = getClass().getResourceAsStream(wealthFile);        maxWealth = new Object2DTorus(stream, Object2DGrid.PGM_ASCII);    currentWealth = new Object2DTorus(maxWealth.getSizeX(), maxWealth.getSizeY());    // sets the current wealth to the maximum wealth.    BaseMatrix m = maxWealth.getMatrix();    for (int i = 0; i < m.getNumCols(); i++) {      for (int j = 0; j < m.getNumRows(); j++) {        Integer intg = (Integer)m.get(i, j);        currentWealth.putObjectAt(i, j, new Integer(intg.intValue()));      }    }    size = maxWealth.getSize();    //System.out.println(size.width + ", " + size.height);  }  public Dimension getSize() {    return size;  }  public Object2DGrid getCurrentWealth() {    return currentWealth;  }  // The actual implementation of growback rule G, pg 182 (Appendix B).  public void updateWealth() {    int wealthAtSpot;    int maxWealthAtSpot;    for (int i = 0; i < size.width; i++) {      for (int j = 0; j < size.height; j++) {        wealthAtSpot = ((Integer)currentWealth.getObjectAt(i, j)).intValue();        maxWealthAtSpot = ((Integer)maxWealth.getObjectAt(i, j)).intValue();        if (wealthGrowRate == -1) {          currentWealth.putObjectAt(i, j, new Integer(maxWealthAtSpot));        } else {          if (wealthAtSpot != maxWealthAtSpot) {            if (wealthAtSpot + wealthGrowRate <= maxWealthAtSpot) {              currentWealth.putObjectAt(i, j, new Integer(wealthAtSpot + wealthGrowRate));            } else {              currentWealth.putObjectAt(i, j, new Integer(maxWealthAtSpot));            }          }        }      }    }  }  // takes all the wealth at this coordinate, leaving no wealth.  public int takeWealthAt(int x, int y) {    Integer i = (Integer)currentWealth.getObjectAt(x, y);    currentWealth.putObjectAt(x, y, new Integer(0));    return i.intValue();  }  // gets the amount of wealth at this x,y coordinate  public int getWealthAt(int x, int y) {    Integer i = (Integer)currentWealth.getObjectAt(x, y);    return i.intValue();  }  public int getXSize() {    return size.width;  }  public int getYSize() {    return size.height;  }}

⌨️ 快捷键说明

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