人品计算器代码分析

人品计算器代码分析

人品计算器代码分析

按此计算,哥的人品值为98,世人之楷模!某人居然和“贱人”有一样的值!!

其实这玩意儿一点都没有和占卜学占边,完全是闹着玩的,看看它第一帧的AS代码就知道了,代码如下:

     function nameResult(str) {
         var _local1 = checkPreList(str);
         if (_local1 == null) {
             _local1 = getResult(str);
         }
         var _local2 = ("姓名:" + str) + newline;
         _local2 = _local2 + (("人品得分:" + foramtResult(_local1)) + newline);
         _local2 = _local2 + ("评价:" + getValue(_local1));
         return (_local2);
     }
     function foramtResult(n) {
         return ((((n >= 0) && (n <= 100)) ? (n) : "负溢出"));
     }
     function getValue(n) {
         var _local2 = "";
         if (n == 0) {
             _local2 = "你一定不是人吧?怎么一点人品都没有?!";
         } else if ((n > 0) && (n <= 5)) {
             _local2 = "算了,跟你没什么人品好谈的…";
         } else if ((n > 5) && (n <= 10)) {
             _local2 = "是我不好…不应该跟你谈人品问题的…";
         } else if ((n > 10) && (n <= 15)) {
             _local2 = "杀过人没有?放过火没有?你应该无恶不做吧?";
         } else if ((n > 15) && (n <= 20)) {
             _local2 = "你貌似应该三岁就偷看隔壁大妈洗澡的吧…";
         } else if ((n > 20) && (n <= 25)) {
             _local2 = "你的人品之低下实在让人惊讶啊…";
         } else if ((n > 25) && (n <= 30)) {
             _local2 = "你的人品太差了。你应该有干坏事的嗜好吧?";
         } else if ((n > 30) && (n <= 35)) {
             _local2 = "你的人品真差!肯定经常做偷鸡摸狗的事…";
         } else if ((n > 35) && (n <= 40)) {
             _local2 = "你拥有如此差的人品请经常祈求佛祖保佑你吧…";
         } else if ((n > 40) && (n <= 45)) {
             _local2 = "老实交待..那些论坛上面经常出现的偷拍照是不是你的杰作?";
         } else if ((n > 45) && (n <= 50)) {
             _local2 = "你随地大小便之类的事没少干吧?";
         } else if ((n > 50) && (n <= 55)) {
             _local2 = "你的人品太差了..稍不小心就会去干坏事了吧?";
         } else if ((n > 55) && (n <= 60)) {
             _local2 = "你的人品很差了..要时刻克制住做坏事的冲动哦..";
         } else if ((n > 60) && (n <= 65)) {
             _local2 = "你的人品比较差了..要好好的约束自己啊..";
         } else if ((n > 65) && (n <= 70)) {
             _local2 = "你的人品勉勉强强..要自己好自为之..";
         } else if ((n > 70) && (n <= 75)) {
             _local2 = "有你这样的人品算是不错了..";
         } else if ((n > 75) && (n <= 80)) {
             _local2 = "你有较好的人品..继续保持..";
         } else if ((n > 80) && (n <= 85)) {
             _local2 = "你的人品不错..应该一表人才吧?";
         } else if ((n > 85) && (n <= 90)) {
             _local2 = "你的人品真好..做好事应该是你的爱好吧..";
         } else if ((n > 90) && (n <= 95)) {
             _local2 = "你的人品太好了..你就是当代活雷锋啊…";
         } else if ((n > 95) && (n <= 99)) {
             _local2 = "你是世人的榜样!";
         } else if (n == 100) {
             _local2 = "天啦!你不是人!你是神!!!";
         } else {
             _local2 = "你的人品竟然负溢出了…我对你无语..";
          }
         return (_local2);
     }
     function getResult(str) {
         var _local3 = 0;
         var _local1 = 0;
         while (_local1 < str.length) {
             _local3 = _local3 + str.charCodeAt(_local1);
             _local1++;
         }
         return (_local3 % 100);
     }
     function checkPreList(str) {
         var _local1 = null;
         for (var _local3 in PrenameList) {
             if (PrenameList[_local3][0] == str) {
                 _local1 = PrenameList[_local3][1];
                 break;
             }
         }
         return (_local1);
     }
     PrenameList = new Array ();
     PrenameList.push(["张晋", 100]);
     PrenameList.push(["鬼龟", 100]);
     PrenameList.push(["cordy", 100]);
     PrenameList.push(["jx2cordy", 100]);
     PrenameList.push(["2306205002", 100]);
     PrenameList.push(["日本人", -1]);
     PrenameList.push(["小日本", -1]);
     PrenameList.push(["日本", -1]);
     PrenameList.push(["日本鬼子", -1]);

     fscommand ("showmenu", false);
     inputName.maxChars = 20;
     resultArea.text = "请输入要计算的名字 然后点击计算按钮\n本程序内容纯属构 仅供娱乐之用\n如有雷同 纯属巧合\n———-by cordy";
     okBtAction = new Object ();
     okBtAction.click = function () {
         var _local1 = inputName.text;
         _local1 = _local1.split(" ").join("");
         _local1 = _local1.split(" ").join("");
         _local1 = _local1.split("\t").join("");
         inputName.text = _local1;
         if (_local1 == "") {
             resultArea.text = "请先输入要计算的名字";
         } else {
             resultArea.text = nameResult(_local1);
          }
     };
     okBt.addEventListener("click", okBtAction);

据此分析,cordy为作者名称,张晋应该为作者真实姓名,鬼龟应该为其绰号,jx2cordy应该为ID或QQ呢称之类的,2306205002我最初猜是其校内ID号,但不是,也不可能是QQ号,不知道是什么东东。

如果没有在特殊字符里面,则按 getResult函数计算人品值,就是把每个字符的ASCII码相加,然后除以100的余数作为人品值。比如我,“陈”的ASCII值为38472,“明”为26126,相加除100余98!

如何获得ASCII码?我刚想到了一个好用的方法:在IE栏中输入:

javascript:var character="陈";var code = character.charCodeAt(0);alert(code);

其中“陈”换成你想查询的字,回车就好。