当前位置: 主页->网页特效专栏->游戏类->TicTacToe人工智能版
栏目导航
网页特效
  典型特效 状态栏
  游戏类 页面背景
  页面特效 页面导航
  文本操作 文本特效
  图形特效 鼠标特效
  时间日期 密码类
  浏览相关 警告对话
  技巧类 计数转换
  测试搜索 代码生成
  播放音乐 按钮特效
  系统相关 链接特效
  黑客性质 相关特效
  窗口特效 其它特效
最新更新
·一个正在跳舞的BABY
·速度与准确性的训练
·剪子、包袱、锤游戏
·速算训练
·简单的走迷宫游戏
·鼠标点击速度测试游戏
·试试运气找好东东!
·射击游戏 小蜜蜂
·填空游戏 (不简单哟)
·21点(黑杰克)
热点文章
 
 
 
 
 
 
 
 
 
 

TicTacToe人工智能版

http://www.yy0736.com 加入日期:2005-03-06 23:30:00 点击数:

查看:[大字体 中字体 小字体]

说明: TicTacToe人工智能版

效果: 点这里看效果!

代码:


<html>
<head>
<meta http-equiv="Content-Type" content="text/html charset=gb2312">
<title>TicTacToe人工智能版</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>

<body>
<script LANGUAGE="JavaScript">
<!-- Begin
step = 0;
diff=3;
function clear_all(form) {
step = 0;
for (i=0;i<9; ++i) {
position="a"+i;
form[position].value="";
}
}
function clickit(field) {
if (step == -1) {alert("重玩一局"); return;}
position=field.name.substring(1,2,1);
position = 'a'+position;
if (field.form[position].value !="") {alert("不能这样走,有没搞错!"); return;}
field.form[position].value="X";
if (eval_pos(field.form)) {
field.form.output.value="你胜了!";
step = -1;
return;
}
position=get_move(field.form);
field.form.output.value='我下在' + position.substring(1,2,1)+'位';
if (position=="") {
field.form.output.value="黄了";
step = -1;
return;
}
field.form[position].value="O";
if (eval_pos(field.form)) {
field.form.output.value="真没用,再来一局!";
step = -1;
}
}
function eval_pos(form) {
if ((form.a0.value!="" && form.a0.value==form.a3.value && form.a0.value==form.a6.value)||
(form.a0.value!="" && form.a0.value==form.a1.value && form.a0.value==form.a2.value) ||
(form.a0.value!="" && form.a0.value==form.a4.value && form.a0.value==form.a8.value) ||
(form.a1.value!="" && form.a1.value==form.a4.value && form.a1.value==form.a7.value) ||
(form.a2.value!="" && form.a2.value==form.a5.value && form.a2.value==form.a8.value) ||
(form.a2.value!="" && form.a2.value==form.a4.value && form.a2.value==form.a6.value) ||
(form.a3.value!="" && form.a3.value==form.a4.value && form.a3.value==form.a5.value) ||
(form.a6.value!="" && form.a6.value==form.a7.value && form.a6.value==form.a8.value))
return true;
else
return false;
}
function f(a) {
if (a == "") return "."; else return a;
}
function comp_move(form,player,weight,depth) {
var cost;
var bestcost=-2;
var position;
var newplayer;
if (player=="X") newplayer="O"; else newplayer="X";
if (depth==diff) return 0;
if (eval_pos(form)) return 1;
for (var i=0; i<9; ++i) {
position='a'+i;
if (form[position].value != "")
continue;
form[position].value=player;
cost = comp_move(form,newplayer, -weight, depth+1);
if (cost > bestcost) {
bestcost=cost;
if (cost==1) i=9;
}
form[position].value="";
}
if (bestcost==-2) bestcost=0;
return(-bestcost);
}
function get_move(form) {
var cost;
var bestcost=-2;
bestmove="";
if (step++ == 0)
if (form.a4.value=="")
return "a4";
else
if (form.a0.value=="")
return "a0";
for (var i=0; i<9; ++i) {
localposition='a'+i;
if (form[localposition].value != "")
continue;
form[localposition].value="O";
cost=comp_move(form,"X", -1, 0);
if (cost > bestcost) {
if (cost==1) i=9;
bestmove=localposition;
bestcost=cost;
}
form[localposition].value="";
}
return bestmove;
}
function complain(field) {
field.form.output.focus();
alert("不能直接在输入框内按,要点按钮才行。");
}
// End -->
</script>
<font color="red">

<p align="center">TicTacToe人工智能版</font> </p>

<form>
<p><input SIZE="2" NAME="a0" OnFocus="complain(this)"> <input TYPE="button" NAME="b0"
OnClick="clickit(this)"> <input SIZE="2" NAME="a1" OnFocus="complain(this)"> <input
TYPE="button" NAME="b1" OnClick="clickit(this)"> <input SIZE="2" NAME="a2"
OnFocus="complain(this)"> <input TYPE="button" NAME="b2" OnClick="clickit(this)"> <br>
<input SIZE="2" NAME="a3" OnFocus="complain(this)"> <input TYPE="button" NAME="b3"
OnClick="clickit(this)"> <input SIZE="2" NAME="a4" OnFocus="complain(this)"> <input
TYPE="button" NAME="b4" OnClick="clickit(this)"> <input SIZE="2" NAME="a5"
OnFocus="complain(this)"> <input TYPE="button" NAME="b5" OnClick="clickit(this)"> <br>
<input SIZE="2" NAME="a6" OnFocus="complain(this)"> <input TYPE="button" NAME="b6"
OnClick="clickit(this)"> <input SIZE="2" NAME="a7" OnFocus="complain(this)"> <input
TYPE="button" NAME="b7" OnClick="clickit(this)"> <input SIZE="2" NAME="a8"
OnFocus="complain(this)"> <input TYPE="button" NAME="b8" OnClick="clickit(this)"> <br>
<br>
现场解说: <input NAME="output" TYPE="text" size="20"><br>
选择难度: <select NAME="difficulty"
OnChange="diff=form.difficulty[form.difficulty.selectedIndex].value;" size="1">
<option VALUE="1"> 最简 </option>
<option VALUE="2"> 容易 </option>
<option VALUE="3" SELECTED> 中等 </option>
<option VALUE="4"> 难 (可能时间要长些) </option>
</select> <br>
<input TYPE="button" VALUE="计算机先走"
OnClick="
if (!step++) this.form.a4.value='O';"> <br>
<input TYPE="reset" VALUE="重新再来" OnClick="clear_all(this.form)"> </p>
</form>
</body>
</html>


作者:佚名 来源: 网上转帖  

   

上篇:Tic Tac Toe 双人版   下篇:扫雷


[夜鹰论坛] [我要留言] [关闭窗口] [ ][TOP]

此文章最新评论(不超过十条)
■评论此文章 ( 有问题请去夜鹰论坛发帖 )
共有评论: 查看全部评论 姓名:
【 声明 】 您所发表的言论将被众多网友阅读,因此,您所发表的言论应不违反中国法律,不违背一般的道德原则,否则,您必须对您的不当言论引发的一切不良后果负责;此外,我们的管理员有权删除您发表的不当言论,谢谢合作!