4 个版本
0.1.1 | 2023 年 2 月 11 日 |
---|---|
0.1.0 | 2023 年 2 月 10 日 |
0.0.1 | 2023 年 1 月 25 日 |
0.0.0 | 2023 年 1 月 25 日 |
877 在 游戏开发 中
36KB
427 代码行
NimLib
A Rust 库用于 Nim 游戏:计算 nim 值和可能的走法
一个名为 Nim 的游戏
Nim 指的是一系列(数学/策略)游戏,其中两名玩家轮流从硬币堆中移除硬币。最后合法走法的玩家获胜。
每个 Nim 游戏都由一组规则组成,这些规则定义了在单次移动中可以从堆中移除多少枚硬币。每次移动恰好影响一个硬币堆,可能需要将堆分成两个非空堆。
一种名为 Poker-Nim 的 Nim 版本,其中添加了硬币池,移除的硬币被保留在玩家的池中,如果规则允许并且玩家希望,可以在未来的走法中使用。
关于库的介绍
该库计算给定高度的堆的 nim 值和给定位置的可能的走法。
Nim 值
堆的 nim 值 可以被认为是一种分数或评估,用于评估当前位置对即将走动的玩家有多好。
请参阅 nimlib::nimbers
模块中的计算 nim 值的函数。
0 nim 值表示即将走动的玩家没有获胜策略,将输掉游戏,无论他们走什么,只要对手采取最优策略。
相反,大于 0 的 nim 值表示即将走动的玩家有获胜策略,无论对手如何走,只要采取最优策略,他们将赢得游戏。
走法
nimlib::moves
模块提供了计算给定位置的可能的走法的函数。
位置简单地指的是一堆栈的列表/集合,位置的数量是位置中各个栈的nimber的异或和,关于整个位置获胜条件的规则与单个栈的规则相同。
许可证
版权(C)2023 @Tanja-4732
NimLib 是免费软件:您可以在自由软件基金会发布的 GNU Lesser General Public License 的条款下重新分发它和/或修改它,无论是许可证的第 3 版,还是(根据您的选择)任何后续版本。
NimLib 的分发是希望它将是有用的,但没有任何保证;甚至没有关于其商誉或特定用途的暗示保证。有关更多详细信息,请参阅 GNU Lesser General Public License。
您应该已收到与 NimLib 一起提供的 GNU Lesser General Public License 的副本。如果没有,请参阅 https://gnu.ac.cn/licenses/,特别是 https://gnu.ac.cn/licenses/lgpl-3.0.html。
依赖项
~0.4–1MB
~23K SLoC