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

n18catalogue

定义了常见的 18xx 地图块

1 个不稳定版本

0.1.0 2021 年 10 月 8 日

#2196算法

Download history 20/week @ 2024-03-11 25/week @ 2024-03-18 40/week @ 2024-03-25 77/week @ 2024-04-01 18/week @ 2024-04-08 18/week @ 2024-04-15 24/week @ 2024-04-22 14/week @ 2024-04-29 22/week @ 2024-05-06 22/week @ 2024-05-13 23/week @ 2024-05-20 23/week @ 2024-05-27 20/week @ 2024-06-03 19/week @ 2024-06-10 15/week @ 2024-06-17 23/week @ 2024-06-24

78 每月下载量
9 个 crate 中使用 (5 直接)

MIT/Apache

275KB
6.5K SLoC

Rusty Train

license crates.io docs.rs guide

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

示例用法

使用 cargo run --release 启动 Rusty Train

Rusty Train

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

The 1867_bc example game

r 以找到公司的最佳路线。选择 大西部铁路 并点击 OK

Select a company

该公司拥有 5-train8-train,并且没有收到右侧列出的四个奖励。输入这些详细信息并点击 OK

Select trains

在搜索最佳路线时,地图被禁用并淡出

Search for optimal routes

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

Found optimal routes

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

Show a single route

d 显示股息支付

Show dividend payments

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

用户指南

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

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

每种模式都响应不同的按键组合(见下文部分)。

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

操作
qQ 退出
sS 保存当前地图的截图
Ctrl+nCtrl+N 开始新游戏
Ctrl+oCtrl+O 从磁盘加载已保存的游戏
Ctrl+sCtrl+S 将当前游戏保存到磁盘
+ 放大
- 缩小

默认模式

使用此模式选择瓦片或六边形空间,切换到其他模式以放置瓦片、放置标记和选择最佳路线。

操作
eE 切换到替换瓦片模式,选择任何瓦片
uU 切换到替换瓦片模式,选择一个升级瓦片
tT 切换到编辑标记模式
rR 切换到查找路线模式
<> 选择当前六边形的左侧六边形
<> 选择当前六边形的右侧六边形
<> 选择当前六边形的上方六边形
<> 选择当前六边形的下方六边形
任何鼠标按钮 选择光标下的六边形
,, < 逆时针旋转当前瓦片
., > 顺时针旋转当前瓦片
<退格键> 移除当前瓦片
<删除键> 移除当前瓦片
pP 更改游戏阶段

替换瓦片模式

使用此模式放置和升级瓦片。

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

编辑标记模式

使用此模式在瓦片上放置和移除标记。

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

查找路线模式

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

用户将被提示选择在地图上放置了标记的公司之一。然后,他们将被提示选择此公司的可用火车和任何相关奖励。

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

最佳路线将随后在地图上绘制,并显示最佳收入。用户可以使用箭头键循环浏览各个路线。

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

支持的游戏

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

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

许可证

根据以下之一获得许可:

由您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献,应按上述方式双重许可,不得附加任何额外条款或条件。


lib.rs:

提供图块目录,并根据18xx图块数据库定义通用图块。

概述

此模块定义了一个[Builder]类型,该类型将图块组装成目录,并提供许多预定义图块

目录定义了可以放置在地图上的图块范围及其可用性

// Construct a small catalogue of standard tiles, identified by name.
let tiles = vec![
    (Kind::_3, Availability::Limited(4)),
    (Kind::_208, Availability::Unlimited),
];
let catalogue = Builder::with_tiles(tiles).unwrap().build();

依赖关系

~8MB
~162K SLoC