如果我创建一个填字游戏,我想要将填写的单词存储在9乘9网格中。 我考虑过2d数组,但只能存储Across单词,而不能存储Down单词。 即使每个单词都存储为一个对象(指示方向),我也不知道哪些单词与哪些单词相交。 有人能指出我正确的方向吗?
答案 0 :(得分:3)
保存方向(上/下/左/右)并开始坐标。
e.g。
First
e
c
o
n
third
首先将其放在1,0;第二个将下降到5.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 ]
]
第一种保存方式为您提供了说话和了解其起点的优点,但并没有强制它遵守填字游戏格式(例如,很难知道哪些字符应该相同,等等)。第二种方式强制执行,但是很难弄明白。也许将两者结合起来?
答案 1 :(得分:1)
有趣的问题。为了好玩,我从这里开始:
class CrosswordItem
{
int startX;
int startY;
string word;
}
祝你好运!
答案 2 :(得分:0)
我会保存一个起点和方向,然后将它们存储在一个对象中,即
{'starfish':{'direction':'horizontal','position':[0,4]}, 'ratchet':{'direction':'vertical', 'position':[0,8]}