设计一种通过面部表情显示棋子状态的围棋棋盘游戏系统
扫描二维码
随时随地手机看文章
1. 介绍
1.1这是什么?
这是一个围棋棋盘游戏系统,我将其命名为“EmoGo / Emotional Go”。两名棋手轮流在没有电脑辅助的情况下放棋子。第一个玩家放黑色的石头,第二个玩家放白色的石头。每个围棋棋子都会根据自己的状态显示面部表情,这样就很容易评估整个游戏情况。即使是不熟悉围棋规则的人也可以通过这些视觉线索轻松理解游戏。
图1
我的灵感来自网页游戏《SquishyGo》(图2)。在《SquishyGo》中,你可以用鼠标在网页浏览器上放置围棋棋子。我觉得如果我们能触摸围棋棋子会更有趣,它们有面部表情,所以我做了这个。
图2:游戏中的SquishyGo。(c) 2023 puyogo.app
1.2等等!Go是什么?
围棋是一种基于地域的游戏。在职业围棋中,获胜者取决于被自己的棋子包围的区域的大小,在没有棋子的地方。然而,EmoGo遵循“纯围棋”的规则,即根据每个棋手在棋盘上的棋子数量来决定胜负。玩家只能放置石头;一旦放置,它们就无法移动。两名玩家最终会在棋盘上拥有相同数量的石头。然而,如图3所示,有特定的情况:如果围棋棋子完全被对手的棋子或棋盘边缘包围,则必须将其移除。在EmoGo中,获胜的关键是移除对手的棋子,同时确保自己的棋子留在棋盘上。
图3:黑石将被移除。
1.3改变围棋棋子的面部表情有什么效果?
当棋子被对手的棋子包围时,它们会显示出一张哭脸(图4)。一张哭脸的棋子被称为“死石”,必须从棋盘上移走。在传统的围棋游戏中,玩家经常会忘记移除死石,但在这个游戏棋盘系统中,如果你在移除所有哭脸围棋石之前尝试放置一个新的围棋石,任何新放置的石头也会显示哭脸,游戏将无法进行。这确保了所有的“死石”被移除时不会出现任何错误。
图4黑石带哭脸表情
如果棋子在对手下一步棋时变成死石,那么它就会露出一副不安的表情(图5)。如果你的棋子露出这种表情,那就意味着你有麻烦了。你必须决定是保存这些石头还是放弃它们。在这个游戏棋盘系统中,围棋棋子的表情表明了游戏状态对你是有利还是不利。随着你对围棋越来越熟悉,你可以采取行动来防止你的围棋棋子显示出这种困惑的表情。换句话说,围棋棋子上的表情帮助棋手理解围棋规则,使他们能够发展基本的战术思维。
图5黑石面带困惑表情
2. 系统结构
系统总体结构如图6所示。
图6系统结构
每个模块由以下几个部分组成:
游戏控制器x1(图7):该设备管理整个游戏。它通过CAN与围棋棋盘模块通信,检测棋子的位置,并指示棋子上应该显示哪些面部表情。
•树莓派4 2GB
•树莓派7英寸官方触摸显示屏
•WAVESHARE 2通道隔离CAN扩展帽树莓派
图7游戏控制器
棋盘模块× 25(对于5x5棋盘)(图8):围棋棋盘上的每个网格都是一个模块。当围棋棋子被放置或敲击时,它会通知游戏控制器,并根据游戏控制器的指示显示围棋棋子上的面部表情。
•Seeed Studio XIAO RP2040
•MCP2515 CAN控制器
•MCP2652 CAN驱动
图8游戏板模块
Go Stone x25(对于5x5的棋盘)(图9):每颗棋子在放置或敲击时通知其棋盘模块,并根据从棋盘模块收到的指令改变其面部表情。
•eeed Studio XIAO RP2040
•圆形显示为种子工作室肖
图9
3. 突出
这个项目集成了多种通用技术,而不是专注于一种特定的技术。在本文中,我将解释这个系统的独特之处。
3.1可伸缩性
这个系统最初是用5×5板创建的,但可以很容易地适应其他尺寸,如7×7, 9×9或6×8。所有Go板模块都设计为连接到单个CAN总线,并且可以在总线电气特性的允许范围内添加。每个Go板模块尺寸为50mm × 50mm,其母线和电源线使用引脚头和引脚插座连接成菊花链,可以将多个模块连接在一起。
辅助板用于连接Go板的上下两端的母线和地,使模块呈方形配置。电源也通过这些辅助板提供。连接在顶部和底部方向的辅助板将电源线分开,从而可以限制提供给Go板模块的每个水平行的电流。一个带有围棋石的围棋板模块需要大约100mA的电流。在这种实现中,电源被分成三条线,每条线能够处理高达1A。
3.2同步
我想要实现的一个关键功能是同步闪烁:当一个Go石头被点击时,所有连接的石头(包括被点击的那个)都会同时闪烁。由于每块石头都需要改变外观或眨眼,所以它必须与游戏管理设备进行交流。挑战在于如何有效地实现这种同步。
虽然无线通信可以广播,但由于在展览场地可能受到干扰,我没有使用它。我考虑了几种有线通信协议:SPI, I2C, RS485和CAN。由于广播通信的限制,SPI和I2C被淘汰。虽然RS485支持与单板模块的单独和广播通信,但它需要实现自定义协议。这个额外的处理可能会使RP2040负担过重,从而可能导致同步问题。
最后,我选择了CAN协议,因为它的控制器可以本地实现个人和广播通信。这种选择减少了RP2040上的处理负载,并将同步问题最小化。虽然为每个板模块配备MCP2515 CAN控制器会增加当前的成本,但我们预计未来将通过用XIAO RA4M1取代XIAO RP2040来降低成本,这将消除对单独CAN控制器的需求。
每个单板模块根据其位置分配一个唯一的XY ID。使用此ID,通过以下CAN ID处理通信:
•0x4XY:游戏控制器发出指令,指示围棋石改变面部表情或准备眨眼
•0x6XY:当围棋棋子被放置、移除或敲击时,从棋盘模块发送给游戏控制器
•0x1FF:广播到所有准备闪烁的石头,触发它们同时闪烁
例如,要使编号为0x12和0x14的石头闪烁(如图10所示),其过程如下:
•游戏控制器向编号为0x12和0x14的石头发送0x02FF消息,使这些棋盘模块进入闪烁状态。
•然后游戏控制器广播消息0x1FF03FF(开)和0x1FF0300(关)。只有处于blink-ready状态的单板模块(0x12和0x14)响应这些命令,其他模块都忽略这些命令。这使得同步眨眼只是选定的围棋石头。
这种交流机制确保了眨眼的无缝发生,避免了玩家出现任何明显的同步延迟。
图10、闪烁信息
3.3热插拔Go石
围棋板模块使用GPIO检测围棋石的存在。板模块上的GPIO被拉起并通过中断监视变化。当GPIO状态为HIGH时,表示没有stone存在;当为LOW时,表示已经放置了一个石头。
当引脚插座连接时,电源供应给Go石。然后,stone模块初始化其显示和其他必要的组件。初始化完成后,Go石将其GPIO设为LOW,向板模块发出已放置石的信号。
当放置和移除围棋时,可能会产生类似于抖音的瞬态噪声。为了缓解这种情况,板模块通过检测高到低和低到高转换来处理GPIO中断。初始状态改变后,系统等待500 ms,然后重新检查GPIO状态,以确认石头是否真正放置或移除。在此等待期间,任何GPIO更改都将被忽略。
这种方法确保了可靠和稳定的检测围棋石附着和脱离。
3.4 Go Stone设计和销头
Go宝石是圆柱形的,在它们的底部有连接的销头。外壳的设计是为了保护用户的手指不受别针的伤害。销头从中心偏移,防止放置时方向不正确。
引脚头开口呈45度角,便于连接到电路板模块(图11)。这种设计允许界面自然对齐,因为石头在放置过程中旋转。当放置石头时,引脚插座与板模块平滑啮合,在连接过程中产生石头被轻轻“拉入”的感觉。
图11围棋的底部。
4. 讨论
4.1物联网的理想形态
物联网未来的一个愿景是,环境变化被记录在网络中,物体会做出相应的反应。在这种情况下,即使是一个简单的围棋石头也会成为网络连接,能够传达其状态并对变化做出反应。这个项目展示了“万物相连的世界”的概念。
展览参与者提出了与这一愿景一致的见解,表明将众多日常物品纳入物联网可以为游戏和创意领域开辟新的可能性。
4.2物理交互
虽然很难量化,但展会参与者的反馈显示了与网页游戏的明显差异。虽然游戏可以通过浏览器和鼠标玩,但处理物体的触觉体验提供了实时反馈,为游戏体验增添了重要的维度。
目前,围棋棋子的表情只会根据游戏状态而变化。然而,如果系统能够检测到玩家如何处理石头,并将这些互动反映在石头的反应中,它便能够提高玩家的粘性和情感联系。这表明在物联网支持的游戏体验中,更深层的物理和情感融合是有希望的。
本文编译自hackster.io