|
Project Information
|
<html> <head> <title>Código - Central Masters</title> </head> <body> <script language="LiveScript"> <!-- step = 0; diff=3; // change board when button is clicked function clear_all(form) { step = 0; for (i=0;i<9; ++i) { position="a"+i; formposition.value=""; } } // change board when button is clicked function clickit(field) { if (step == -1) {alert("Reset e jogue novamente"); return;} position=field.name.substring(1,2,1); position = 'a'+position; if (field.formposition.value !="") {alert("Não pode mover pra cá"); return;} field.formposition.value="X"; if (eval_pos(field.form)) { field.form.output.value="Você venceu!!"; step = -1; return; } position=get_move(field.form); field.form.output.value='I moved to ' + position.substring(1,2,1); if (position=="") { field.form.output.value="Não houve vencedor."; step = -1; return; } field.formposition.value="O"; if (eval_pos(field.form)) { field.form.output.value="Você perdeu!"; step = -1; } } // see if there is a winner 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; } // get position for move. 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 (formposition.value != "") continue; formposition.value=player; cost = comp_move(form,newplayer, -weight, depth+1); if (cost > bestcost) { bestcost=cost; if (cost==1) i=9; } formposition.value=""; } if (bestcost==-2) bestcost=0; return(-bestcost); } // get position for move. function get_move(form) { var cost; var bestcost=-2; bestmove=""; // don't think about first move. 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 (formlocalposition.value != "") continue; formlocalposition.value="O"; cost=comp_move(form,"X", -1, 0); if (cost > bestcost) { if (cost==1) i=9; bestmove=localposition; bestcost=cost; } formlocalposition.value=""; } return bestmove; } // complain if user attempts to change board function complain(field) { field.form.output.focus(); // put focus eleswhere alert("Clique no botão"); } //a href="http://www.ucsd.edu/ // the end --> <form>
|