您正在使用 IPV4 [18.97.14.91] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
[公益]保护绿色环境,构建和谐社会      

【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折      
[公益] 地球是我家,绿化靠大家      
2024年 冬至节 013
2025年 高 考 181
2025年 元 旦 024
2025年 春 节 052
 
您现在的位置:首页 >> JSP >> 内容
本类新增
本类热门
基于jsp的井字游戏实例
内容摘要: 使用一个二维数组panel保存棋盘的状态,1是电脑的值,-1是玩家的值。winArr保存所有可能赢的8个棋位组合;维护computerWin和userWin,初始值等于winArr,当电脑或玩家每次下棋时,都分别更新这两个数组,删除掉不能赢的棋位组合。在更新panel的时候会分别更新computerWin和userWin。核心的方法是play,play的执行......
使用一个二维数组panel保存棋盘的状态,1是电脑的值,-1是玩家的值。

winArr保存所有可能赢的8个棋位组合;维护computerWin和userWin,初始值等于winArr,当电脑或玩家每次下棋时,都分别更新这两个数组,删除掉不能赢的棋位组合。在更新panel的时候会分别更新computerWin和userWin。

核心的方法是play,play的执行步骤伪代码如下:

如果可以攻击

遍历computerWin数组,找到可以攻击的棋位,下棋,显示是否赢了。

不能攻击,如果需要防守

遍历userWin,根据玩家可赢的组合,找出需要防守的棋位,下棋,更新panel;

不需要防守,如果是电脑先手的第一步

在中心位置下棋,更新panel;

不是先手第一步

如果中心位置没有被占去,在中心位置下棋,更新panel;返回

如果是特殊情况,在棱位下棋,更新panel;返回

如果角位仍有位置,选择一个角位下棋,更新panel;返回

最后一种情况,找到剩余的空位,优先选择位于computerWin的空位,下棋,更新panel;返回

play算法的实现如下:

if(canAttack()){

console.log("attack");

varattackPos=findAttackPos();

updatePanel(attackPos,computerVal);

}elseif(needDefend()){

console.log("defend");

vardefendPos=findDefendPos();

updatePanel(defendPos,computerVal);

}elseif(firstStep()){

console.log("first");

updatePanel(firstPos,computerVal);

running=true;

}else{

console.log("other");

if(panel[1][1]==0){

updatePanel(firstPos,computerVal);

return;

}

if(special()){

console.log('special');

varpos=findSpecialPos();

updatePanel(pos,computerVal);

return;

}

varrandom=Math.floor(Math.random()*2);

if(panel[0][0]==0&&panel[2][2]==0){

varpos=(random==0)?0:8;

updatePanel(pos,computerVal);

}elseif(panel[0][2]==0&&panel[2][0]==0){

varpos=(random==0)?2:6;

updatePanel(pos,computerVal);

}else{

varotherPos=findEmptyPos();

updatePanel(otherPos,computerVal);

}

}

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:JSP实现网页访问统计

 

下一篇:jsp页面显示数据库的数据信息表

发布日期:2023/11/7
手机扫二维码直达本页
发布时间:14:43:00
点  击:12
录  入:哲哲
相关文章
  • 没有相关文章
Baidu
YiJiaCMS 7.5.5 build241121(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,Cloudflare提供加速防护
运行时间载入中.....