Графическая модель программы / Моделирование "биологического" наследования (не OOP Inheritance) - PullRequest
1 голос
/ 17 декабря 2011

Хорошо, у меня есть задание для кода (с использованием Java, но я не думаю, что это имеет значение) имитация / модель наследования в смысле биологии, а не ООП, то есть, вы знаете, отец с карими глазами Мама с черными глазами / волосами и т. д.

Я сталкиваюсь с двумя трудностями, во-первых, как мне начать? Я никогда раньше не программировал симуляцию и ничего об этом не знаю. Я считал, что, поскольку я использую Java, я мог бы также использовать апплеты, а не автономное моделирование, но в любом случае, есть ли какое-либо руководство или руководство или объяснение где-либо, как кодировать простые графические моделирования?

Во-вторых, существует ли какое-либо существующее моделирование (с или без исходного кода) биологического наследования? Это даст мне представление о том, что именно я должен сделать, и, если источник доступен, это может оказаться очень полезным.

Короче

В-1 Как именно вы программируете графическое моделирование?

и

В-2 Существуют ли в Интернете какие-либо симуляции биологического наследования?

1 Ответ

1 голос
/ 17 декабря 2011

Вот мое предположение о том, как решить вашу проблему.

Иметь список организмов, которые представляют все возможные организмы в текущем поколении.

Каждый организм хранит свой генетический состав.Вам не нужны обратные ссылки на родительские организмы (вас не интересуют предыдущие поколения).

Затем, когда пользователь выбирает выбранную пару, очистите список и сгенерируйте новый список с этими двумя организмами, с каждымВозможная комбинация генов.

Затем нарисуйте список на экране и позвольте пользователю выбрать еще два.

РЕДАКТИРОВАТЬ

Также здесьэто случайное представление о том, как генерировать ваши гаметы для произвольного размера.Двоичные числа медленно перебирают все 0 и 1.Таким образом, если бы вы пошли от 0 до 7, вы бы проходили каждую комбинацию от 000 до 111. Таким образом, вы можете думать о 0 как о левом аллеле, а о 1 - как о правом аллеле (например, число 5,с представлением 101 будет означать гамету AbC для генотипа aAbBcC).Поэтому вы можете генерировать каждую возможную комбинацию аллелей, когда переходите от 0 до 2 ^ (numOfAlleles-1) (включительно).Это потребует сдвига битов, чтобы определить, какие биты установлены.

Остальное будет просто квадрат с ячейками.

...