Я создаю генератор кроссвордов и, похоже, у меня проблема с простым переменным назначением координат в системе сетки. У меня очень простая структура для хранения дискретных значений координат, как показано ниже. Я убрал инкапсуляцию, чтобы было легче читать.
public struct vec2
{
public int x, y;
public vec2(int x, int y)
{
this.x = x;
this.y = y;
}
}
Эта структура Vec2 поддерживается внутри класса для хранения значений слов.
public struct WordClass
{
string svalue;
bool flag;
public vec2 position;
public WordClass(string sarg, bool barg)
{
this.svalue = sarg;
this.flag = barg;
position = new vec2(0,0);
}
public string StringVal
{
get { return svalue; }
}
public bool FlagVal
{
get { return flag; }
}
public void DisableWord()
{
if (this.flipflop == false)
{
this.flipflop = true;
}
}
public void SetPos(int xa, int ya)
{
this.position.x = xa;
this.position.y = ya;
}
}
В основном это должно поддерживать список постоянных слов с флагом для использования и переменной позицией, поскольку система вычисляет оптимальные местоположения для слова.
У меня есть динамически связанный список слов
List<WordClass> WordList = new List<WordClass>();
и изменить координаты слова в списке слов
//Arbitrary values
WordList[0].SetPos(Position_X, Position_Y);
Теперь моя проблема заключается в том, что когда я пытаюсь использовать позицию слова, независимо от того, что я установил слишком рано, она сохраняет значение по умолчанию 0, 0. Я почесал голову, выполняя другие функции, и это оставило меня интересно, если я пропускаю что-то важное.