📄 iptankrandom.java
字号:
package com.ipanel.games.tank;
import java.util.Enumeration;
import java.util.Random;
import java.util.Vector;
/**
* 因为IPanel JVM对java.util.Random.nextInt(int)并不支持,所以以此类提供IPanelTank的Random。
*/
public class IPTankRandom extends Random {
public IPTankRandom() {
super();
}
public IPTankRandom(long lSeed) {
super(lSeed);
}
/**
* @param bits
* 用bits运算得到0~2^bits的范围,以提供类似nextInt(int)的支持。
*/
protected int next(int bits) {
if (bits >= 32) {
bits = 31;
}
/**
* 取名iSTBNumer,是因为STB可能不支持Random.next(int),产生大于0~2^bits的范围;
* 使用如下算法,可以保证不管STB是否支持Random.next(int),都能产生0~2^bits的范围
* 的int;当然,严格说来,这样的随机数不再完全"随机"。
*/
int iSTBNumer = super.next(bits);
int iRemainNumber = 2 << (bits - 1);
return iSTBNumer % iRemainNumber;
}
public static void main(String[] args) {
IPTankRandom random = new IPTankRandom();
for (int i = 0; i < 20; i++) {
System.out.println(random.next(32));
}
/*
* Vector vector = new Vector(); for (int i = 0; i < 10; i++) {
* vector.addElement(new Integer(i)); }
*
* Enumeration em = vector.elements(); while (em.hasMoreElements()) {
* Integer I = (Integer) em.nextElement();
* System.out.println(I.intValue()); vector.removeElement(I); }
*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -