#优化 #18xx #用户界面 #图形 #GUI

n18io

管理18xx图块和地图的(反)序列化

1个不稳定版本

0.1.0 2021年10月8日

#6 in #18xx


用于 3 个crate(2个直接使用)

MIT/Apache

740KB
17K SLoC

Rusty Train

license crates.io docs.rs guide

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

示例用法

使用 cargo run --release 启动Rusty Train

Rusty Train

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

The 1867_bc example game

r 查找公司的最优路线。选择 大西部铁路 并点击 确定

Select a company

该公司拥有5列火车和8列火车,且不获得右侧列出的四个奖励。输入这些详细信息并点击 确定

Select trains

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

Search for optimal routes

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

Found optimal routes

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

Show a single route

d 显示股息支付

Show dividend payments

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

用户指南

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

  • 默认:选择和旋转图块,切换到其他模式。
  • 替换图块:放置和升级图块。
  • 编辑代币:将代币放置在图块上或从中移除。
  • 查找路线:识别公司的最优路线和收入。

每种模式对不同的键组合做出响应(请参阅下文各节)。

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

操作
qQ 退出
sS 保存当前地图的截图
Ctrl+nCtrl+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> 显示下一个火车路线
d, D 显示股息支付

支持的游戏

以下游戏实现了地图、瓦片和火车

  • 1830:铁路与强盗巨商
  • 1861:俄罗斯帝国的铁路
  • 1867:加拿大的铁路
  • 1889:四国铁道历史(四国1889)

许可

根据以下任一许可

根据您的选择。

贡献

除非您明确说明,否则您有意提交以供包含在本工作(根据Apache-2.0许可证定义)中的任何贡献,将如上双许可,不附加任何额外的条款或条件。

依赖项

约11MB
约221K SLoC