陈梽銘
郑州大学 · 电子信息工程 · 大一
我想报无人机方向。下面是我暑假做的两个桌游网页,以及它们怎么把我带到了无人机这儿。
先说说我
我跟着鹏哥学 C 语言入的门,后来遇到不会的就问 AI。
我爱玩桌游,但经常凑不齐人。暑假实在无聊,就想:没人陪我玩,那我做个电脑陪我玩。于是做了两个。
SCOUT:被电脑联手针对
SCOUT 是个出牌、接牌的游戏,手牌不能调换顺序,很考验算计。我的版本支持 3 到 5 人,电脑分三档(游戏里叫学徒、艺人、团长):
次优先用贪心算法给每一步打分,但多半故意不出最好的那步,挑第二好的,像个新手,很好欺负。
个体最优假设能看到所有人的牌,把这一圈每个人会怎么接都推一遍,再挑对自己最好的。强了不少,就是有点作弊。
AI 联盟是我最得意的。线下打桌游时,谁稍微领先,其他人就会默契地一起压他,我就常被这么针对。没人商量,却像在打配合,我觉得特别有意思,就让电脑也学会了这招。
它们互相看得到对方的牌,但看不到我的。轮到一台电脑出牌时,它算的是整个联盟的账:在轮到我之前,后面一两个盟友能怎么接,联盟里领先的那个怎么才能赢我。自己少赚点也没关系。
为了确认它们真没偷看,我加了个测试:把我手里的数字全换掉,张数不变,电脑的决定一模一样。这样输了我也服气。
结果,我在自己做的游戏里,又被联手针对了。
每张牌我都改了好几遍
SEA SALT & PAPER 的 58 张牌,我全部重新设计成了折纸风,每种都改了好几版,改到自己看着舒服为止。
拿螃蟹来说,最早是几块简单的几何拼起来的。后来我做了三个方向:正面、动态、几何抽象,摆在一起比。挑中一版再细修,才变成现在这样。
第一版
点一下牌,翻到下一版
SCOUT 的牌是照原版还原的,数字朝向、圆点间距这些也来回抠了好几轮。
手机上也要顺手。SEA SALT & PAPER 的牌会跟着屏幕大小自动调整;SCOUT 做成了 PWA,能像 App 一样装到手机桌面,没网也能玩。
和 AI 一起写代码
代码很多是 AI 帮我写的,但玩法、电脑怎么想、结盟这个主意是我的。规则对不对、电脑像不像人、牌好不好看,都得我自己一局局玩、挑毛病、再改。
有一回,一张牌设计得好好的,放进网页却显示歪了,问题出在 AI 写的显示代码上。AI 看不到牌歪没歪,只能我自己发现、一点点找原因。最后我把像素位置卡死,重新上传,牌才摆正。
为什么是无人机
看到双足实验室的无人机协同搜索项目时,我愣了一下:这不就是我那几个结盟的电脑在做的事吗?
如果每架无人机都像个体最优那档的电脑,各自算自己最好的去处,很可能几架都挤向同一块最有希望的地方,别处没人管。要是像联盟那样互相通气,知道哪里搜过、同伴要去哪,算整个队伍的账,有的去补没人搜的角落,应该会快很多。
当然,打牌和飞无人机差得很远,图像识别、定位、飞控我都还没碰过。但一群机器怎么商量着把事做好,这个问题我很想接着琢磨。
最近在学
算法最后要跑在真的硬件上,光会做网页不够,所以我在学 STM32 单片机仿真。用的还是 C 语言,鹏哥的课又派上用场了。