21 Востаннє редагувалося koala (20.11.2014 10:44:56)

Re: Life_of_ANTS

Проблема 1:
Дуже складна логіка поведінки мурах - все розбито по купі функцій, які викликаються одна з одної, а потім ще й з Scene::timer (через це я її і зламав, поки що ненавмисно).
Пропозиція: створити Ant::action і винести туди всю логіку вибору дії, а потім викликати з таймера. Можливо, додати поля "чим зараз займається мураха" (enum { searchForFood, goingForFood, goingHome }etc.) та "поточна ціль" Block* target.

Проблема 2:
Некоректна модель. r_ відрізняються від b_ тільки своїм ставленням до r_ та b_ та кольором.
Пропозиція: перенести весь дубльований код до Ant та Base, додати відповідні поля. Половину вже прибрав (виніс до Ant::home_ базу).

Проблема 3: графіка в коді.
Пропозиція: мінімізувати операції низького рівня в класах моделі - можливо, створити власний аналог Canvas чи скористатися якимось движком.

22

Re: Life_of_ANTS

Далі, гадаю, треба роздавати завдання різним людям і поглиблювати спілкування.

23 Востаннє редагувалося StoBF (20.11.2014 13:17:25)

Re: Life_of_ANTS

Я непроти завдань, на рахунок графіки пропоную використовувати SDL.

24 Востаннє редагувалося koala (20.11.2014 16:16:27)

Re: Life_of_ANTS

Погоджую - тим більше, що з freeglut тут в декого проблеми.
Тоді давайте ви займетеся перенесенням коду на SDL (форк тільки зробіть), а я ще трохи доб'ю логіку мурах і сцени (додам клас "мурашник", наприклад, ще думаю).

25

Re: Life_of_ANTS

І, до речі, можете мені пояснити сенс оцього:

void B_ant::move(){ //тут був параметр i, яким ви намагалися імітувати this
    for(int j = 1; j > 0; j--){//а нащо цикл на 1 дію? і що він робить?
        mainScene->bant[j]->setX( mainScene->bant[j-1]->getX() );
        mainScene->bant[j]->setY( mainScene->bant[j-1]->getY() );
    }
    step(direction);//трохи оптимізував переміщення на 1 крок, тепер все в одній функції
}

26

Re: Life_of_ANTS

І ще питання: як щодо переходу на С++11?

27

Re: Life_of_ANTS

koala написав:

І, до речі, можете мені пояснити сенс оцього:

void B_ant::move(){ //тут був параметр i, яким ви намагалися імітувати this
    for(int j = 1; j > 0; j--){//а нащо цикл на 1 дію? і що він робить?
        mainScene->bant[j]->setX( mainScene->bant[j-1]->getX() );
        mainScene->bant[j]->setY( mainScene->bant[j-1]->getY() );
    }
    step(direction);//трохи оптимізував переміщення на 1 крок, тепер все в одній функції
}

Вона заставляла мурах постійно рухатись в заданому напрямку. Тобто я це все починав як 100500 клон гри змійка. І саме ця функція переміщувала квадрад з хвоста до голови. Але тут вона вже не потрібна.

28 Востаннє редагувалося koala (20.11.2014 21:13:32)

Re: Life_of_ANTS

Проблема 2 суттєво посунута. Більше ніяких R_ та B_ - класів! r_ant і rant відтепер звуться red.ants, і це std::vector<Ant *>.

29

Re: Life_of_ANTS

koala написав:

Далі, гадаю, треба роздавати завдання різним людям і поглиблювати спілкування.

Так, давайте мені завдання.

30

Re: Life_of_ANTS

У вас вже все з графікою гаразд? Тепер треба поведінку мурах виправити.

31

Re: Life_of_ANTS

koala написав:

У вас вже все з графікою гаразд? Тепер треба поведінку мурах виправити.

Ви не змінювали ant.cpp, коли прибивали R- та B-класи? При мержі нічого не зламається?

32

Re: Life_of_ANTS

Форкайтеся від останнього коміта.

33

Re: Life_of_ANTS

Вибачте, щойно помітив, що 2 години тому не закомітився сам. Виправив помилку.

34 Востаннє редагувалося StoBF (21.11.2014 07:33:20)

Re: Life_of_ANTS

Постараюсь сьогодні до обіду залити напрацювання по SDL. На перший час я думаю спрайти можуть бути будь які, я використав просто  спрайти з Warcraft 1. Оскільки є мінімальна анімація. Або можна використати  якийсь малюночок мурахи буз анімації.

35 Востаннє редагувалося koala (21.11.2014 09:52:58)

Re: Life_of_ANTS

Ще пропозиція - виключити .pro-файли з GitHub-а... ну, або доведеться їх розписувати по різних ОСах, не дуже зручно; та й нічого не дає тим, хто не на Qt-і. Можна в README додати параметри компіляції поки що.

36 Востаннє редагувалося StoBF (21.11.2014 12:04:13)

Re: Life_of_ANTS

Так можна, особисто я зараз користуюсь VS2013, там взагалі все дуже просто. Створив проект і дадав вісі нідери і cpp, і прописав шляхи до лібів.

37

Re: Life_of_ANTS

Подальше обговорення деталей пропоную вести у wiki.

38

Re: Life_of_ANTS

Короче проблемка я в тому git взагалі дупля не ріжу, я не рзумію ні як мені форкнутись, і взагалі нічого там не розумію.

39

Re: Life_of_ANTS

Запам'ятовуєте три команди і все.

40

Re: Life_of_ANTS

Я теж до позавчора таким був. Нічого, довідки є всюди, а в оф. клієнті взагалі все просто. І є туторіал.

Подякували: Chemist-i1