1 测定两人缘分,我可以通过两个人的姓名,计算一个100以内的数值,作为缘分指数,并通过该数值确定缘分心语。
2 该算法结果需不带有随机性。
3 定义最高指数为100,两人姓名相同获得。(或者加入其它的想法)
4 为了使游戏具有一定的可玩性和不使人过分沮丧,保证缘分指数在60~100之间,如此,可按一定的等差划分缘分心语。例如60-70为一段,70-80为一段等等。
----------------未加修饰的源码,仅作记忆-------
<script language="JavaScript">
<!--
function check()// 判断用户输入格式
{
if(mainform.name1.value=="")
{
document.getElementById("name1text").innerHTML="<font color='blue'>男生姓名为空</font>";
mainform.name1.focus();
return false;
}
if(mainform.name2.value=="")
{
document.getElementById("name2text").innerHTML="<font color='blue'>女生姓名为空</font>";
mainform.name2.focus();
return false;
}
return true;
}
//-->
</script>
<?php
if(isset($_GET['act']) and $_GET['act']=='sub')
{
//获取表单数据
$n1=$_POST['name1'];
$n2=$_POST['name2'];
$zhishu=zhishu($n1,$n2);
echo "<script language='javascript'>alert('".$n1."和".$n2."的缘分指数是".$zhishu."')</script>";
}
function zhishu($n1,$n2)
{
$n1=jiequ($n1);
$n2=jiequ($n2);
$n1=abs($n1-$n2);//取绝对值,保证a+b和b+a求的缘分指数相同
//以下是指数修正算法,随意写的,可以有其他算法
if($n1<60 and $n1>=50)
{
return ($n1*1.5);
}
elseif ($n1<50 and $n1>=40) {
return ($n1*1.8);
}
elseif ($n1<40 and $n1>=0) {
return (100-$n1);
}
else {
return $n1;
}
} // end func
function jiequ($s)//此函数功能是获取名字对应的MD5中最先出现的两个数字组成的数字
{
$s=md5($s);
$k="";
for ($i=0;$i<32 ;$i++ ) {
$r = substr($s,$i,1);
if (is_numeric($r)) {
$k .=$r;
}
}
return substr($k,0,2);
} // end func
?>
<form action="./yuanfen.php?act=sub" name="mainform" οnsubmit="return check();" method="post">
姓名A<input type="text" name="name1"><label id="name1text" name="name1text"></label><br>
姓名B<input type="text" name="name2"><span id="name2text"></span><br>
<input type="submit" value="查看" name="sub"> <input type="reset" value="重置">
</form>
2 该算法结果需不带有随机性。
3 定义最高指数为100,两人姓名相同获得。(或者加入其它的想法)
4 为了使游戏具有一定的可玩性和不使人过分沮丧,保证缘分指数在60~100之间,如此,可按一定的等差划分缘分心语。例如60-70为一段,70-80为一段等等。
----------------未加修饰的源码,仅作记忆-------
<script language="JavaScript">
<!--
function check()// 判断用户输入格式
{
if(mainform.name1.value=="")
{
document.getElementById("name1text").innerHTML="<font color='blue'>男生姓名为空</font>";
mainform.name1.focus();
return false;
}
if(mainform.name2.value=="")
{
document.getElementById("name2text").innerHTML="<font color='blue'>女生姓名为空</font>";
mainform.name2.focus();
return false;
}
return true;
}
//-->
</script>
<?php
if(isset($_GET['act']) and $_GET['act']=='sub')
{
//获取表单数据
$n1=$_POST['name1'];
$n2=$_POST['name2'];
$zhishu=zhishu($n1,$n2);
echo "<script language='javascript'>alert('".$n1."和".$n2."的缘分指数是".$zhishu."')</script>";
}
function zhishu($n1,$n2)
{
$n1=jiequ($n1);
$n2=jiequ($n2);
$n1=abs($n1-$n2);//取绝对值,保证a+b和b+a求的缘分指数相同
//以下是指数修正算法,随意写的,可以有其他算法
if($n1<60 and $n1>=50)
{
return ($n1*1.5);
}
elseif ($n1<50 and $n1>=40) {
return ($n1*1.8);
}
elseif ($n1<40 and $n1>=0) {
return (100-$n1);
}
else {
return $n1;
}
} // end func
function jiequ($s)//此函数功能是获取名字对应的MD5中最先出现的两个数字组成的数字
{
$s=md5($s);
$k="";
for ($i=0;$i<32 ;$i++ ) {
$r = substr($s,$i,1);
if (is_numeric($r)) {
$k .=$r;
}
}
return substr($k,0,2);
} // end func
?>
<form action="./yuanfen.php?act=sub" name="mainform" οnsubmit="return check();" method="post">
姓名A<input type="text" name="name1"><label id="name1text" name="name1text"></label><br>
姓名B<input type="text" name="name2"><span id="name2text"></span><br>
<input type="submit" value="查看" name="sub"> <input type="reset" value="重置">
</form>