У моих родителей в саду есть пруд для разведения рыбы, наполненный кои. Это действительно не приходило мне в голову, пока я не заметил следующую выдержку из своего кода.
',') & '_'
... У меня были рыбьи лица, смотрящие на меня с моего экрана ...
Что дало мне отличную идею ...
Мои дорогие игроки в гольф, я хочу создать аквариум с одной линией ASCII по следующим правилам:
- Размер аквариума от одной стороны резервуара до другой стороны резервуара должен быть не менее 60 символов и не более 80 символов. Стороны резервуара должны быть обозначены с помощью
|
символа трубы / бара ( ). - Рыба должна уметь «плавать» слева направо между стенками аквариума. Поскольку они будут поворачиваться, вид спереди необходим для перехода из одного направления в другое.
Рыба должна выглядеть следующим образом:
}}< }} ',')
Рыба плавает прямо(',' {{ >{{
Рыба плавающая слева}}('_'){{
Рыба лицом вперед
Когда рыба поворачивается, чтобы изменить направление (вероятность 30%), она должна начинаться с одного направления, лицом вперед, а затем в другом направлении ... Убедитесь, что у рыбы достаточно места для поворота, т.е. требуется шесть пробелов до край танка минимум ...
- Если рыба не пускает пузырь или не меняет направление, она будет продолжать двигаться в том направлении, в котором она стоит, если она попадет в шесть пространств от стороны резервуара, она изменит направление.
- Рыба (обращенная влево или вправо) может в некоторых случаях (с вероятностью 10%) прекратить пускать мыльные пузыри подряд (
.oO*
), поэтому рыбе необходимо иметь свободное пространство рядом с ними, чтобы пузырь мог существовать, чтобы рыба могла только плавать как можно ближе к сторонам, за исключением одного места. Пузырь должен исчезнуть, прежде чем рыба сможет двигаться дальше ...
Ряд примеров строк поведения рыбы, с -
символами, обозначающими пробелы, поскольку функция отображения кода здесь немного строга ... Я буду ожидать, что эти штрихи будут заменены пробелами, когда вы кодируете это ...
Каждую строку здесь можно считать кадром в промежутке времени.
|-}}< }} ',')----------|
|--}}< }} ',')---------|
|---}}< }} ',')--------|
|----}}< }} ',')-------|
|-----}}< }} ',')------|
|-----}}< }} ',').-----|
|-----}}< }} ',')o-----|
|-----}}< }} ',')O-----|
|-----}}< }} ',')*-----|
|---------}}('_'){{----|
|-----------(',' {{ >{{|
|----------(',' {{ >{{-|
|---------(',' {{ >{{--|
|--------.(',' {{ >{{--|
|--------o(',' {{ >{{--|
|--------O(',' {{ >{{--|
|--------*(',' {{ >{{--|
|--------(',' {{ >{{---|
|-------(',' {{ >{{----|
|------(',' {{ >{{-----|
и т.д. Приведенный выше пример, как я уже сказал, небольшой, но вы получите общее представление ...
Самый короткий код выигрывает ...
Я ожидаю вывод на одной и той же строке (если это возможно), если нет, отображение кадра за кадром подряд - это нормально ... Независимо от того, идете ли вы на одну строку или несколько строк, решать вам. Если вы делаете несколько строк, они должны быть разделены новой строкой.
Также между кадрами установлен таймер, 2000 мс. Это обязательно .
Давайте посмотрим, что у вас есть!