Loading...
Feel_Up avatar Feel_Up 0 Точки

Автоматизирано движение на обекти!?

Привет!

Имам следната задача и ми изглежда доста трудна( дори непосилна за текущите ми качества)!

Ето заданието:

====================================================================

Да се направи приложение (конзолно или Wiforms)

симулиращо група от обекти които се движат произволно в пространството.

 

Всеки обект има следните характеристики:

1. Име

2. Цвят

3. Текущи координати в работната равнина

4. Стъпка

 

Всеки обект разполага със следните частни методи

1. Избор на посока за движение - изборът се реализира чрез генератор на случайни числа

2а. Преместване със зададена стъпка в случай че няма да се сблъска друг обект или е достигнат края на работната равнина

2б. В случай че ще има сблъсък не се извършва движение и се изчаква следващ ход

 

Всеки обект им следните публични методи

1. Конструктор - задаващ име, цвят, стъпка, текуща позиция

2. методи "Направи следващ ход", с който да се извърши съответното движение което се избере като посока

 

Програмата трябва да покаже движението  (На конзолата като отпечатани координати или визуално графичен режим).

 

Работната равнина е с размер който се задава в кода.

====================================================================

Пример:

Инициализация:

 

Въведете размер на работната равнина: 20, 20

 

Колко обекта искате да имате: 3

Въведете данни за обект 1: …..

Въведете данни за обект 2….

….

 

 

Стартиране движението:

Стъпка 1:

Обект 1 (X, Y)

Обект 2 (X, Y)

Обект 3 (X, Y)

 

Стъпка 2:

Обект 1 (X, Y) – без движение поради сблъсък с обект 2

Обект 2 (X, Y)

Обект 3 (X, Y)

 

Стъпка 3:

Обект 1 (X, Y)

Обект 2 (X, Y) - – без движение поради достигане на граница на работна равнина

Обект 3 (X, Y)


 

Стъпките са дискретни. Т.е. цели числа..

====================================================================

Може ли помощ и някакви идей как да подходя?

Благодаря предварително :)

0
C# OOP Basics
AlucardDracula avatar AlucardDracula 416 Точки
Best Answer

Привет колега, в конзолата мисля че това ще стане лесно, но при WFA малко е сложно тъй като обекта има координати(ако обекта е 4риъгълник би трябвало да има координати на горния ляв/десен, долния ляв/десен ъгъл). При конзолата можеш да запишеш координатите и после да ги сортираш и да прилагаш Distinct(за да се види дали има еднакви координати повече от 1 път) и така да гледаш дали изобщо дали се сблъскват и ако има сблъсък да видиш кои и да ги спреш или да не ги местиш.

А по-конкретно за код може да провериш с Any(x=>obj.x == dadenObekt.x && obj.y == dadenObekt.y)  дали има нещо на тези координати. 

 

0
Feel_Up avatar Feel_Up 0 Точки

Би ли ми дал малко повече информация/код, аз съм се насочил към Web Development, а професора ми ме тормози с ООП ...

0
AlucardDracula avatar AlucardDracula 416 Точки

мисля че се опитваш да направиш нещо такова само че с повече обекти ЛИНК.

0
thereishope avatar thereishope 77 Точки

Пиши ми по скайп, ще ти помогна да го направиш

0
Feel_Up avatar Feel_Up 0 Точки

Писах ти :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.