1个不稳定版本

0.1.0 2021年10月8日

#1450算法

每月 35次下载
5crate(4个直接)中使用

MIT/Apache

680KB
15K SLoC

Rusty Train

license crates.io docs.rs guide

构建18xx地图和识别最优列车路线的图形用户界面。

示例用法

使用以下命令启动Rusty Train cargo run --release

Rusty Train

使用 Ctrl+O 加载 1867_bc 示例游戏,该游戏位于 ./examples/output/1867_bc.game

The 1867_bc example game

r 键找到一家公司的最优路线。选择 大西部铁路 并点击 OK

Select a company

这家公司拥有一列 5-train 和一列 8-train,并且不接收右侧列出的四个奖金。输入这些详细信息并点击 OK

Select trains

在搜索最优路线时,地图将被禁用并变暗

Search for optimal routes

找到最优路线后,它们将在地图上绘制(以绿色和红色突出显示),并在窗口标题中显示净收入

Found optimal routes

使用箭头键(<Left><Right><Up><Down>)循环显示单个路线;火车名称和路线收入将显示在窗口标题中

Show a single route

d 键显示股息支付

Show dividend payments

EscReturn 返回到默认的用户界面模式。

用户指南

有四种不同的用户界面 模式

  • 默认:选择和旋转地块,切换到其他模式。
  • 替换地块:放置和升级地块。
  • 编辑代币:在地块上放置和移除代币。
  • 查找路线:确定一家公司的最优路线和收入。

每种模式都响应不同的键组合(请参阅下面的部分)。

还有全局键,在任何模式下都执行相同的操作

操作
q, Q 退出
s, S 保存当前地图的截图
Ctrl+n, Ctrl+N 开始新游戏
Ctrl+o, Ctrl+O 从磁盘加载已保存的游戏
Ctrl+s, Ctrl+S 将当前游戏保存到磁盘
+ 放大
- 缩小

默认模式

使用此模式选择地砖或六边形空间,并切换到其他模式来放置地砖、放置令牌和选择最佳路线。

操作
e, E 切换到 替换地砖 模式,选择 任意 地砖
u, U 切换到 替换地砖 模式,选择一个 升级 地砖
t, T 切换到 编辑令牌 模式
r, R 切换到 查找路线 模式
<> 选择当前六边形左侧的六边形
<> 选择当前六边形右侧的六边形
<> 选择当前六边形上方的六边形
<> 选择当前六边形下方的六边形
任意鼠标按钮 选择光标下的六边形
,, < 逆时针旋转当前地砖
., > 顺时针旋转当前地砖
<退格键> 移除当前地砖
<删除键> 移除当前地砖
p, P 更改游戏阶段

替换地砖模式

使用此模式来放置和升级地砖。

操作
Esc 返回到 默认 模式,忽略任何编辑
返回 返回到 默认 模式,保存任何编辑
o, O 如果有的话,显示原始地砖
<> 选择下一个可用的地砖
<> 选择上一个可用的地砖
,, < 逆时针旋转所选地砖
., > 顺时针旋转所选地砖

编辑令牌模式

使用此模式来放置和从地砖上移除令牌。

操作
Esc 返回到 默认 模式,忽略任何编辑
返回 返回到 默认 模式,保存任何编辑
<> 选择活动地砖上的上一个令牌
<> 选择活动地砖上的下一个令牌
<> 用下一个可用的令牌替换(如果有的话)当前令牌
<> 用上一个可用的令牌替换(如果有的话)当前令牌
0 移除当前令牌
<删除键> 移除当前令牌
<退格键> 移除当前令牌

查找路线模式

使用此模式来选择一家公司并找到该公司的最佳路线和收入。

用户将被提示选择在地图上放置了令牌的一家公司。然后,他们将被提示选择该公司可用的火车,以及任何相关的奖励。

这将启动路线查找过程;根据潜在路线的数量,这可能会花费几分钟才能完成

最佳路线将在地图上绘制,最佳收入将显示。用户可以使用箭头键遍历各个路线。

操作
Esc, Return 返回到 默认 模式
<Left>, <Up> 显示上一条火车路线
<Right>, <Down> 显示下一条火车路线
dD 显示股息支付

支持的游戏

以下游戏的地图、瓷砖和火车已实现

  • 1830:铁路和强盗大亨
  • 1861:俄罗斯帝国的铁路
  • 1867:加拿大的铁路
  • 1889:四国铁路史(四国1889)

许可证

许可协议采用以下之一

任选其一。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义,你故意提交以供包含在本作品中的任何贡献,都将如上双许可,没有任何附加条款或条件。

依赖关系

~10MB
~207K SLoC