顾客怎么决定点什么
一道菜在菜单上、也有货,某个顾客群体却可能一单都不点。这要从顾客怎么选说起。1
每个顾客都属于一个顾客群体,游戏给同一道菜按群体分别打分。顾客出门吃饭要做两个选择:先选去哪家店,再选在店里点什么。1,2,3
第一步:选店
想出去吃饭的顾客只看自己当前所在地区的店铺。一家店要被考虑,得同时满足:1,4,5
- 菜单不为空;
- 正在接待新顾客:做菜和服务的店员都在班(即两者上班时间的重叠时段),并且距离这个时段结束还有超过 1 小时;
- 有空座位。下雨或暴雨的日子,顾客只坐有遮挡的座位(在屋顶下,或桌上有遮阳伞),除非饿得厉害。下雪不限制座位:光是下雪,不会让顾客只找有遮挡的座位。
符合条件的店各得一个权重:这位顾客所属群体对该店的人气,加上一个距离修正。店就在旁边时修正为 +0.1,越远越低,足够远时为 −0.1。
权重为 0 或更低的店不会被选中;其余店被选中的概率与权重成正比。人气怎么算见人气。
示例菜单
这位顾客选中的店有下面这份菜单,四样单品都有货。分数是为举例编的:它们是某个顾客群体按你的菜单售价,对每样单品的满意度,满分 100。1,2,3
| 单品 | 类别 | 该群体的分数 |
|---|---|---|
| 一份面条 | 菜 | 92 |
| 一瓶汽水 | 饮品 | 80 |
| 一份炒饭 | 菜 | 75 |
| 一碗汤 | 菜 | 61 |
第二步:哪些单品能被点
顾客把所有有货的单品放在一起比,菜和饮品不分开。最高分定下一条分界线。一样单品要有货,并且比有货单品的最高分低不到 30 分,才可能被点。下面把这些单品叫作候选单品。正好低 30 分的单品不算候选。1
| 单品 | 分数 | 比最高分低 | 是候选吗? |
|---|---|---|---|
| 一份面条 | 92 | 0 | 是(最高分) |
| 一瓶汽水 | 80 | 12 | 是 |
| 一份炒饭 | 75 | 17 | 是 |
| 一碗汤 | 61 | 31 | 否 |
候选单品 = 有货且(有货单品最高分 − 该单品得分)< 301
汤比最高分低 31 分,所以这个群体完全不会点它。别的群体给汤的分数可能不一样。
第三步:选一样单品
顾客从候选单品里随机选一样,每样机会相同。在这个例子里,面条、汽水、炒饭各占这个群体三分之一的选择。比最高分低 29 分的单品,被选中的机会和最高分的那样一样大。1
第四步:可能再加一杯饮品
选中的是菜,顾客有 80% 的概率再从候选饮品里随机加一杯;选中的是饮品,这一单就只有这杯饮品。所以不管菜单多长,一单最多一道菜加一杯饮品。1
这个例子里,汽水是唯一的候选饮品。这个群体平均每 15 单里,5 单只点汽水,5 单点面条,5 单点炒饭。这 10 单点菜的订单里有 8 单会再加汽水。所以 15 单里有 13 单含汽水,每道菜各 5 单。饮品还会被加进点了菜的订单,所以可能比任何一道菜卖得都多。
一杯饮品也可能挤掉所有菜。如果某群体给一杯饮品的分数比每道菜都高 30 分或更多,这个群体的顾客只会点饮品。
最好的单品卖完时
分界线由有货单品里的最高分决定,所以卖完会挪动分界线。面条卖完后,汽水(80 分)成了最高分。汤现在只比最高分低 19 分,不到 30 分,于是重新成为候选。汽水、炒饭、汤各占三分之一的选择。1
改价时
分数按你的菜单售价算,所以改价会改变分数,可能让单品成为候选或掉出候选。假设面条还有货时,一次改价让这个群体给汤的分数从 61 升到 63。汤就只比最高分低 29 分,重新成为候选。详见菜品满意度与价格断崖。1,2,3
没有单独的预算检查。价格超出某群体预算的单品,只要比有货单品的最高分低不到 30 分,照样是候选。1,3
这里没讲的
顾客多久出门吃一次饭不在这条规则里,我们也还没有在游戏代码里查清楚。
在本站
来源
正文里的数字对应下面的来源,点数字可以跳过去。
来自游戏代码
来自游戏数据(版本 25680465)
- ↑各种天气的雨量和雪量