Титла: Пр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 Идеята ми трябваше, изпълнението е лесно... Ужасно ти благодаря! Лек ден!
|