已知两人姓名,测定两人缘分的算法

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">&nbsp;&nbsp;<input type="reset" value="重置">
 </form>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值