例如,如果我创建一个填字游戏,我想将填写的单词存储在 9 x 9 的网格中。我考虑了一个二维数组,但只能存储 Across 单词而不是 Down 单词。即使每个单词都存储为一个对象(指示方向),我也不知道哪些单词与哪些单词相交。有人可以指出我正确的方向吗?
问问题
694 次
3 回答
4
保存方向(上/下/左/右)和起始坐标。
例如
First
e
c
o
n
third
首先将放置在 1,0 左侧;第二个将下降到 5,0;第三个在左边 0,6。
您还可以将字符保存到二维数组中,这个特定的例子是:
[
[null, 'f','i', 'r', 's', 't'],
[null, null, null, null, 'e', null ],
[null, null, null, null, 'c', null ],
[null, null, null, null, 'o', null ],
[null, null, null, null, 'n', null ],
['t', 'h', 'i', 'r', 'd', null ]
]
第一种保存方式为您提供了拥有单词并知道它们的起点的优势,但它不会强制它遵守填字游戏格式(例如,很难知道哪些字符应该相同,等等)。第二种方式强制执行这一点,但更难辨认出单词。也许将两者结合起来?
于 2013-02-28T01:35:43.557 回答
2
有趣的问题。为了好玩,我将从这里开始:
class CrosswordItem
{
int startX;
int startY;
string word;
}
祝你的问题好运!
于 2013-02-28T01:47:14.797 回答
1
我会保存一个起点和方向,然后将它们存储在一个对象中,即
{'starfish':{'direction':'horizontal','position':[0,4]}, 'ratchet':{'direction':'vertical', 'position':[0,8]}
于 2013-02-28T01:51:37.723 回答