Javascript jqueryconnectfour-help调试函数
我的jQuery作业有问题(我是一名学生,也是一名JS初学者) 基本上,任务是使用MV(C)(我们不使用controller)模式使用jQuery创建一个connectfour游戏 比赛场地是一个2D阵列,看起来像这样Javascript jqueryconnectfour-help调试函数,javascript,jquery,Javascript,Jquery,我的jQuery作业有问题(我是一名学生,也是一名JS初学者) 基本上,任务是使用MV(C)(我们不使用controller)模式使用jQuery创建一个connectfour游戏 比赛场地是一个2D阵列,看起来像这样 - , - , - , - , - , - , - - , - , - , - , - , - , - - , - , - , - , - , - , - - , - , - , - , - , - , - - , - , - , - , - , - , - - , -
- , - , - , - , - , - , -
- , - , - , - , - , - , -
- , - , - , - , - , - , -
- , - , - , - , - , - , -
- , - , - , - , - , - , -
- , - , - , - , - , - , -
玩家通过按立柱进行游戏(例如,玩家1按3)
播放器2按下4键
- , - , - , - , - , - , -
- , - , - , - , - , - , -
- , - , - , - , - , - , -
- , - , - , - , - , - , -
- , - , - , - , - , - , -
- , - , x , o , - , - , -
等等
比赛结束后,获胜的四个字母应改为大写
我陷入困境,不知道如何继续,所以我创建了一个包含所有代码的GitHub存储库
基本上,它会初始化游戏场,您可以按数字,但play()方法将不起作用
如果有人能告诉我为什么不将数组的值从-更改为x/o,那就太好了
代码如下:
checkAvailableRow(column) {
for (var i = 5 ; i >= 0 ; i--) {
console.log(currentPlayer);
if (playFieldArray[column][i] === "-") {
return i;
if(currentPlayer == "Player 1"){
playFieldArray[column][i] = "x";
} else {
playFieldArray[column][i] = "o";
}
}
}
return -1;
}
以及Model.js中的checkIfWon()函数不起作用的原因
我会永远感激你的帮助
return i;
返回导致逻辑进程从其所在的函数中返回。因此,之后的任何逻辑都不会发生。对这句话发表评论,看看有没有什么变化(应该是这样的)
或者将其移动到更改数组值的if/else之后。以下是一个示例,说明在提供网格和x值时如何获取y轴的可用索引:
//当给定网格和x时,用于获取y的可用索引的函数
//如果没有y可用,则返回false
常量getY=(网格,索引)=>{
const getIndex=(arr,index)=>{
如果(arr[索引]=“-”){
收益指数;
}
if(index//)只是为了使网格在console.log中看起来正常
网格[0].map((i,y)=>grid.map((i,x)=>y,x]))
.map((row)=>row.map([y,x])=>grid[x][y]);
const format=grid=>rotate(grid).map(row=>row.join(“”)。join(“\n”);
//用于为测试更改网格设置项的函数
const setItem=(x,grid,value)=>y=>grid[x][y]=值;
//7×6网格包含-
const grid=Array.from(新数组(7),()=>Array.from(新数组(6),()=>“-”));
//向网格中添加一些值
[0,1,2,3,4,5].forEach(x=>[0,1,2,3,4,5].slice(x).forEach(setItem(x,grid,“O”));
log(“网格为:”);
日志(格式(网格));
//请在请求时查看y的值
控制台日志(“测试…”);
[0,1,2,3,4,5,6]。forEach(
x=>console.log(`y是${getY(grid,x)},而x是:${x}`)
)一个小细节,通常在二维数组中,第一个括号是行,而不是列。
return i;