中国象棋插件
-
更新啦~(≧▽≦)/~
版本v1.1
插件地址: ChineseChess这是一个用java写的中国象棋插件
效果展示
功能介绍
如何使用
项目地址效果展示
红黑方视角
1.黑方"士6进5"行棋完毕,出现黑方走子提示。当前该红方行棋,所以棋盘是红方视角。
2.红方"炮8进7"行棋完毕,出现红方走子提示。当前该黑方行棋,所以棋盘是黑方视角。
棋盘和棋子风格
3.支持棋盘风格,棋子风格的切换(需要对应素材)。目前上传了几款棋盘风格,可以在imgae/map/文件夹下查看3.1 花时舞者-神里凌华
3.2 清凉夏日-猫羽雫
注:双方的棋盘和棋盘风格是独立的,棋子和棋盘也可以任意搭配
别急,看看下面再走啊
功能介绍
目前完成了基本的中国象棋功能,需通过标准命令(棋谱命令)行棋双人棋和四人棋(联棋),多人棋
盲棋
开启盲棋功能则不发送图片,改为发送文字提示,盲棋功能可随时关闭其他功能:悔棋,认输,换人,掀棋盘等
注:考虑到难度与性能问题,暂时没有绝杀判断,需要吃掉对方的将帅或者认输才能判定输赢插件地址: ChineseChess
克隆: git clone https://github.com/BigCherryBall/ChineseChess.git
-
可不可以加个在别人下完后,艾特下一个人下
-
@lunailoli 现在还有一些功能,比如换棋盘,交接棋手等没有做完,等做完后可以考虑设置一个等待队列。话说,真的有人排队用机器人下棋吗。。
-
@樱桃大丸子 不是我的意思是,我走完这步后机器人艾特另一个人说该你走了,因为有人下棋很慢,我走完一步艾特别人提醒别人该你动了。
-
@lunailoli 这个需求可能没法做,每一步就艾特一下别人会很烦的。如果下棋的人没空,那还下啥棋呢。
-
说明书没写怎么1v1...
-
此回复已被删除! -
一人一手在群里下象棋太麻烦了,建议加入万宁象棋大招版设定,5招以内分胜负,这样群友才有下的动力。。
-
更新了
-
我发现当一列有两个炮的时候指令进会不可用(
-
Linux上好像用不了
-
@qiuyuntao 启动日志看看呢
-
@XINHai 标准棋谱哥们,相同棋子在同一列的时候,应该用前后。。比如:前炮进2
-
@BigCherryBalls 启动没报错但发中国象棋和联棋那西报错java.lang.ExceptionInInitializerError
at ChineseChess-0.1.1.mirai2.jar//ChineseChess.Adaptor.EveryChess.<init>(ChessAdaptor.java:70)
at ChineseChess-0.1.1.mirai2.jar//ChineseChess.Adaptor.ChessAdaptor.answerChangeChess(ChessAdaptor.java:869)
at ChineseChess-0.1.1.mirai2.jar//ChineseChess.Adaptor.ChessAdaptor.newChess(ChessAdaptor.java:240)
at ChineseChess-0.1.1.mirai2.jar//ChineseChess.Adaptor.ChessAdaptor.cmd(ChessAdaptor.java:220)
at ChineseChess-0.1.1.mirai2.jar//ChineseChessMain.ChineseChess.lambda$start$0(ChineseChess.java:52)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$2$1.invoke(EventChannel.kt:605)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$2$1.invoke(EventChannel.kt:605)
at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:51)
at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1)
at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:43)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
Caused by: java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
at java.base/java.util.Objects.checkIndex(Objects.java:385)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at ChineseChess-0.1.1.mirai2.jar//ChineseChess.Core.ChessControl.<clinit>(ChessControl.java:74)
... 18 more