亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

基于jsp的井字游戲實例

2024-09-05 00:22:42
字體:
來源:轉載
供稿:網友

做一款回憶童年的游戲,這款游戲代碼比較簡單,主要是掌握算法的原理,但是也有一些需要注意的地方。

游戲界面

進入正題。項目的效果圖如下:

java井字游戲,井字游戲,井字游戲代碼

游戲有一個開始界面可供選擇玩家的角色,然后選擇先手是哪一方,接著開始游戲。選擇界面做了一個遮罩層,里面提供給用戶選擇,選擇之后便把遮罩層隱藏并開始游戲。

具體實現

說了那么多,可能比較枯燥,下面介紹一下具體的代碼實現。

使用一個二維數組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");  var attackPos = findAttackPos();  updatePanel(attackPos, computerVal);} else if(needDefend()) {  console.log("defend");  var defendPos = findDefendPos();  updatePanel(defendPos, computerVal);} else if(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');    var pos = findSpecialPos();    updatePanel(pos, computerVal);    return;  }  var random = Math.floor(Math.random() * 2);  if(panel[0][0] == 0 && panel[2][2] == 0) {    var pos = (random == 0) ? 0 : 8;    updatePanel(pos, computerVal);  } else if(panel[0][2] == 0 && panel[2][0] == 0) {    var pos = (random == 0) ? 2: 6;    updatePanel(pos, computerVal);  } else {    var otherPos = findEmptyPos();    updatePanel(otherPos, computerVal);  }}

總結

在編碼的過程中遇到的一個難題就是JavaScript的數組對象,我在第一次調用play方法開頭輸出panel的時候,得到的是play執行后panel的值,后來請教一位大神,發現是因為panel是一個對象,因為對象遍歷引用的都是同一塊內存地址,所以一旦有改變,就全部改了。如果直接使用下標輸出每一個值的話是可以得到初始的值的,也可以用JSON方法將數組字符串,然后打印出來查看結果。


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一视频网| 亚洲一区二区三区视频播放| 日韩大片在线观看视频| 91爱视频在线| 久久天天躁狠狠躁老女人| 欧美午夜女人视频在线| 欧美国产亚洲视频| 奇门遁甲1982国语版免费观看高清| 亚洲福利视频二区| 国产精品福利在线观看| 欧美激情性做爰免费视频| 黄色91在线观看| 成人国产亚洲精品a区天堂华泰| 国产激情综合五月久久| 97香蕉久久超级碰碰高清版| 亲子乱一区二区三区电影| 日韩欧美成人精品| 日韩大片免费观看视频播放| 亚洲男子天堂网| 国产精品ⅴa在线观看h| 久久成人人人人精品欧| 91精品国产一区| 欧美色道久久88综合亚洲精品| 在线视频日韩精品| 欧美成人sm免费视频| 欧美激情乱人伦一区| 红桃视频成人在线观看| 日本欧美一级片| 中文国产成人精品久久一| 日韩在线视频观看正片免费网站| 91爱视频在线| 亚洲欧美日韩一区二区在线| 欧美怡春院一区二区三区| 亚洲国模精品一区| 日本免费一区二区三区视频观看| 日本不卡视频在线播放| 国产成人在线一区二区| 国产女人精品视频| 日韩中文在线观看| 国产精品一二区| 欧美美最猛性xxxxxx| 大胆欧美人体视频| 亚洲美女性生活视频| 亚洲精品一区二区久| 日韩精品中文字幕视频在线| 日韩高清人体午夜| 亚洲精品国产精品国自产在线| 国产大片精品免费永久看nba| 午夜精品久久久久久久99热| 91精品视频在线播放| 亚洲免费av网址| 国产精品亚洲第一区| 日韩av中文在线| 久久色在线播放| 色樱桃影院亚洲精品影院| 午夜精品久久17c| 91精品国产综合久久香蕉最新版| 一区二区三区亚洲| 久久精品最新地址| 亚洲国产精品一区二区久| 亚洲欧洲免费视频| 国产精品无码专区在线观看| 国产精品入口日韩视频大尺度| 亚洲jizzjizz日本少妇| 亚洲男人第一av网站| 欧美电影在线免费观看网站| 韩日精品中文字幕| 在线观看国产精品日韩av| 国产精品久久久久久av福利| 亚洲精品自拍第一页| 成人黄色av免费在线观看| 亚洲国产精品99久久| 韩国国内大量揄拍精品视频| 日韩成人xxxx| 久久精品视频99| 日韩精品在线免费观看视频| 国产精品久久久久aaaa九色| 久久九九亚洲综合| 国产啪精品视频| 精品国产91久久久久久| 亚洲free嫩bbb| 黑人巨大精品欧美一区二区一视频| 亚洲美女av在线播放| 欧美精品在线观看| 国产精品美女www爽爽爽视频| 久久在线免费视频| 日韩av毛片网| 日韩福利伦理影院免费| 久久久久久九九九| 亚洲视频专区在线| 欧美国产日韩一区| 蜜臀久久99精品久久久久久宅男| 久久不射电影网| 国产精品久久久久久久久久东京| 国产日韩av在线播放| 日韩精品视频免费专区在线播放| 国产精品一区二区久久国产| 视频一区视频二区国产精品| 国产剧情久久久久久| 亚洲欧美综合精品久久成人| 亚洲欧美综合另类中字| 高清日韩电视剧大全免费播放在线观看| 亚洲精品之草原avav久久| 午夜精品一区二区三区在线视| 欧美午夜丰满在线18影院| 亚洲一区二区三区四区视频| 欧美激情小视频| 一区二区亚洲精品国产| 亚洲视频欧美视频| 久久久天堂国产精品女人| 欧美日韩亚洲精品内裤| 国产亚洲视频中文字幕视频| 欧美大片在线影院| 欧美整片在线观看| 日韩精品视频免费专区在线播放| 久久大大胆人体| 欧美精品xxx| 91精品91久久久久久| 国产精品91在线观看| 亚洲男人天堂2023| 欧美成人高清视频| 国产午夜精品麻豆| 91精品在线播放| 欧美成人精品一区| 国产精品wwwwww| 俺去啦;欧美日韩| 亚洲大胆人体视频| 麻豆国产va免费精品高清在线| 亚洲日本中文字幕免费在线不卡| 亚洲天堂av在线免费观看| 欧美色欧美亚洲高清在线视频| 中文字幕国产日韩| 精品亚洲一区二区三区| 欧美片一区二区三区| 欧美日韩在线观看视频小说| 成人免费淫片aa视频免费| 中文国产亚洲喷潮| 亚洲美女久久久| 亚洲精品免费一区二区三区| 国产视频精品xxxx| 国产区精品在线观看| 国产欧美va欧美va香蕉在线| 午夜精品蜜臀一区二区三区免费| 国产精品第二页| 日韩成人在线免费观看| 九九热在线精品视频| 久久久久久久国产精品| 8x拔播拔播x8国产精品| 亚洲美女喷白浆| 久久91亚洲精品中文字幕奶水| 久久99国产综合精品女同| 欧美激情欧美激情在线五月| 欧美日韩高清在线观看| 亚洲欧美日韩第一区| 国产午夜精品全部视频播放| 欧美一级高清免费播放| 欧美精品18videos性欧美| 亚洲一区二区三区久久| 欧美专区国产专区| 中文字幕av一区二区| 韩国精品美女www爽爽爽视频| 国产精品免费福利| 久久久久久久久久亚洲| 日韩高清电影免费观看完整|