js 棋类游戏 轮流走一步棋 的逻辑

gjt19910817 gjt19910817 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
要做一个比较简单的对战的棋类游戏。逻辑,算法什么的全部写在js文件里面。

现在卡在一个小问题上面了。。

两个棋手(一个是人,一个是电脑AI),一人走一步棋。怎么控制呢?

我用的是 html5 的 canvas 控件。人类走棋是在 canvas 上面点击触发 onclick 事件的函数,叫这个函数human_move() 吧。
AI 走棋就是一个 AI_move() 函数。

我现在用的方法是 在 human_move() 函数内,最后执行 AI_move()。等于是把 人类和AI 的移动全部写进 onclick 事件函数里面去了。

但是后来规则要改成,人类可以选择 先手 或者 后手 走棋,那么显然不能把 AI_move() 放在 onclick 事件里面。
我现在就想把 human_move() 和 AI_move() 写到一个主要控制逻辑里面去。

尝试增加一个 step变量, 进行计数, 单数就是人类走,双数就是AI走。每次走完,steps++。
想改成大概下面这样的形式:
while( 胜负条件... )
{
if( steps % 2 == 0 ) Human_move(); // Human_move()是onclick事件函数,这样显然不对。
else if( steps % 2 == 1 ) AI_move();
}

但是怎么弄都搞不定,老是死循环。。。

请问大家有什么思路和建议???
小弟js也是才上手几天,也不是很熟。跪谢了。


...全文

相关推荐

JS实现的走迷宫小游戏完整实例

本文实例讲述了JS实现的走迷宫小游戏。分享给大家供大家参考,具体如下: 先来看看运行效果截图: 完整实例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JS打造的走迷宫游戏</title> </head> <body> [removed] function ShowMenu

weixin_38638647

基于PHP+AJAX+MySQL的在线象棋对战系统设计与实现

在Web开发中,实现实时交互是构建动态应用的核心需求之一。其基本原理在于客户端与服务器之间持续的数据交换,传统HTTP协议的无状态特性为此带来了挑战。轮询(Polling)技术作为一种经典解决方案,通过客户端定期向服务器发起请求来模拟实时更新,在特定场景下具有显著的技术价值。这种模式特别适用于对实时性要求不高、但需要状态同步的应用,例如回合制游戏、简单聊天室或状态监控面板。AJAX技术使得浏览器能够在不刷新页面的情况下异步获取数据,是实现轮询机制的关键。结合PHP处理服务器端逻辑与MySQL进行数据持久化,

张三的忧伤

Node.js-黑白棋大师是一个安卓棋类游戏

黑白棋大师,是一个安卓棋类游戏

weixin_39840387

js焦点广告轮流展示,商城广告轮流展示

js焦点广告轮流展示,代替flash,商城广告轮流展示。

xuejiezhou

用JavaScript canvas做的走迷宫游戏,肝了一下午,请帮忙点个赞!

用JavaScript canvas做的走迷宫游戏,肝了一下午,请帮忙点个赞!

编程界小明哥
评论 20
收藏 已收藏
分享
返回顶部
gjt19910817
JavaScript 87,984 成员 224,681 内容