题目
地图上有 300 个块,每个块每轮能挖出多少,只有站上去挖一次才知道。一局 200 轮, 挖到的总量减去换块费用,最高的赢。
每轮三选一
留在原地接着挖;换一个没去过的块;回到去过的某个块。
换块要花钱
每换一次扣一笔固定费用,每张地图不同,面板上会写。留在原地不扣。
你能看到什么
只有你自己挖过的块和自己的得分。没去过的块是灰色迷雾。每局地图重新随机;基础版每局开始时公布本图的产出分布属于哪一种(六种之一,见地图生成),其他参数不公布。代码里用 state.dist 读。
基础版的特点
一个块每次挖到的量是固定的,挖一次就知道它的水平。问题只有一个:试到多好就该停下来守着。
先手动玩几局找感觉,再把打法写成代码,在本页底部提交。比赛先办基础版; 加强版(每次挖到的量会波动)之后单独办,代码在两个页面之间是共用的。
地图
站过的块(按挖到的量排序,点击可回去)
累计得分
| # | 玩家 | 总得分 | 比上限少 | 换块次数 | 站过的块 | 最后站的块产出 | 它在全图里排 |
|---|---|---|---|---|---|---|---|
| 一局结束后出排名 | |||||||
四个机器人和你在同一张地图上跑,它们的走位和得分在一局结束后才公布,免得你跟着它们找好块。 "上限"是假设从第 1 轮就站在全图最好的块上、一次不换,能拿到的分数;"从不换"是开局分到哪块就守哪块,什么都不做的底线。 所有玩家"换新块"拿到的顺序相同,所以策略之间没有抽签运气,比的是在这条顺序上何时停手。
这台电脑上的对局记录
每局结束自动记一行,存在浏览器里。点"复现"用同一个种子重开一局手动,地图完全一样。
| 时间 | 种子 | 方式 | 分布 | 块 / 轮 | 你的得分 | 上限 | 你排第几 | |
|---|---|---|---|---|---|---|---|---|
| 还没有记录 | ||||||||
把你的打法写成代码
手动玩几局之后,你心里大概有一套规矩了:试多少块、多好就停、什么时候回头。
把它写成下面这个 decide 函数,每轮替你做决定。下拉框里有几个能跑的模板,
每个顶上有一两个常数,改数字就是调参;想更进一步就改逻辑。接口说明见"空白模板"。
地图的产出分布是怎么生成的,见地图生成。
练习世界的参数(正式比赛由老师另定,你改这里只影响自己练习)
写好了在下面的"提交"一节交上去。
提交
练到满意,填昵称,点"提交",代码直接交到服务器,再提交会覆盖上一份。提交前会在本场比赛的 20 个公开分站上试跑一遍:编译不过、10 秒跑不完、任何一站抛异常的都不收,会告诉你哪一站出了什么问题。 正式比赛用老师的隐藏地图和多个种子重跑所有人的代码,所以你在练习里的分数只是参考。 实时榜和正式成绩都在颁奖页。
身份码(昵称是谁的,靠它认)
这台设备的身份码:
第一次用某个昵称提交时,服务器把昵称和你的身份码绑定,别人用同一个昵称提交会被拒。
换设备时把身份码抄过去填在下面,就还是同一个人。身份码丢了就换个昵称。