这个问题对于 SO 来说并不是那么理想,但是,我发现它真的很有趣。因此,如果我必须设计这样的游戏,我会提出我的一些想法。
这是一个基于关卡的游戏,在不同的关卡中会产生不同的棋盘图案。因此,如何设计模式以将其转换为电路板非常重要。您的模式可能有一些通用关键字,可以将其翻译成程序以逐部分创建电路板。让我们看一个例子,以使想法更清晰。
假设,您正在建造一条管道。每个部分都与已经构建的管道连接。你手里可能有很多不同形状的管子。因此,在构建模式时,您只需命名每个形状。例如,left-round-vertical-up、right-round-vertical-up、straight-horizontal、straight-vertical 等。你有一个Factory 类,它知道每个形状的实现。现在将整个模式存储在本地数据库表中非常简单。根据您的 Factory 类的逻辑,它将在运行时翻译到您的板上。
您的数据库表中的示例行可能如下所示。
id level_number level_passed pattern_desc
-- ------------ ------------ ------------
1 1 1 left-round-vertical-up, straight-horizontal, straight-vertical, right-round-vertical-up
2 1 0 straight-horizontal, straight-vertical, right-round-vertical-up
因此,当您在数据库中拥有上述结构中的数据并且您知道要在板中翻译的管段的所有关键字时,您可以更轻松地维护代码并通过 API 调用添加新模式。
在您当前的结构中,如果没有任何应用程序更新,很难更新您的模式。但是,在建议的架构中,您可以使用来自服务器的简单 API 调用轻松添加不同级别的新模式。应用程序知道如何解析模式并可以相应地显示它们。然后你的工作是调用一个 API 从你的服务器获取新引入的模式并将它们插入到你的表中以存储具有适当值的模式。
factory implementation 可能需要许多类,这些类表示管段的每种形状。但是,您并没有为每个模式编写类,这非常多且难以进一步管理。
希望有帮助!