randomizedtile.java.svn-base

来自「一个JAVA程序员的游戏」· SVN-BASE 代码 · 共 70 行

SVN-BASE
70
字号
/*
 * RandomizedTile.java
 *
 * Created on 29. Dezember 2006, 22:25
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package kanjitori.graphics.tile;

import com.jme.scene.Node;
import java.util.HashMap;
import java.util.Map;
import kanjitori.util.Randomizer;

/**
 *
 * @author Pirx
 */
public class RandomizedTile extends AbstractTile implements Tile {
    
    private Randomizer<Tile> randomizer;
    private Tile[] tiles;
    private int[] probs;
    
    public RandomizedTile(String name, Tile[] tiles, int[] probs) {
        super(name);
        if (tiles.length != probs.length) {
            throw new IllegalArgumentException("Number of tiles <> number of probabilities");
        }
        this.tiles = tiles;
        this.probs = probs;
        init();
    }    
        
    public void init() {    
        this.randomizer = new Randomizer<Tile>(tiles, probs);
    }    
    
    public RandomizedTile() {
    }
    
    public Node getNode() {
        if (randomizer == null) {
            init();
        }
        return randomizer.get().getNode();
    }

    public void setParams(Map<String, String> params) {
        tiles = new Tile[params.size()];
        probs = new int[params.size()];
        int i = 0;
        for (Map.Entry<String,String> e : params.entrySet()) {
            tiles[i] = getTile(e.getKey());
            probs[i++] = Integer.parseInt(e.getValue());
        }
    }

    public Map<String, String> getParams() {
        Map<String,String> params = new HashMap<String, String>();
        for (int i = 0; i < tiles.length; i++) {
            params.put(tiles[i].getName(), "" + probs[i]);
        }
        return params;
    }
    
}

⌨️ 快捷键说明

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