Project1

标题: 五子棋插件 [打印本页]

作者: 245789515    时间: 2017-5-7 21:50
标题: 五子棋插件
本帖最后由 245789515 于 2018-3-9 14:07 编辑

2018.1.12/

有人给我留言了bug,我修复了一下orz 玩家赢了之后电脑会继续下的问题

更新了点UI部分,现在加上我画师的加持,效果如图。左右两侧的纸条背景是可选项orz,最基本的图是棋盘+棋子。



更新了个小东西,落子音效orz。可以在这里下载res.kongjing12.com/data/KJ_Gobang.zip

嗯,一个菜的抠脚的计算机学子,不久之前入了rpg mv的坑,然后把大一的五子棋AI作业改成了插件。(可能也许有bug?可以联系我修复,目前看来可以正常运行)



效果图在2.3L,orz,之前不知道这里可以编辑,效果图里面我是乱下的,所以电脑直接就4/5子了,我的水平和电脑level4差不多orz,我比较菜吧,大佬们都在花式虐我的电脑。


小游戏五子棋。(该五子棋采用AI是大一的c语言作业,所以智力有限)

使用说明:

img文件包含了棋盘和棋子,可以自行替换图片。(现在有点丑,之后会更新的更好看些)

参数说明:

VariableId参数是,下棋结束后会修改的游戏变量,1为胜利,2为失败。

CancelText参数,放弃显示的文字。

RegretEnable参数,是否允许悔棋

Level参数,难易度,最低1,5~6比较合适,再高的话电脑下棋会感觉的到有点延迟。

Size * Size是棋盘的像素大小,棋子和选中框像素宽高均是Size除15。

图片均可自行替换,但不要改名字(改名字也可以,修改相应代码orz)。

使用方法:

插件命令Gobang Level RegretEnable,如

Gobang 1 true
//将会以最简单难度且允许悔棋进行游戏

嗯 图形界面,目前写的不是很好,有简易的话我可以改,有什么想法联系我,我都可以去改。

接下来的目标是写黑白棋。(之前没写过,可能比较久2333)


KJ_Gobang.zip

1.16 MB, 下载次数: 988

v1.04


作者: 245789515    时间: 2017-5-7 21:52

这是之前的效果图。
作者: 245789515    时间: 2017-5-7 22:12


这是找人帮忙做了棋盘之后的样子
作者: 172229104    时间: 2017-5-7 22:56
赞!漂亮!我的小妹好厉害!
作者: garfeng    时间: 2017-5-7 23:40
本帖最后由 garfeng 于 2017-5-7 23:42 编辑

还有找迷宫和多项式,以及带括号的四则运算。。。

==========

顺便吐槽一下前段时间来我公司面试的计算机系学子(今年的应届毕业生),他说自己用html+js做了个五子棋,
我问他算法流程具体是怎样的,他说:
算法还没搞出来,只实现了把棋子的图片移到棋盘上的功能
我当时就ri了狗了。

楼主一定是真学霸,不要太谦虚。
作者: 245789515    时间: 2017-5-8 00:05
本帖最后由 245789515 于 2017-5-8 00:09 编辑
garfeng 发表于 2017-5-7 23:40
还有找迷宫和多项式,以及带括号的四则运算。。。

==========


带括号的四则运算,是类似二十四点吗?

and五子棋那个是大一的C语言作业啦,全部都写了,还互相比赛AI的下棋水平的,我的只能算中等,比随便做的人好,比大腿们的差。

唔,那个人也太不用心了吧orz。五子棋的算法要简单实现的话只是繁琐,并不难啊orz。
作者: 明智光秀    时间: 2017-9-2 11:04
LZ为什么地址还是旧版本的UI,也没有音效
作者: walf_man    时间: 2017-9-3 13:45
相当强大了,只能说是支持支持在支持
作者: Fan723    时间: 2017-12-18 15:00
@245789515 不知道作者还有时间回来看看。
这个小游戏发现两个BUG:
1.按我的小屏幕游戏里右边的UI显示不出敌我双方的使用棋子,
我试过修改这两个位置变量也不行:
this._messageWindow2.contents.blt(bitmap1, 0, 0, 50, 50, width/2-40, height/4-25, 50, 50)
this._messageWindow2.contents.blt(bitmap2, 0, 0, 50, 50, width/2-40, height/4*3-25, 50, 50)
2.玩家下赢了电脑会耍赖,当不小心点到棋盘时电脑还会继续下,直到电脑下赢为止,这个应该不是人工智能吧?
作者: 245789515    时间: 2018-3-9 13:35
Fan723 发表于 2017-12-18 15:00
@245789515 不知道作者还有时间回来看看。
这个小游戏发现两个BUG:
1.按我的小屏幕游戏里右边的UI显示不出 ...

