1, 2, 3, 4);
private static $typeChange = array(array(1, 2), array(1, 3), array(1, 4), array(2, 3), array(2, 4), array(3, 4));
private static $typeChangeComplexs = array(1, 1, 2, 1, 2, 2);
public static function computeComplex($password)
{
$complex = 0;
$password = (string)$password;
$length = strlen($password);
$prefixType = 0;
$regularChars = array();
for($i = 0; $i < $length; $i++){
if(ctype_digit($password[$i])){
$type = 1;
}elseif(ctype_lower($password[$i])){
$type = 2;
}elseif(ctype_upper($password[$i])){
$type = 3;
}else{
$type = 4;
}
if(!in_array($password[$i], $regularChars)){ //规律性字符,不计入复杂度
$complex += self::$typeComplexs[$type];
if($prefixType){
$changeType = array($type, $prefixType);
sort($changeType);
$change = array_search($changeType, self::$typeChange);
if($change !== false){
$complex += self::$typeChangeComplexs[$change];
}
}
}
$prefixType = $type;
$regularChars = self::getRegularChars($password[$i], $prefixType);
}
return $complex;
}
/**
* 获取一个字符的规律字符集
* 下列规则被认为是有规则的
* 1)重复字符
* 2)数字递增或者递减
* 3)字母递增或者递减
* @param unknown_type $prefixChar
*/
private static function getRegularChars($prefix, $prefixType)
{
$regularChars = array($prefix);
switch($prefixType){
case 1:
$regularChars[] = $prefix + 1;
$regularChars[] = $prefix - 1;
break;
case 2:
case 3:
$regularChars[] = chr(ord($prefix) + 1);
$regularChars[] = chr(ord($prefix) - 1);
$regularChars = array_filter($regularChars, 'ctype_alnum');
break;
}
return $regularChars;
}
}
?>
本文档主要讲述的是j2me3D游戏开发简单教程; 如今,3D图形几乎是任何一部游戏的关键部分,甚至一些应用程序也通过用3D形式来描述信息而获得了成功。如前文中所述,以立即模式和手工编码建立所有的3D对象的方式进行开发速度很慢且很复杂。应用程序中多边形的所有角点必须在数组中独立编码。在JSR 184中,这称为立即模式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号