游戏中心
连续整数记录怎样用差值和变长字节保存:规则验证第13组
角色坐标或计数记录相邻变化较小时,先存变化量再用短字节表示,可能比每次存固定宽度整数节省空间。节省与否取决于数据,变化很大时也可能需要更多字节。本例采用的规则本例首值相对零求差,之后相对前值求差。非负...
查看二维地形的低洼格怎样找到最低排水高度:独立算例13
二维地图中的低点能否排水,取决于通向边界的整条路径,而不是仅看相邻哪格更低。一个看似低的出口后面仍可能有更高的山脊,把水留在内部。规则与边界本例五乘五格子,只允许上下左右连通,边界外可排水。每格的排水...
查看双方都有偏好时怎样形成没有私下换伴动机的配对:状态推演第13例
游戏中的搭档分配可以同时考虑两侧偏好,而不是只最大化某个总评分。稳定配对要求不存在一对未匹配的双方,都更想选择彼此而不是当前搭档。先把规则写清楚两侧各五个角色,每人给另一侧完整且无并列的偏好顺序。由左...
查看包住一组角色位置的最小圆由哪些点决定:机制演算第13例
用一个圆同时包住多个位置时,平均坐标未必是最省半径的圆心。最小包围圆通常由边界上的两个或三个点约束,内部点不会继续把半径撑大。本例在平面中给出八个不同点。候选圆包含每对点作为直径两端的圆,以及每组三个...
查看紧凑数组删除对象时为什么会改变另一对象的位置:独立观察第13例
为了让活动对象连续存放,可以在删除某项时用最后一项补上空位。这避免搬动整段数组,但会让被搬来的对象改变位置,所以必须同时维护编号到位置的对应表。对象编号为零至十一。紧凑数组按当前存放顺序保存编号,索引...
查看通道各有运输上限时怎样求整个地图的最大流量:规则练习第13例
多条路线可以同时运送物品,但共享某条通道时总量仍受它的容量限制。把每条路线的瓶颈直接相加,容易把共享通道重复使用。起点为房间零,终点为房间五,有向通道容量为整数。每次沿仍有剩余容量的路径增送瓶颈值,同...
查看透视画面中距离翻倍为何会让同样物体变小:独立演算第13例
在简单透视镜头中,横向位置和物体尺寸都要除以深度。只把远处物体颜色变淡,却保持同样的投影尺寸,不符合这个几何模型。镜头朝正深度方向,屏幕中心为横160、纵120,焦距f用像素表示。三维点投影为横160...
查看大地图移动坐标原点时怎样避免物体跳动:十三次长地图移动的原点平移(实例13)
长距离移动时,可以让世界坐标保持不变,同时改变用于展示的局部原点。这样玩家附近的坐标会变小,但所有物体都必须使用同一次原点平移。先固定规则与数据演示只使用一维整数坐标。局部位置等于世界位置减原点;玩家...
查看任务排队时等待时间和处理时间怎样分开:十二项任务的队列时间分解(实例13)
任务到达后可能先排队,再由执行器处理。只看结束减到达的总时间,会把等待与实际工作混在一起,难以判断卡顿来自队列积压还是单项任务本身。固定规则与输入只有一个执行器,按到达时间排序,同一时刻到达时按编号排...
查看