randomizedtile.java
来自「一个JAVA程序员的游戏」· Java 代码 · 共 70 行
JAVA
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 + -
显示快捷键?