一种益智游戏排序算法

问题描述 投票:0回答:1

游戏示例

游戏行为

我正在制作一个排序益智游戏。

游戏逻辑:

有 3 堆坚果,还有 1 堆空堆。

要获胜,玩家需要将所有相同颜色的坚果放在牛排上。

游戏规则: 只能移动每叠顶部的螺母。 一个坚果可以移动到另一个相同颜色的坚果之上 坚果可以在空堆中移动。

对于我的项目,我为每一堆分配了一个颜色的坚果。然后,我“随机”地将它们在所有堆栈之间洗牌。经过一些测试,12 个关卡中有 4 个关卡无法解决。根本没有可能的行动。 当前代码:

private void ShuffleChips(List<Column> columns) { List<ChipData> allChipData = new List<ChipData>(); foreach (Column column in columns) { for (int i = 0; i < column.Chips.Count - 1; i++) { allChipData.Add(column.Chips[i].Data); } } allChipData = allChipData.OrderBy(_ => Random.value).ToList(); int dataIdx = 0; foreach (Column column in columns) { for (int i = 0; i < column.Chips.Count - 1; i++) { column.Chips[i].Assign(allChipData[dataIdx++]); } } }

可视化图像描述在这里

所以,问题在于洗牌。

我可以使用什么算法来确保关卡 100% 可解决?

c# algorithm game-development unityscript
1个回答
0
投票

© www.soinside.com 2019 - 2024. All rights reserved.