Представьте, что в не столь далеком будущем люди смогут без проблем жить на Марсе. Он дальше от Солнца, нежели Земля, поэтому там холоднее. Утепление планеты стало бы первым шагом к установлению на поверхности Марса климата, приближенного к земному. Как только на красной планете появятся реки и озера, люди смогут выращивать там растения, а также разводить животных.

Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
Можно посадить тропические деревья, а также привести насекомых и маленьких животных. Однако людям по-прежнему будут нужны кислородные маски для предотвращения высокого уровня углекислого газа в легких.
Леонард Дэвид,
Марс: Будущее Красной Планеты
На данный момент уровень углекислого газа атмосферы Марсы составляет приблизительно 96%. Изменить это получиться еще не скоро. Сегодня красная планета все еще остается далеким, другим миром.
По этой причине сейчас самое время использовать воображение. Как думаете, что произойдет, если климат Марса изменится, став приближенным к земному, и люди перевезут на новую планету земных животных? Какие животные смогут приспособиться к новой местности?
Попробуйте создать симулятор фермы на территории Марса. У вас должно быть несколько типов животных. У каждого зверя должно быть название, прикрепленное к интерфейсу Stringer
для возвращения их названия.
У каждого животного должны быть методы для движения и кормления. Метод движения должен возвращать описание вида движения. Метод кормления должен возвращать название случайного корма, что нравится животному.
Имплементируйте цикл день/ночь, симулятор должен запускаться для трех 24-часовых марсианских дней (72 часа). Все животные должны спать от заката до рассвета. Для каждого часа дня выберите случайное животное, что будет осуществлять какое-то случайное действие — передвигаться или есть. Для каждого действия должно выводиться описание того, что именно сделал зверь.
При имплементации программы используйте структуры и интерфейсы.
По завершении работы можете сравнить свой код с нашим.
Пример программы симулятора фермы в Golang
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
package main import ( "fmt" "math/rand" "time" ) // Пчела type honeyBee struct { name string } func (hb honeyBee) String() string { return hb.name } func (hb honeyBee) move() string { switch rand.Intn(2) { case 0: return "жужжит" default: return "летает и веселится" } } func (hb honeyBee) eat() string { switch rand.Intn(2) { case 0: return "пыльцу" default: return "нектар" } } // Суслик type gopher struct { name string } func (g gopher) String() string { return g.name } func (g gopher) move() string { switch rand.Intn(2) { case 0: return "гулят и изучает территорию" default: return "прячется в норку" } } func (g gopher) eat() string { switch rand.Intn(5) { case 0: return "морковку" case 1: return "салат-латук" case 2: return "редиску" case 3: return "кукурузу" default: return "корнеплоды" } } type animal interface { move() string eat() string } func step(a animal) { switch rand.Intn(2) { case 0: fmt.Printf("%v %v.\n", a, a.move()) default: fmt.Printf("%v кушает %v.\n", a, a.eat()) } } const sunrise, sunset = 8, 18 func main() { rand.Seed(time.Now().UnixNano()) animals := []animal{ honeyBee{name: "Шмель Базз"}, gopher{name: "Суслик Го"}, } var sol, hour int for { fmt.Printf("%2d:00 ", hour) if hour < sunrise || hour >= sunset { fmt.Println("Животные спят.") } else { i := rand.Intn(len(animals)) step(animals[i]) } time.Sleep(500 * time.Millisecond) hour++ if hour >= 24 { hour = 0 sol++ if sol >= 3 { break } } } } |

Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»