今天 有幸在这里做一下关于斗地主AI的 JS实现讲解
在处理AI的过程中 首先 我们要对模拟人类赞牌的过程 实现机器人算出最合理的出牌路线!
在这个过程中 我们需要用到的函数
1:排序函数:PxFux 返回一个经过对牌组排序的数组 不要干涉原来的数组
2:抽牌函数:MChouPai 返回一个被抽出的片段 和 抽出后剩余的部分
3:查找存在的牌型函数:SerCh 返回查找到的单牌 火箭 对子 3张 顺子 只要它有可能存在 就加入到队列去!
4:计算Pn值函数:GetTaMax 这里的Pn值 是计算出遍历出来的牌的好坏程度 用来筛选最好的牌
5:遍历除炸弹火箭2以外的所有剩余路径:GetAllPai
6:在GetAllPai 中使用到 GetAllLast函数 该函数是计算遍历出顺子组合后 剩下的牌在进行 3张 对子 和 单牌的加入
7:GetAllSun 遍历出所有 3张 单顺 双顺 3顺的组合 (记住为机器人赞牌,我们不必要去理会 3带1 3带2 或者飞机 等情况 因为这个情况我们可以再出牌的时候依据剩余的单牌 或对牌去决定要出飞机还是3带1 我们只需要找出 3张一样的 或者顺子啊等等)
8:GetAllSunLess 遍历出所有的顺子
9:GetAll2SunLess 遍历出所有的双顺
10:GetAll3SunLess 遍历所有的3顺
以上 遍历的值 都是以阶 ......
/********************
* 取窗口滚动条高度
******************/
function getScrollTop()
{
var scrollTop=0;
if(document.documentElement&&document.documentElement.scrollTop)
{
scrollTop=document.documentElement.scrollTop;
}
else if(document.body)
{
scrollTop=document.body.scrollTop;
}
return scrollTop;
}
/********************
* 取窗口可视范围的高度
*******************/
function getClientHeight()
{
var clientHeight=0;
if(document.body.clientHeight&&document.documentElement.clientHeight)
{
var clientHeight = (document.body.clientHeight<document.documentElement.clientHeight)?document.body.clien ......
私有变量 在对象内部使用'var'关键字来声明,而且它只能被私有函数和特权方法访问。
私有函数 在对象的构造函数里声明(或者是通过var functionName=function(){...}来定义),它能被特权函数调用(包括对象的构造函数)和私有函数调用。
特权方法 通过this.methodName=function(){...}来声明而且可能被对象外部的代码调用。它可以使用:this.特权函数() 方式来调用特权函数,使用 :私有函数()方式来调用私有函数。
公共属性 通过this.variableName来定义而且在对象外部是可以读写的。不能被私有函数所调用。
公共方法 通过ClassName.prototype.methodName=function(){...}来定义而且可以从对象外部来调用。
原型属性 通过ClassName.prototype.propertyName=someValue来定义。
静态属性 通过ClassName.propertyName=someValue来定义。 ......
表单名fm 表单中有两个text :name,no 一个radio:sex 一个checkbox:hobby 一个下拉列表框(日期:year month day)
一个textarea ……还有两个按钮 submit 和 reset
如何用JavaScript验证这些内容非空,要求点“提交”按钮的时候 提示非空, 具体html代码如下:
<html>
<head>
<title>请填写信息:</title>
<meta http-equiv="keywords" content="姓名,学号,性别,出生日期,爱好,个人说明">
<meta http-equiv="description" content="信息输入">
<meta http-equiv="content-type" content="text/html; charset=GBK">
<script language="javascript">
</head>
<body>
<H3>请在下面输入信息:</H3>
<form action="servlet/dealInfoServlet" method="post" ......
<script type="text/javascript">
function fnOnPageChanged(page) {
var url = '<?=url('ShowFront','Search',$Request);?>' + '&page=' + page;
//alert(url);
document.location.href = url;
}
</script>
<select id="selectPage" onChange="fnOnPageChanged(value);"><option >请选择</option>
<?php
for($i=0;$i<=10;$i++){
$page1=$pager->nextPage+$i-6;
$page2=$pager->nextPage+$i-5;
echo " <option value='$page1' >第".$page2."页</option>";
}
......
function strToDate(){
var nowDate = new Date();
var oldDate = '2009-06-08';
var oldTime = '16:00';
var year = oldDate.substr(0,4);
var month = oldDate.substr(5,2);
var day = oldDate.substr(8,2);
var temDate = month+'/'+day+'/'+year+' '+oldTime+":00";
alert(temDate);
//与当前时间比较
alert(new Date(Date.parse(temDate))>nowDate);
} ......