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

📄 simulation.java

📁 《湖泊生态的简单模拟》(Simulation Of Living Beings In A Lake )。这是我修读美国卡耐基梅隆大学Carnegie Mellon University(CMU)课程s
💻 JAVA
字号:
import java.util.*;

public class Simulation {
	
	
    private static final int MAX_SUNLIGHT = 10;
    
    public static final String IMAGE = "image";
    
    public static final String COLOR = "color";
    
    private final int firstRow;
    
    private final int firstColumn;
    
    private final int lastRow;
    
    private final int lastColumn;
    
    private Random rand;
    
    private Vector livingBeings;
    
    private int time;
    
    public Simulation(int initialFirstRow, int initialFirstColumn, 
                      int initialLastRow, int initialLastColumn) {
                      	
        time = 0;
        firstRow = initialFirstRow;
        firstColumn = initialFirstColumn;
        lastRow = initialLastRow;
        lastColumn = initialLastColumn;
        livingBeings = new Vector(50);
        rand = new Random(7L);
        time = 0;
    }

    public int getFirstRow() {
        return firstRow;
    }

    public int getFirstColumn() {
        return firstColumn;
    }

    public int getLastRow() {
        return lastRow;
    }

    public int getLastColumn() {
        return lastColumn;
    }

    public int getSunlight(int row, int column) {
    	
        if(row >= getFirstRow() && row <= getLastRow() 
          && column >= getFirstColumn() 
          && column <= getLastColumn())
            return rand.nextInt(10);
        else
            return 0;
    }

    public Random getRand() {
        return rand;
    }

    public int getTime() {
        return time;
    }

    public void addLivingBeing(LivingBeing newLivingBeing) {
    	
        if(newLivingBeing == null)
            return;
            
        if(livingBeings.contains(newLivingBeing)) {
            return;
        } else {
            livingBeings.add(newLivingBeing);
        }
    }

    public Vector getNeighbors(int row, int column, int distance) {
    	
        Vector neighbors = new Vector();
        for(int beingIndex = 0; beingIndex < livingBeings.size(); beingIndex++){
        	
            LivingBeing being = (LivingBeing)livingBeings.get(beingIndex);
            if(being != null && being.getRow() <= row + distance 
               && being.getRow() >= row - distance 
               && being.getColumn() <= column + distance 
               && being.getColumn() >= column - distance) {
               neighbors.add(being);
          }
        }
        return neighbors;
    }

    public void simulateATimeBlock() {
    	
        time++;
        
        for(int beingIndex = 0; beingIndex < livingBeings.size(); beingIndex++) {
        	
            LivingBeing being = (LivingBeing)livingBeings.get(beingIndex);
            
            if(being != null && !being.isDead())
                being.liveALittle();
        }

        for(int beingIndex = 0; beingIndex < livingBeings.size();) {
        	
            LivingBeing being = (LivingBeing)livingBeings.get(beingIndex);
            
            if(being.isDead())
                livingBeings.remove(being);
            else
                beingIndex++;
        }
    }    
}

⌨️ 快捷键说明

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