Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: deyan4 в Dec 30, 2009, 02:01



Титла: Прoблем Java
Публикувано от: deyan4 в Dec 30, 2009, 02:01
Здравейте, правя една курсова и съм леко закъсал от към идеи. Имам матрица с елементи (играта е роботите в GNOME). Стигнах до програмирането на движението на роботите, които при всяко движение на играча трябва да се приближават към него. При сблъсъка на роботи се получава стена. Проблемът е в това, че ако два робота, които се намират в две съседни килийки, се движат в една и съща посока не би трябвало да има сблъсък. Логиката е, че роботът, който се намира по-близо, от страната на играча, трябва пръв да се движи. Това не знам как да постигна. Някой, ако има идея как би могло да стане. Имам нужда само от побутване, идея...



Титла: Re: Прoблем Java
Публикувано от: shoshon в Dec 30, 2009, 13:45
Ами много просто. Всеки път обработваш векторите на матрицата според движението.

Ако човека се движи наляво първо местиш най-левите с обхождане по редове.
Ако човека се движи надолу първо местиш наи-долните с обхождане по колини.
За останалите аналогично.

Ако две роботчета отидат на едно и също квадратче - стена. Как става това? За да няма объркване може да направиш на квадратчетата един dirty флаг - т.е тук вече е "дошло" нещо. Ако роботчето отиде някъде и флагът е dirty - стена.

Много лесна задача. При кого учите?


Титла: Re: Прoблем Java
Публикувано от: deyan4 в Dec 30, 2009, 14:10
Не уча в България. Това за стената е решено, имам клас "стена". Искаш да кажеш, че външните се движат първи? Ами ако има робот между актуалния и играча, а се движат в същата посока, не би трябвало да има сблъсък. Не трябва ли вътрешния да движа първи...?


Титла: Re: Прoблем Java
Публикувано от: shoshon в Dec 30, 2009, 14:33
Дяволски си прав. Още ми се спи. Sorry.

Сега като се замисля така ти трябват само 2 метода :)

имаш движение по хоризонтала:

играча ти се намира на колона x
    преобразуваш матрицата от колона x до N като започваш от x към N
    преобразуваш матрицата от колона x-1 до 0 като започваш от x-1 към 0

имаш движение по вертикала

играча ти се намира на ред y
    преобразуваш матрицата от ред х до N като започваш от ред x към N
    преобразуваш матрицата от ред x-1 до 0 като започваш от ред x-1 до N

дано сега е по добре  :-[

Поне сега като си мисля винаги активното роботче ще е по-близо до играча :)


Титла: Re: Прoблем Java
Публикувано от: deyan4 в Dec 30, 2009, 14:35
Идеята ми трябваше, изпълнението е лесно... Ужасно ти благодаря! Лек ден!