Нарисованная рукой иллюстрация цветной капусты овоща изображение_Фото номер 611624435_PSD Формат изображения_ru.lovepik.com
Применимые группы | Для личного использования | Команда запуска | Микропредприятие | Среднее предприятие |
Срок авторизации | ПОСТОЯННАЯ | ПОСТОЯННАЯ | ПОСТОЯННАЯ | ПОСТОЯННАЯ |
Авторизация портрета | ПОСТОЯННАЯ | ПОСТОЯННАЯ | ПОСТОЯННАЯ | |
Авторизованное соглашение | Персональная авторизация | Авторизация предприятия | Авторизация предприятия | Авторизация предприятия |
Онлайн счет | ||||
Маркетинг в области СМИ (Facebook, Twitter,Instagram, etc.) | личный Коммерческое использование (Предел 20000 показов) | |||
Цифровой медиа маркетинг (SMS, Email,Online Advertising, E-books, etc. | личный Коммерческое использование (Предел 20000 показов) | |||
Дизайн веб-страниц, мобильных и программных страниц Разработка веб-приложений и приложений, разработка программного обеспечения и игровых приложений, H5, электронная коммерция и продукт | личный Коммерческое использование (Предел 20000 показов) | |||
Физическая продукция печатная продукция Упаковка продуктов, книги и журналы, газеты, открытки, плакаты, брошюры, купоны и т. Д. | личный Коммерческое использование (Печатный лимит 200 копий) | предел 5000 Копии Печать | предел 20000 Копии Печать | неограниченный Копии Печать |
Маркетинг продуктов и бизнес-план Предложение по проектированию сети, дизайну VI, маркетинговому планированию, PPT (не перепродажа) и т. Д. | личный Коммерческое использование | |||
Маркетинг и показ наружной рекламы Наружные рекламные щиты, реклама на автобусах, витрины, офисные здания, гостиницы, магазины, другие общественные места и т. Д. | личный Коммерческое использование (Печатный лимит 200 копий) | |||
Средства массовой информации (CD, DVD, Movie, TV, Video, etc.) | личный Коммерческое использование (Предел 20000 показов) | |||
Перепродажа физического продукта текстиль, чехлы для мобильных телефонов, поздравительные открытки, открытки, календари, чашки, футболки | ||||
Онлайн перепродажа Мобильные обои, шаблоны дизайна, элементы дизайна, шаблоны PPT и использование наших проектов в качестве основного элемента для перепродажи. | ||||
Портрет Коммерческое использование | (Только для обучения и общения) | |||
Портретно-чувствительное использование (табачная, медицинская, фармацевтическая, косметическая и другие отрасли промышленности) | (Только для обучения и общения) | (Contact customer service to customize) | (Contact customer service to customize) | (Contact customer service to customize) |
Сделаем игру Волк-Коза-Капуста
Нашел замечательную статью “Самостоятельное изучение схемотехники. Синтез автоматов на триггерах. Часть 1” на Хабре. В статье рассматривался интересный пример создания игры «Волк-Коза-Капуста».
Попробую объяснить суть дела.
Задача: На одном берегу реки находятся крестьянин, волк, коза и капуста. У крестьянина есть лодка, но видимо не очень хорошая Он может взять с собой в плавание только один «предмет», в смысле только козу или только капусту или только волка. Проблема в том, что кое-кого нельзя оставлять наедине с желанной пищей. Например, нельзя уплыть оставив волка и козу на одном берегу – волк съест козу. Или нельзя уплыть с волком, оставив козу и капусту – ведь коза съест капусту. Но крестьянину нужно непременно попасть на другой берег. Вот такой он упертый. И хочет он довезти всех в сохранности
Вообще-то это довольно известная детская головоломка.
Автор той статьи предлагает использовать «граф автомата Мура» для описания этой системы из волка-козы-капусты и крестьянина. Ну что же – в этом наверное есть какая-то здравая мысль.
Для хранения состояния системы используется четырех-битное слово. По одному биту на каждого: на козу (бит 3), на волка (бит 2), капусту (бит1) и крестьянина (бит 0). Если бит равен единице, то сущность на первом берегу, а если нулю, то на втором.
Кроме этого, в той статье автор определяет четыре «события» по которым система переходит из одного состояния в другое:
1) событие А1 – крестьянин везет козу
2) событие А2 – крестьянин везет волка
3) событие А3 – крестьянин везет капусту
4) событие А4 – крестьянин перебирается сам на другой берег
После всех этих определений автором статьи был автором нарисован следующих граф:
Вообще прочитав статью и внимательно изучив этот граф мне немедленно захотелось попробовать реализовать эту игру «в железе». Тем более, что делать мне по большому счету почти ничего не надо – ведь у меня есть плата Марсоход и она очень подходит для этой игры.
Порылся в интернете и нашел несколько картинок коз, капуст, волков и крестьян. Выбрав более подходящие собрал их на одной картинке и напечатал на принтере вот так:
Потом наклеил эту картинку на картонку вырезал по контуру и двумя коротенькими шурупами привинтил плату Марсоход к картонке. Получилось вот так:
Идея в следующем. На плате Марсоход есть 8 светодиодов. Мысленно делим их на две группы. Первые четыре светодиода отображают присутствие сущностей на левом берегу, а правые четыре светодиода отображают присутствие сущностей на правом берегу. Понятно, что правые светодиоды это просто инверсия левых. Так нагляднее будет игра.
Опять же удобство – на плате Марсоход как раз четыре кнопочки – к ним привязываем «события» — перемещения сущностей. Под кнопочкой нарисована картинка обозначающая кого «перевозит» эта кнопка. Ну вот и все! Собственно аппаратура готова! Паять ничего не нужно. У нас есть ПЛИС на плате Марсоход. Осталось все это запрограммировать. Поскольку граф уже был любезно составлен автором той замечательной статьи, то казалось, что запрограмировать будет легко. Вроде бы думать уже не надо.
Вот тут и началось самое интересное. На самом деле есть большая разнича между теоретическими изысканиями и практическая реализацией. Попробую объяснить мои проблемы и проблемки с существующим графом:
- В существующем графе исходное состояние это 0000, что в принятой терминологии обозначает, что все сущности изначально находятся на том правом берегу. Как-то это странно.
- Любое событие А1-А4 перевозит всех сразу на левый берег с правого из состояния 0000 в состояние 1111. Тоже странно.
- Нет явного состояния «выиграл» или «проиграл». На графе проигрыш переводит всех сущностей сразу на правый берег в состояние 0000, что как бы обозначает «выиграл». Ну и как это?
- В статье говорится о четырех проигрышных ситуациях 0011\1100, 1010\0101, на само же деле их шесть. Есть еще две проигрышные ситуации 1110\0001 – это когда крестьянин оставляет все свое хозяйство и плывет сам. Коза съедает капусту, а потом волк козу.
Несмотря на то, что первую версию игры по существующему графу я сделал довольно быстро, как оказалось, пользоваться этим практически нельзя. Игра получилась совсем непонятная.
После некоторых раздумий я пришел к выводу, что нужно изменить граф, сделать его более внятным и четким. Сказать по правде нарисовать новый граф стоило мне ну просто очень больших усилий. Должен признаться, что тут я впервые пожалел, что выбрал этот путь – реализация игры в виде «автомата». Мне все время казалось, что есть другой гораздо более легкий путь сделать эту же игру, но об этом чуть позже.
Теперь про мой «новый» граф автомата Мура. Исходное состояние игры 0000 и это обозначает, что все сущности на первом левом берегу. Единица в бите состояния обозначает, что соответствующая сущность находится на правом берегу. Имеем одно выигрышное состояние 1111 и шесть проигрышных. И сущностей и события именуем в одинаковой последовательности, а не так как было раньше. Тоесть в слове состояния Коза – бит ноль. Событие по перевозке Козы – тоже бит ноль в слове событий (то есть кнопочка ноль).
parameter GOAT = 0;
parameter CABBAGE = 1;
parameter WOLF = 2;
parameter MEN = 3;
Вот так выглядит мой граф:
Теперь уже по новому графу пишем на языке Verilog описание логики работы нашего автомата. Полный текст получившейся «программы» можно взять здесь.
Несмотря на то, что проект заработал правильно (с моей точки зрения), все равно осталось какое-то чувство неудовлетворенности. Я еще когда писал весь этот код на Verilog видел, что получается как-то «тяжеловесно».
На самом деле вся логика может быть гораздо проще. Попробую объяснить свою мысль. В данном конкретном примере не нужно ломать голову всеми этими «автоматами». Составление такого графа подразумевает четкое представление какие вообще состояния есть и их трансформации. А собственно говоря зачем все это?
Понятно, что любое событие по перевозке, во-первых, обязательно приводит к перемещению крестьянина на противоположный берег. Тоесть, каждое событие всегда «инвертирует» бит состояния крестьянина. Во-вторых, сущности Коза, Капуста и Волк могут перемещаться только если перед событием они с крестьянином находятся на одном берегу. Перемещение всех сущностей – это инвертирование их бита состояния. Распознавание «аварийных ситуаций», тоесть проигрышей, это отдельная песня. Проигрыши распознаются отдельной комбинаторной функцией. Вот и все! Как просто!
Вот уже этот новый код я действительно легко написал на Verilog и проверил за 10 минут. Посмотреть его можно здесь — как говорится «почувствуйте разницу».
Конечно нужно показать как работает моя игра . Вот небольшое демонстрационное видео:
Таким образом, мною была 2 раза реализована игра «Волк-Коза-Капуста» в плате Марсоход. Оба проекта Quartus II Вы можете взять здесь на нашем сайте:
Игра Волк-Коза-Капуста ( 149743 bytes )
Ну и напоследок еще пара замечаний.
- После компиляции игры с «автоматом» я вижу, что вся логика уместилась в 80-ти логических элементах ПЛИС платы Марсоход.
- После компиляции игры «без автомата» — вся логика занимает 49 логических элементов ПЛИС платы Марсоход (тоесть почти в 2 раза меньше, чем в первом случае!)
Кроме того, среда разработки QuartusII может автоматически извлекать из текста «программ» Verilog или VHDL описания state machines, тоесть «автоматов». После компиляции проекта в среде QuartusII заходим в меню Tools\Netlist Viewers\State machine Viewer. Так вот в первом случае Quartus II показывает граф «автомата», примерно вот такой:
Во втором случае QuartusII говорит: «Design has no State Machine». Вот такое чудо – оказывается нет «автомата» в нашем проекте. Ну что же, оставим это на совести среды QuartusII.
Таким образом, сделаем странный вывод – не все «автоматы» одинаково полезны. Иногда бывает гораздо проще и легче сделать проект «в лоб», не ломая голову над графами и состояниями всей системы.
угол-левый
Aux choux !
картины, 47,2 W x 70,9 H x 0,8 D в
$ 7,250
Отпечатки от $ 48
Натюрморт: капуста на газете T154
, 36 W x 24 H x 0,1 D в
$ 938
. Из $ 45
Декоративные капусты
картины, 23,6 Вт x 27,6 H x 0,8 D в
Капусты и короли
, 29,9 Вт x 39,8 H x 0,8 D в
$ 1,990
Отпечатки от $ 100
$ 1 990
. 0003
la ola (Волна)
Картины, 10,2 Ш x 11 В x 0 Г
370 $
Репродукции от 40 $
Cavolo Romano Still
Картины с 002,6 дюйма 9 Ш x 003 Г x 15,7 Life Капуста
картины, 11,8 Вт X 15,7 H x 0,1 D в
Bok Choy
Картины, 12 Вт x 16 H x 1 D в
$ 920
Отпечатки от $ 100
Сад капусты
, 39 W x. 39 В x 0,8 Г дюйма
2 410 долл. США
капусты для королей
картин, 48 Вт x 36 ч x 1,3 дня в
$ 2 270
Капуста
картины, 29 Вт x 29 ч 1 D в
$ 7700
Старик с каблетом
, картина, картина, картина, картина
$ 7700
Старик. 62,2 Вт x 49,2 H x 1 D в
$ 4,450
Отпечатки от 40
Споты сердца
картины, 78,7 Вт x 78,7 ч x 0,8 D в
$ 12 990
Отпечатки от 93
Bleu CHOU Rouge Rouge Rouge Rouge Rouge Rouge Rouge Rouge Rouge. (краснокочанная синяя)
картины, 11,8 Вт X 16,5 ч x 0,1 D в
$ 1 230
Отпечатки от 82
Cabbagetown Funk
Картины, 36 W x 48 H x 1,6 D в
$ 1 010
Капуста
, 13 W x. 9 H x 0,1 D в
$ 150
Отпечатки от 40
Время, чтобы разбудить мальчика (Selfoportrait с Калашниковым)
картины, 96 W x 48 H x 1,5 D в
$ 6,150
Romanesco Cabbag Картины, 10,6 Ш x 8,7 В x 0,8 Г в
$ 250
Отпечатки от $ 71
Поле капустного поля
картины, 14,2 Вт X 14,2 H x 0,1 D в
$ 740
Отпечатки от 40
Blue Capbage
Картин В
$ 1 760
Bok Choy
картины, 23 W x 17 H x 0,1 D в
$ 150
Отпечатки от 40
Как дерево (изобразительное искусство, натюрморта, аквалор, капуста, оригинальная)
. , 9 Ш x 12 В x 1 Г в
300 долларов США
Репродукции от 40 долларов США
Капуста
Картины, 24 Ш x 24 В x 2 Г в
Кухонный натюрморт с цветами, чесноком, капустой и айвой
Картины, 19,6 дюйма Ш x 15,6 дюйма
$ 1,140
Отпечатки от $ 50
Два капусных листья
картины, 8 Вт x 10 H x 1 D в
$ 200
Отпечатки от 85
Угла-лета 143 картины
25 результатов на странице
25 результатов на странице50 результатов на странице100 результатов на странице
25 результатов на странице50 результатов на странице100 результатов на странице
ваш веб-браузер, чтобы обеспечить безопасность данных пользователя. Пожалуйста, обновите до последней версии.