Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 3
1

Программа "Жизнь"

14.12.2019, 15:57. Просмотров 478. Ответов 1
Метки нет (Все метки)

Окажите любезность. может кто-то готовил подобное?

Программа «Жизнь», (описывающая жизнь микроорганизмов)
Введение
Жили-были микробы. Жили они долго и счастливо, но вот одна беда: после жизни всегда приходит
смерть. А микробы были разные: маленькие и не очень, старички и малютки – и у каждого из них
был свой жизненный уровень. Так, например, у только что родившегося микробчика он был равен 1,
а по мере его взросления жизненный уровень тоже рос (от 1 до 12). Когда же микроб достигал
последней ступени (т.е. 12), он, увы, погибал (теперь его жизненный уровень равен 0). Если же у
микроба уровень был равен 0, то он рождался заново и проходил опять жизнь бодрым шагом от 1 до
12.
Всего же микробов в мире, как вы знаете, очень много, а жизнь их интересна. Поэтому появилась
идея написать программу, описывающую их жизнь. Эта программа должна сообщать нам
количество микробов в каждом поколении и «нарисовать» их на поле (экране).
Программа должна работать следующим образом.
1. Сначала создаётся файл work.dat (жилище микробов) и файл work.out (описывающий текущее
поколение микробов, их развитие). Файл work.dat состоит из различных символов, среди
которых «обитают» микробы.
2. Необходимо создать массивы «настоящее» и «будущее». В массиве «настоящее» записывается
текущее поколение микробов, а в файл «будущее»- следующее. Массивы создаются размером
21х21.
3. Программа выдаёт пользователю на экран запрос: «Введите количество поколений». Именно
столько поколений программа будет описывать.
4. Теперь программа создаёт в файле work.out поколение под номером 1. Для этого программа
открывает и проверяет на наличие микробов файл (каждый символ, среди которых может
затеряться микроб). Если под символом скрывается микроб (например, символ «Х»), то в массив
«настоящее» записывается единица (1, т.е. микроб только что родился), а если не микроб – то
ноль (0, т. е. там никто не живёт). Теперь в массиве «настоящее» находиться поле из 1 и 0 (он
состоит из новорожденных младенцев и пустых мест). Все последующие поколения тоже
записываются в файл work.out. Файл work.dat закрывается, и работа теперь ведётся только с
файлом work.out.
5. Теперь описывается следующее поколение. Оно создаётся после проверки массива «настоящее».
Проверяются микробы и их соседи (результат записывается в массив «будущее»):
- если жизненный уровень микроба от 1 до 11 то:
94
95
96
97
--если соседей 2 или 3, то микроб продолжает жить и подрастает (т.е. его жизненный уровень
возрастает на 1),
--иначе микроб погибает(=0), т.к. он задыхается или умирает от скуки;
- если жизненный уровень микроба 0, то микроб рождается заново (т.е. его жизненный уровень
равен 1);
- если жизненный уровень микроба равен 12, то микроб погибает (от старости).
6. После проверки подсчитывается количество жизней данного поколения (т.е. сколько единиц).
Затем программа проверяет, есть ли кто «живой на поле» или все погибли (т.е. нули).
7. Теперь программа производит замену поколений: массив «будущее» становится «настоящим».
8. Программа продолжает работу с пункта 5 до тех пор, пока количество поколений (которые
описывает программа) не станет равным введенным пользователем в пункте 3 или пока не
погибнут все микробы (т.е. везде одни нули).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2019, 15:57
Ответы с готовыми решениями:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло",...

Программа считывает файл ".txt" и выводит сколько "слов" в нем дано ("слова" разделены пробелом)
Прошу помощи с кодом. Если честно немного не понимаю что пошло не так. #include <iostream>...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

Игра "жизнь" - глайдер ведет себя не так, как надо
Добрый вечер. Нужно написать игру "жизнь". Реализовал,однако глайдер ведет себя не так,как надо....

1
1528 / 880 / 409
Регистрация: 01.10.2018
Сообщений: 1,834
Записей в блоге: 2
14.12.2019, 18:50 2
elena_ilushuna, посмотрите Игра "жизнь". И там ещё несколько ссылок в разных постах.

Покопайтесь в разделе "Похожие темы" внизу страницы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2019, 18:50

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

Игра "Жизнь"; Нужно, чтобы первое поколение задавалось оператором (с клавиатуры)
Нужна помощь с решением задачи "Жизнь" на с++ Есть код программы, которая задает первое поколение...

Реализовать игру "Жизнь" (Conway's Game of Life) с помощью иерархии классов
У нас есть такие правила: Правила Место действия этой игры — «вселенная» — это размеченная на...

никто не сталкивался с распараллеливанием игры "Жизнь".
Всем приветики=**** Ребята, очень хотелось поинтересоваться, никто не сталкивался с...

Исправить ошибку в коде игры "Жизнь"
Суть задания в том чтобы дописать игру в жизнь в файле game, в определенном поле. Собственно в чем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.