第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

有大神將這個人機五子棋改成雙人對戰(zhàn),沒有AI的,自己弄蒙了,謝謝

有大神將這個人機五子棋改成雙人對戰(zhàn),沒有AI的,自己弄蒙了,謝謝

正在回答

5 回答

就把computerAI這個函數(shù)去掉,在chess.onclick里面分別對黑棋和白旗進行贏法統(tǒng)計。

chess.onclick=function(e){

????if(gameOver){

????????return;

????}

????var?x=e.offsetX;

????var?y=e.offsetY;

????var?i=Math.floor(x/30);

????var?j=Math.floor(y/30);

????if(empty[i][j]==0){

????????//保證黑白棋子交替

????????oneStep(i,j,flag);

????????empty[i][j]=1;

????????if(flag){

????????????empty[i][j]=1;

????????????for(var?k=0;k<count;k++){

????????????????if(wins[i][j][k]){

????????????????????myWin[k]++;

????????????????????computerWin[k]=6;

????????????????????if(myWin[k]==5){

????????????????????????setTimeout(()=>{

????????????????????????????alert("黑棋贏了!");

????????????????????????},700);

????????????????????????gameOver=true;

????????????????????}

????????????????}

????????????}

????????????if(!gameOver){

????????????????flag=!flag;

????????????}

????????}else{

????????????empty[i][j]=2;

????????????for(var?k=0;k<count;k++){

????????????????if(wins[i][j][k]){

????????????????????computerWin[k]++;

????????????????????myWin[k]=6;

????????????????????if(computerWin[k]==5){

????????????????????????setTimeout(()=>{

????????????????????????????alert("白棋贏了!");

????????????????????????},700);

????????????????????????gameOver=true;

????????????????????}

????????????????}

????????????}

????????????if(!gameOver){

????????????????flag=!flag;

????????????}

????????}

????}

}



0 回復 有任何疑惑可以回復我~

如果會nodejs? 可以用websocket 實現(xiàn)

0 回復 有任何疑惑可以回復我~

這個不是在加入Ai前的那節(jié)課就實現(xiàn)了么。

2 回復 有任何疑惑可以回復我~

有沒有大神能夠幫忙指個思路,能詳細點最好了

非常感謝

0 回復 有任何疑惑可以回復我~

var chess = document.getElementById("chess");

var context = chess.getContext('2d');

var over = false;

var me = true; //我


var chressBord = [];//棋盤

for(var i = 0; i < 15; i++){

? ? chressBord[i] = [];

? ? for(var j = 0; j < 15; j++){

? ? ? ? chressBord[i][j] = 0;

? ? }

}


//贏法的統(tǒng)計數(shù)組

var myWin = [];

var yourWin = [];


//贏法數(shù)組

var wins = [];

for(var i = 0; i < 15; i++){

? ? wins[i] = [];

? ? for(var j = 0; j < 15; j++){

? ? ? ? wins[i][j] = [];

? ? }

}


var count = 0; //贏法總數(shù)

//橫線贏法

for(var i = 0; i < 15; i++){

? ? for(var j = 0; j < 11; j++){

? ? ? ? for(var k = 0; k < 5; k++){

? ? ? ? ? ? wins[i][j+k][count] = true;

? ? ? ? }

? ? ? ? count++;

? ? }

}


//豎線贏法

for(var i = 0; i < 15; i++){

? ? for(var j = 0; j < 11; j++){

? ? ? ? for(var k = 0; k < 5; k++){

? ? ? ? ? ? wins[j+k][i][count] = true;

? ? ? ? }

? ? ? ? count++;

? ? }

}


//正斜線贏法

for(var i = 0; i < 11; i++){

? ? for(var j = 0; j < 11; j++){

? ? ? ? for(var k = 0; k < 5; k++){

? ? ? ? ? ? wins[i+k][j+k][count] = true;

? ? ? ? }

? ? ? ? count++;

? ? }

}


//反斜線贏法

for(var i = 0; i < 11; i++){?

? ? for(var j = 14; j > 3; j--){

? ? ? ? for(var k = 0; k < 5; k++){

? ? ? ? ? ? wins[i+k][j-k][count] = true;

? ? ? ? }

? ? ? ? count++;

? ? }

}


for(var i = 0; i < count; i++){

? ? myWin[i] = 0;

? ? yourWin[i] = 0;

}


