fei 发表于 2007-4-27 11:57:19

***游戏类***tictactoe人工智能版

把下列代码加到网页的<body></body>标签之间 从google下载我的照片管理软件
<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.value="";
   }
}
function clickit(field) {
if (step == -1) {alert("重玩一局"); return;}
position=field.name.substring(1,2,1);
position = 'a'+position;
if (field.form.value !="") {alert("不能这样走,有没搞错!"); return;}

field.form.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.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.value != "")
continue;
form.value=player;
cost = comp_move(form,newplayer, -weight, depth+1);
if (cost > bestcost) {
bestcost=cost;
if (cost==1) i=9;
}
form.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.value != "")
continue;
form.value="o";
cost=comp_move(form,"x", -1, 0);
if (cost > bestcost) {
if (cost==1) i=9;
bestmove=localposition;
bestcost=cost;
}
form.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.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>

      










--------------------------------------

http://www.huoyue.com.cn 活跃网,活跃人群的论坛,访问活跃网,将给您带来意想不到的收获,还可以免费为您开论坛,让您免费拥有与朋友、网友交流的论坛。你是年轻人吗?你活跃你就上!
页: [1]
查看完整版本: ***游戏类***tictactoe人工智能版