惊,还是显示不出来吗。。我测试过小屏幕来着。。。我去收拾
作者: 245789515    时间: 2018-3-9 14:09
明智光秀 发表于 2017-9-2 11:04
LZ为什么地址还是旧版本的UI,也没有音效

音效是自己在插件设置里设置的呀。。。
UI也是你自己去替换图呀。。。
orz 我后来图片里换的UI是找美工画的,我又不会画画
作者: stickman30    时间: 2018-5-4 12:46
想要询问一下,是否能有办法输出VariableId值,让我们能在游戏中侦测输赢,以便给予奖励或者惩罚? (((这样可以有更多的互动性~
作者: 白嫩白嫩的    时间: 2018-5-4 14:16
stickman30 发表于 2018-5-4 12:46
想要询问一下,是否能有办法输出VariableId值,让我们能在游戏中侦测输赢,以便给予奖励或者惩罚? (((这样 ...

不认真看帖子

参数说明:

VariableId参数是,下棋结束后会修改的游戏变量,1为胜利,2为失败。
作者: stickman30    时间: 2018-5-4 19:10
本帖最后由 stickman30 于 2018-5-4 19:11 编辑
白嫩白嫩的 发表于 2018-5-4 14:16
不认真看帖子

参数说明:


不不不,我有看过帖子啊,否则我怎么会知道VariableId是表输赢? 是你没看清楚我的问题「我是问有没有办法 ""输出"" VariableId值」。
如果你还是听不懂我的问题,我就问你,在RMMV你能直接用VariableId当变数吗? 不行吧? 所以你需要把VariableId导入到游戏中,才能用RMMV的变数系统存取他,对他进行操作对吧? 问题就是,怎么把VariableId导进RMMV的变数系统中运用~这才是我的问题所在~XD
作者: stickman30    时间: 2018-5-4 23:14
(因为尚无法使用点评功能,只能使用回复,请见谅)
我有尝试使用脚本,不过失败了,我看见作者有在.js档里有$gameVariables.setValue(KJ.Gobang.Param.VariableId, 1);这样的命令,可是我很纳闷,我记得这个指令的原型是$gameVariables.setValue(var, value); var值应该是变数的代码,value是要设定给var的值。
因此把var值填入KJ.Gobang.Param.VariableId的情况下,我不太知道该如何取出他(因为它不是RMMV中的变数代号)。

我也尝试过在显示文字中打入\V[KJ.Gobang.Param.VariableId]也是不成功的,依旧取不出VariableId值。
作者: stickman30    时间: 2018-5-4 23:54
本帖最后由 stickman30 于 2018-5-5 00:00 编辑

感觉我们有点鸡同鸭讲...哈哈...我的问题有这么难理解吗? XDD
好,没关系,我从头到尾,完完整整的,再说一次我的问题,可能是我说的不够清楚。 XDD

现在的VariableId参数,那是插件本身.js档「内部」在使用的,我们从RMMV的剧情(事件)编辑器里,是抓不到VariableId的,不论是使用条件分支,或是控制变数等等,都不可能能够找到一个变数称之为「VariableId」,变数只会是0001、0002、0003等等,对吧?
 
换句话说,VariableId只在插件的.js档内部被使用,而剧情(事件)编辑器是无法存取VariableId的。即便使用插件管理器,也只能更改VariableId的预设值,却依旧无法把VariableId值拿来放入条件分支使用的。
在这样的情况下,我们就做不出「赢得棋局时,给予勇者10金奖励」等等类似的效果了。

基于以上问题,所以我才会询问,要如何将插件内部的参数VariableId值,导入到剧情(事件)编辑器中,供条件分支或是设置变数使用?

作者: 芯☆淡茹水    时间: 2018-5-5 17:59
stickman30 发表于 2018-5-4 23:54
感觉我们有点鸡同鸭讲...哈哈...我的问题有这么难理解吗? XDD
好,没关系,我从头到尾,完完整整的,再说一 ...



不需要你具体找到它,比如上面设置变量ID是10, 小游戏结束后,这个变量10的值就是这场小游戏的得分了。
直接在事件里判断或使用这个游戏变量就行了。
比如在对话框显示出得分:  事件 - 对话: 游戏得分 \V[10]。

如果插件像你说的那么难用,还要在脚本里寻根寻源的,那谁还用它?!

确实是鸡同鸭讲,所以还是建议多去找点MV的基础来学习下。
作者: stickman30    时间: 2018-5-5 20:57
首先,我感谢所有耐性回覆我的前辈们~
虽然我不是第一次使用插件,不过这次的发问,是源起于对于说明文件的语意误解。不过,我已经想通了,这边再一次感谢愿意回覆我的大大们。
=====================================
下面会解释本次误会。我必须澄清,我绝对看过作者的说明文件不下三四次,也看过网路上的插件基础教程,也实际使用过许多插件,并非一个全然的入门者。

然而,大部分遭遇的插件中,在插件管理器直接设定某参数"VariableId"为1。则意味着 VariableId=1。 (经常为设定true or false之用,或是某些初始值,在此案例中,就是输或赢。)

但是此案例中,当设定参数"VariableId"值为1时,并非意味着「VariableId=1」,而是较为复杂间接的「VariableId=1(赢)或2(输),且1号变数=VariableId 」之意。

((((若没有前辈的解说,任我在怎么认真看过说明文件,压根也想不到他的意义是较为间接的后者。感谢之余,我也必须致上抱歉。
作者: gao0022    时间: 2018-6-14 09:40
这种帖子不赞,没有天理, 希望加入禁手控制
作者: dongdongdjh    时间: 2018-6-29 15:05
很厉害 点赞
作者: 火心    时间: 2018-7-8 12:15
本帖最后由 火心 于 2018-7-8 12:18 编辑

先下了,也许以后会用到,非常感谢。
作者: 幻想丶时    时间: 2018-10-5 14:24
想问一下,能不能获得胜利条件,如何如果赢了给什么东西,输了不给东西??
作者: 幻想丶时    时间: 2018-10-7 13:48
本帖最后由 幻想丶时 于 2018-10-7 14:22 编辑
幻想丶时 发表于 2018-10-5 14:24
想问一下,能不能获得胜利条件,如何如果赢了给什么东西,输了不给东西?? ...

已经搞定,多谢
作者: 2283258119    时间: 2018-12-17 15:04
好棒啊!多谢楼主分享!
作者: 1204069360    时间: 2019-1-25 17:50
如何可以使得胜利会触发剧情或获得奖励,而输了则没有?
作者: 1204069360    时间: 2019-1-25 18:23
幻想丶时 发表于 2018-10-7 13:48
已经搞定,多谢

教我一下怎么搞定的,我也想搞个胜利奖励出来
作者: 白嫩白嫩的    时间: 2019-1-25 18:52
1204069360 发表于 2019-1-25 18:23
教我一下怎么搞定的,我也想搞个胜利奖励出来

插件设置变量x 胜利为1 失败为2

分歧判断,当变量x=1时

弹出窗口 恭喜玩家小土鳖获得臭袜子

获得道具 臭袜子 作为奖励

添加se 当得了当当当~~~
作者: 1204069360    时间: 2019-1-25 21:41
白嫩白嫩的 发表于 2019-1-25 18:52
插件设置变量x 胜利为1 失败为2

分歧判断,当变量x=1时

懂了,谢谢
作者: yinzord    时间: 2021-5-3 23:31
本帖最后由 yinzord 于 2021-5-3 23:32 编辑

十分感谢作者的分享,感觉这个黑兔白兔的五子棋小游戏已经成为很多游戏的热门必备了2333

不过有一个小问题,在把棋盘快下满的时候,在对手下棋的一瞬间偶尔会出现报错,不管有没有悔棋都会报错

但毕竟已经好几年了...作者大大不一定有时间修复了,所以就当给后来的朋友提个醒! bug对应插件版本:1.04


作者: ymzwal    时间: 2021-5-8 09:45
哈哈 好像很有意思的样子
作者: RyanYe    时间: 2021-5-16 21:51
有个问题
相同的难度下
电脑的走法是不是一成不变的?
作者: 911503980    时间: 2022-2-14 21:11
用了答主的光标美化插件后,下棋就不显示鼠标指针了,应该是个bug 希望小姐姐可以及时修复下哦,谢谢,我这边也会去网上给查资料的
作者: dall01    时间: 2022-2-28 20:05
感谢分享




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1