var chessBoard=[];

var me=true;

?

for(var i=0;i<15;i++){

? ? chessBoard[i]=[];

? ? for(var j=0;j<15;j++){

? ? ? ? chessBoard[i][j]=0;

? ? }

}

?


chess.onclick = function(e){

? ? if(over){

? ? ? ? return;

? ? }

? ? if(!me){

? ? ? ? return;

? ? }

? ? var x = e.offsetX;

? ? var y = e.offsetY;

? ? var i = Math.floor(x / 30);

? ? var j = Math.floor(y / 30);

? ? if(chressBord[i][j] == 0){

? ? ? ? oneStep(i,j,me);

? ? ? ? chressBord[i][j] = 1;//我 ? ? ? ?

? ? ? ? ? ? ? ? ? ??

? ? ? ? for(var k = 0; k < count; k++){

? ? ? ? ? ? if(wins[i][j][k]){

? ? ? ? ? ? ? ? myWin[k]++;

? ? ? ? ? ? ? ? yourWin[k] = 6;//這個位置對方不可能贏了

? ? ? ? ? ? ? ? if(myWin[k] == 5){

? ? ? ? ? ? ? ? ? ? window.alert('我贏了');

? ? ? ? ? ? ? ? ? ? over = true;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? if(!over){

? ? ? ? ? ? me = !me;

? ? ? ? ? ?for(var k = 0; k < count; k++){

? ? ? ? ? ? if(wins[i][j][k]){

? ? ? ? ? ? ? ? yourWin[k]++;

? ? ? ? ? ? ? ? myWin[k] = 6;//這個位置對方不可能贏了

? ? ? ? ? ? ? ? if(yourWin[k] == 5){

? ? ? ? ? ? ? ? ? ? window.alert('你贏了');

? ? ? ? ? ? ? ? ? ? over = false;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? }

? ? }

? ??

}




var chess = document.getElementById('chess');

var context = chess.getContext('2d');

?

context.strokeStyle="#bfbfbf";

?

var logo=new Image();

logo.src="image/logo.png";

logo.onload=function(){

? ? context.drawImage(logo,0,0,450,450);

? ? drawChessBoard();

?

? ? ?

}

?

var drawChessBoard=function(){

? ? for(var i=0;i<15;i++){

? ? ? ? context.moveTo(15+i*30,15);

? ? ? ? context.lineTo(15+i*30,435);

? ? ? ? context.stroke();

? ? ? ? context.moveTo(15,15+i*30);

? ? ? ? context.lineTo(435,15+i*30);

? ? ? ? context.stroke();

? ? }

}

?

var oneStep=function(i,j,me){

? ? context.beginPath();

? ? context.arc(15+i*30,15+j*30,13,0,2*Math.PI);

? ? context.closePath;

? ? var gradient=context.createRadialGradient(15+i*30+2,15+j*30-2,13,15+i*30+2,15+j*30-2,0);

? ? if(me){

? ? ? ? gradient.addColorStop(0,"#0a0a0a");

? ? ? ? gradient.addColorStop(1,"#636766");

? ? }else{

? ? ? ? gradient.addColorStop(0,"#d1d1d1");

? ? ? ? gradient.addColorStop(1,"#f9f9f9");

? ? }

? ? ?

? ? context.fillStyle=gradient;

? ? context.fill();

}

?

chess.onclick=function (e) {

? ? var x=e.offsetX;

? ? var y=e.offsetY;

? ? var i=Math.floor(x/30);

? ? var j=Math.floor(y/30);

? ? if(chessBoard[i][j]==0){

? ? ? ? oneStep(i,j,me);

? ? ? ? if(me){

? ? ? ? ? ? chessBoard[i][j]=1;

? ? ? ? }else{

? ? ? ? ? ? chessBoard[i][j]=2;

? ? ? ? }

? ? ? ? me=!me;

? ? }

}



document.getElementById("restart").onclick = function(){

? ? window.location.reload();

}

我這個完成了ui,,,實現(xiàn)了落子,怎樣可以實現(xiàn)雙人對戰(zhàn)???,是不是還需要兩個人的分數(shù)計算。


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

有大神將這個人機五子棋改成雙人對戰(zhàn),沒有AI的,自己弄蒙了,謝謝

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號