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

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中      
【腾讯云】618年中盛惠,2核2G5M云服务器低至 68元/年       [公益] 地球是我家,绿化靠大家       广州婚姻调查公司      
2025年 七夕节 077
2025年 教师节 089
2026年 元 旦 202
2026年 春 节 249
 
您现在的位置:首页 >> 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
点  击:17
录  入:哲哲
相关文章
  • 没有相关文章
Baidu
YiJiaCMS 7.5.8 build250610(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,创宇云安全提供加速防护
运行时间载入中.....
知道创宇云安全