Създавам генератор на кръстословици и изглежда имам проблем с просто присвояване на променлива на координати в мрежовата система. Имам много проста структура за задържане на дискретни координатни стойности, както се вижда по-долу. Премахнах капсулирането, за да улесня четенето.
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. Чесах се по главата, докато изпълнявах друга функционалност, и това ме остави чудя се дали не пропускам нещо важно.