diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d574b0f --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +#Idea files +.idea/* +__pycache__/ diff --git a/Fairytale.json b/Fairytale.json new file mode 100644 index 0000000..698d67c --- /dev/null +++ b/Fairytale.json @@ -0,0 +1,117 @@ +{ + "welcome":{ + "1":"\n\nДобро пожаловать в генератор сказок. Выбирите ту цифру, вариант которой вам больше понравился:\n1.Используем шаблон\n2.Хочу готовую сказку!\n", + "2":"Теперь давайте выберем известную сказку, на основе которой будем создавать сказку:\n1.Курочка ряба\n2.Три Медведя\n3.Почему у осла ушли длинные? (Ингушская сказка)\n4.Каша из топора\n5.Лиса и Козел\n", + "3":"1.Ввод с клавиатуры\n2.Автоподбор\n"}, + + "tales":["Курочка Ряба\nЖили-были дед да баба. Была у них курочка ряба. Снесла курочка яичко, не простое - золотое.\nДед бил, бил - не разбил.\nБаба била, била - не разбила.\nМышка бежала, хвостиком задела, яичко упало и разбилось.\nДед плачет, баба плачет, а курочка кудахчет:\n- Не плачь, дед, не плачь, баба: снесу вам яичко не золотое - простое!", + "Почему у осла уши длинные\nУзнал осёл, что раздают уши. Он не знал точно, что такое уши, а только слышал о них. Пришёл он к тому месту, где раздавали уши и крикнул:\n— Здесь раздают уши?\n— Здесь, — отвечают ему.\n— А какие они?\n— Какие пожелаешь. Есть маленькие, есть большие, есть длинные, есть круглые...\n— А сколько они стоят?\n— Их дают бесплатно.\n«Если уши дают бесплатно, то какой же дурак станет брать маленькие».\nВот почему у осла такие длинные-длинные уши.", + "Три медведя\nОдна девочка ушла из дома в лес. В лесу она заблудилась и стала искать дорогу домой, да не нашла, а пришла в лесу к домику.\nДверь была отворена; она посмотрела в дверь, видит: в домике никого нет, и вошла.\nВ домике этом жили три медведя. Один медведь был отец, звали его Михайло Иванович. Он был большой и лохматый. Другой была медведица. Она была поменьше, и её звали Настасья Петровна. Третий был маленький медвежонок, и звали его Мишутка. Медведей не было дома, они ушли гулять по лесу.\nВ домике было две комнаты. Девочка вошла в первую комнату и увидела на столе три чашки с похлебкой. Первая чашка, очень большая, была Михайлы Ивановича. Вторая чашка, поменьше, была Настасьи Петровны; третья, синенькая чашечка, была Мишуткина. Подле каждой чашки лежала ложка: большая, средняя и маленькая.\nДевочка взяла самую большую ложку и похлебала из самой большой чашки; потом взяла среднюю ложку и похлебала из средней чашки; потом взяла маленькую ложечку и похлебала из синенькой чашечки; и Мишуткина похлебка ей показалась лучше всех.\nДевочка захотела сесть и видит у стола три стула: один большой - Михайлы Ивановича; другой поменьше - Настасьи Петровны, а третий, маленький, с красненькой подушечкой - Мишуткин. Она полезла на большой стул и упала; потом села на средний стул, на нём было неловко; потом села на маленький стульчик и засмеялась - так было хорошо. Она взяла синенькую чашечку на колени и стала есть. Поела всю похлебку и стала качаться на стуле.\nСтульчик проломился, и она упала на пол. Она встала, подняла стульчик и пошла в другую горницу. Там стояли три кровати: одна большая - Михаилы Иваныча; другая средняя - Настасьи Петровны; третья - Мишенькина. Девочка легла в большую, ей было слишком просторно; легла в среднюю - было слишком высоко; легла в маленькую - кроватка пришлась ей как раз впору, и она заснула.\nА медведи пришли домой голодные и захотели обедать.\nБольшой медведь взял чашку, взглянул и заревел страшным голосом:\n- Кто хлебал в моей чашке?\nНастасья Петровна посмотрела свою чашку и зарычала не так громко:\n- Кто хлебал в моей чашке?\nА Мишутка увидал свою пустую чашку и запищал тонким голосом:\n- Кто хлебал в моей чашке и всё выхлебал?\nМихаило Иванович взглянул на свой стул и зарычал страшным голосом:\n- Кто сидел на моём стуле и сдвинул его с места?\nНастасья Петровна взглянула на свой стул и зарычала не так громко:\n- Кто сидел на моём стуле и сдвинул его с места?\nМишутка взглянул на свой сломанный стульчик и пропищал:\n- Кто сидел на моём стуле и сломал его?\nМедведи пришли в другую горницу.\n- Кто ложился на мою постель и смял её? - заревел Михаило Иваныч страшным голосом.\n- Кто ложился на мою постель и смял её? - зарычала Настасья Петровна не так громко.\nА Мишенька подставил скамеечку, полез в свою кроватку и запищал тонким голосом:\n- Кто ложился на мою постель?\nИ вдруг он увидал девочку и завизжал так, как будто его режут:\n- Вот она! Держи, держи! Вот она! Ай-я-яй! Держи!\nОн хотел ее укусить.\nДевочка открыла глаза, увидела медведей и бросилась к окну. Оно было открыто, девочка выскочила в окно и убежала. И медведи не догнали ее.", + "Каша из топора\nСтарый солдат шёл на побывку. Притомился в пути, есть хочется. Дошёл до деревни, постучал в крайнюю избу:\n- Пустите отдохнуть дорожного человека!\n Дверь отворила старуха.- Заходи, служивый.\n- А нет ли у тебя, хозяюшка, перекусить чего? Старуха всего вдоволь имела, а солдата поскупилась накормить, прикинулась сиротой.\n- Ох, добрый человек, и сама сегодня ещё ничего не ела: нечего.\n- Ну, нет так нет,- солдат говорит. Тут он приметил под лавкой топор.\n- Коли нет ничего иного, можно сварить кашу и из топора.\nХозяйка руками всплеснула:\n- Как так из топора кашу сварить?\n- А вот как, дай-ка котёл.\nСтаруха принесла котёл, солдат вымыл топор, опустил в котёл, налил воды и поставил на огонь.\nСтаруха на солдата глядит, глаз не сводит.\nДостал солдат ложку, помешивает варево. Попробовал.\n- Ну, как? - спрашивает старуха.\n- Скоро будет готова,- солдат отвечает,- жаль вот только, что посолить нечем.\n- Соль-то у меня есть, посоли.\n Солдат посолил, снова попробовал.\n- Хороша! Ежели бы сюда да горсточку крупы! Старуха засуетилась, принесла откуда-то мешочек крупы.\n- Бери, заправь как надобно.\n Заправил варево крупой. Варил, варил, помешивал, попробовал. Глядит старуха на солдата во все глаза, оторваться не может.\n- Ох, и каша хороша! - облизнулся солдат.- Как бы сюда да чуток масла - было б и вовсе объеденье.\nСтаруха нашла и масло.\nСдобрили кашу.\n- Ну, старуха, теперь подавай хлеба да принимайся за ложку: станем кашу есть!\n- Вот уж не думала, что из топора эдакую добрую кашу можно сварить, - дивится старуха.\nПоели вдвоем кашу. Старуха спрашивает:\n - Служивый! Когда ж топор будем есть?\n- Да, вишь, он не уварился,- отвечал солдат,- где-нибудь на дороге доварю да позавтракаю!\nТотчас припрятал топор в ранец, распростился с хозяйкою и пошёл в иную деревню.\nВот так-то солдат и каши поел и топор унёс!", + "Лиса и гусь\nБежала лиса, на ворон зазевалась — и попала в колодец. Воды в колодце было немного: утонуть нельзя, да и выскочить — тоже.\nСидит лиса, горюет.\nИдет козёл — умная голова, идет, бородищей трясёт, рожищами мотает; заглянул от нечего делать в колодец, увидел там лису и спрашивает:\n— Что ты там, лисонька, поделываешь?\n— Отдыхаю, голубчик,— отвечает лиса,— там, наверху, жарко, так я сюда забралась. Уж как здесь прохладно да хорошо! Водицы холодненькой — сколько хочешь!\nА козлу давно пить хочется.\n— Хороша ли вода-то?— спрашивает козёл.\n— Отличная,— отвечает лиса.— Чистая, холодная! Прыгай сюда, коли хочешь; здесь обоим нам место будет.\nПрыгнул сдуру козел, чуть лисы не задавил. А она ему:\n— Эх, бородатый дурень, и прыгнуть-то не умел — всю обрызгал.\nВскочила лиса козлу на спину да и вон из колодца.\nЧуть было не пропал козёл с голоду в колодце: насилу-то его отыскали и вытащили.\n", + "Принцесса на горошине:\nЖил-был принц, он хотел взять себе в жены принцессу, да только настоящую принцессу. Вот он и объехал весь свет, искал такую, да повсюду было что-то не то; принцесс было полно, а вот настоящие ли они, этого он никак не мог распознать до конца, всегда с ними было что-то не в порядке. Вот и воротился он домой и очень горевал: уж так ему хотелось настоящую принцессу.\nКак-то ввечеру разыгралась страшная буря; сверкала молния, гремел гром, дождь лил как из ведра, ужас что такое! И вдруг в городские ворота постучали, и старый король пошел отворять.\nУ ворот стояла принцесса. Боже мой, на кого она была похожа от дождя и непогоды! Вода стекала с ее волос и платья, стекала прямо в носки башмаков и вытекала из пяток, а она говорила, что она настоящая принцесса.\n Ну, это мы разузнаем! — подумала старая королева, но ничего не сказала, а пошла в опочивальню, сняла с кровати все тюфяки и подушки и положила на доски горошину, а потом взяла двадцать тюфяков и положила их на горошину, а на тюфяки еще двадцать перин из гагачьего пуха.\nНа этой постели и уложили на ночь принцессу.\nУтром ее спросили, как ей спалось.\n— Ах, ужасно плохо! — отвечала принцесса. — Я всю ночь не сомкнула глаз. Бог знает, что там у меня было в постели! Я лежала на чем-то твердом, и теперь у меня все тело в синяках! Это просто ужас что такое!\nТут все поняли, что перед ними настоящая принцесса. Еще бы, она почувствовала горошину через двадцать тюфяков и двадцать перин из гагачьего пуха! Такой нежной может быть только настоящая принцесса.\nПринц взял ее в жены, ведь теперь-то он знал, что берет за себя настоящую принцессу, а горошину поместили в кунсткамеру, где ее можно видеть и поныне, если только никто ее не стащил.\n", + "Лиса и тетерев\nЛиса увидела тетерева— на дереве в леску сидит, — подошла к нему и говорит:\n— Терентьюшко-батюшко, приехала я из города; слышала указ: тетеревам не летать по деревам, а ходить по земле.\n— Так что, я слезу. Да вон, лиса), кто-то идет, да что-то на плече-то несёт, да за собой что-то ведёт.\n— Хвост не крючочком ли?\n— Да, да, крючком!\n— Ах нет; мне некогда тебя ждать: у меня ножки зябнут да ребята дома ждут. Я пойду.", + "Теремок\nСтоит в поле теремок. Бежит мимо мышка-норушка. Увидела теремок, остановилась и спрашивает:\n— Терем-теремок! Кто в тереме живет? Никто не отзывается. Вошла мышка(2) в теремок и стала там жить.\nПрискакала к терему лягушка-квакушка и спрашивает:\n— Терем-теремок! Кто в тереме живет?\n— Я, мышка-норушка! А ты кто?\n— А я лягушка-квакушка.\n— Иди ко мне жить! Лягушка прыгнула в теремок. Стали они вдвоем жить.\nБежит мимо зайчик-побегайчик. Остановился и спрашивает:\n— Терем-теремок! Кто в тереме живет?— Я, мышка-норушка!\n— Я, лягушка-квакушка!\n— А ты кто?\n— А я зайчик-побегайчик.\n— Иди к нам жить! Заяц скок в теремок! Стали они втроем жить.\nИдет мимо лисичка-сестричка. Постучала в окошко и спрашивает:\n— Терем-теремок! Кто в тереме живет?\n— Я, мышка-норушка.\n— Я, лягушка-квакушка.\n— Я, зайчик-побегайчик.\n— А ты кто?\n— А я лисичка-сестричка.\n— Иди к нам жить! Забралась лисичка в теремок. Стали они вчетвером жить.\nПрибежал волчок-серый бочок,\nзаглянул в дверь и спрашивает:\n— Терем-теремок! Кто в тереме живет?\n— Я, мышка-норушка.\n— Я, лягушка-квакушка.\n— Я, зайчик-побегайчик. \n— Я, лисичка-сестричка.— А ты кто? \n— А я волчок-серый бочок. \n— Иди к нам жить! \nВолк влез в теремок. Стали они впятером жить. Вот они в теремке живут, песни поют. \n Вдруг идет медведь косолапый. Увидел медведь теремок, услыхал песни, остановился и заревел во всю мочь: \n— Терем-теремок! Кто в тереме живет? \n— Я, мышка-норушка. \n— Я, лягушка-квакушка. \n— Я, зайчик-побегайчик. \n— Я, лисичка-сестричка. \n— Я, волчок-серый бочок. \n— А ты кто? \n— А я медведь косолапый. \n— Иди к нам жить! \nМедведь и полез в теремок. Лез-лез, лез-лез — никак не мог влезть и говорит: \n— А я лучше у вас на крыше буду жить. \n— Да ты нас раздавишь. \n— Нет, не раздавлю. \n— Ну так полезай! Влез медведь на крышу и только уселся — трах! — развалился теремок. \nЗатрещал теремок, упал набок и весь развалился. Еле-еле успели из него выскочить мышка-норушка, лягушка-квакушка, зайчик-побегайчик, лисичка-сестричка, волчок-серый бочок — все целы и невредимы. \nПринялись они бревна носить, доски пилить — новый теремок строить. \n Лучше прежнего выстроили!" + + ], + + + + "ryaba":{"original": "Жили-были дед да баба. Была у них курочка ряба. Снесла курочка яичко, не простое - золотое.\nДед бил, бил - не разбил.\nБаба била, била - не разбила.\nМышка бежала, хвостиком задела, яичко упало и разбилось.\nДед плачет, баба плачет, а курочка кудахчет:\n- Не плачь, дед, не плачь, баба: снесу вам яичко не золотое - простое!", + "questions": {"1":"Кто?(персонаж мужского рода)...", + "2":"Кто?(персонаж женского рода)...", + "3":"Как курочку?...", + "4":"Что снесла(Укажите в сущесвтительное среднего рода в именительном падеже)?...", + "5":"Какой?(прилагательное)...", + "6":"Какой?(прилагательное)...", + "7":"Любое животное женского рода...", + "8":"Часть тела животного в творительном падеже(Кем?/Чем? Например, рукой, ногой)..."}}, + + "donkey":{ + "original":"Узнал осёл, что раздают уши. Он не знал точно, что такое уши, а только слышал о них. Пришёл он к тому месту, где раздавали уши и крикнул:\n— Здесь раздают уши?\n— Здесь, — отвечают ему.\n— А какие они?\n— Какие пожелаешь. Есть маленькие, есть большие, есть длинные, есть круглые...\n— А сколько они стоят?\n— Их дают бесплатно.\n«Если уши дают бесплатно, то какой же дурак станет брать маленькие».\nВот почему у осла такие длинные-длинные уши.", + "questions":{ + "1":"1.Укажите персонажа мужского рода\n", + "2":"2.Что? Существительное во множественном числе. Например, уши/кольца/яблоки\n", + "3":"3.Укажите прилагательное, отвечающее на вопрос: Какие?\n", + "4":"4.Укажите прилагательное, отвечающее на вопрос: Какие?\n", + "5":"5.Укажите прилагательное, отвечающее на вопрос: Какие?\n", + "6":"6.Укажите прилагательное, отвечающее на вопрос: Какие?\n", + "7":"7.Сколько стоят? Например, миллион рублей/бесплатно\n", + "8":"8.Введите того же персонажа(вопрос 1) в родительном падеже\n" + }}, + + "medvedi":{"original":"Одна девочка ушла из дома в лес. В лесу она заблудилась и стала искать дорогу домой, да не нашла, а пришла в лесу к домику.\nДверь была отворена; она посмотрела в дверь, видит: в домике никого нет, и вошла.\nВ домике этом жили три медведя. Один медведь был отец, звали его Михайло Иванович. Он был большой и лохматый. Другой была медведица. Она была поменьше, и её звали Настасья Петровна. Третий был маленький медвежонок, и звали его Мишутка. Медведей не было дома, они ушли гулять по лесу.\nВ домике было две комнаты. Девочка вошла в первую комнату и увидела на столе три чашки с похлебкой. Первая чашка, очень большая, была Михайлы Ивановича. Вторая чашка, поменьше, была Настасьи Петровны; третья, синенькая чашечка, была Мишуткина. Подле каждой чашки лежала ложка: большая, средняя и маленькая.\nДевочка взяла самую большую ложку и похлебала из самой большой чашки; потом взяла среднюю ложку и похлебала из средней чашки; потом взяла маленькую ложечку и похлебала из синенькой чашечки; и Мишуткина похлебка ей показалась лучше всех.\nДевочка захотела сесть и видит у стола три стула: один большой - Михайлы Ивановича; другой поменьше - Настасьи Петровны, а третий, маленький, с красненькой подушечкой - Мишуткин. Она полезла на большой стул и упала; потом села на средний стул, на нём было неловко; потом села на маленький стульчик и засмеялась - так было хорошо. Она взяла синенькую чашечку на колени и стала есть. Поела всю похлебку и стала качаться на стуле.\nСтульчик проломился, и она упала на пол. Она встала, подняла стульчик и пошла в другую горницу. Там стояли три кровати: одна большая - Михаилы Иваныча; другая средняя - Настасьи Петровны; третья - Мишенькина. Девочка легла в большую, ей было слишком просторно; легла в среднюю - было слишком высоко; легла в маленькую - кроватка пришлась ей как раз впору, и она заснула.\nА медведи пришли домой голодные и захотели обедать.\nБольшой медведь взял чашку, взглянул и заревел страшным голосом:\n- Кто хлебал в моей чашке?\nНастасья Петровна посмотрела свою чашку и зарычала не так громко:\n- Кто хлебал в моей чашке?\nА Мишутка увидал свою пустую чашку и запищал тонким голосом:\n- Кто хлебал в моей чашке и всё выхлебал?\nМихаило Иванович взглянул на свой стул и зарычал страшным голосом:\n- Кто сидел на моём стуле и сдвинул его с места?\nНастасья Петровна взглянула на свой стул и зарычала не так громко:\n- Кто сидел на моём стуле и сдвинул его с места?\nМишутка взглянул на свой сломанный стульчик и пропищал:\n- Кто сидел на моём стуле и сломал его?\nМедведи пришли в другую горницу.\n- Кто ложился на мою постель и смял её? - заревел Михаило Иваныч страшным голосом.\n- Кто ложился на мою постель и смял её? - зарычала Настасья Петровна не так громко.\nА Мишенька подставил скамеечку, полез в свою кроватку и запищал тонким голосом:\n- Кто ложился на мою постель?\nИ вдруг он увидал девочку и завизжал так, как будто его режут:\n- Вот она! Держи, держи! Вот она! Ай-я-яй! Держи!\nОн хотел ее укусить.\nДевочка открыла глаза, увидела медведей и бросилась к окну. Оно было открыто, девочка выскочила в окно и убежала. И медведи не догнали ее.", + "questions":{ + "1":"Укажите место(Куда? Например, в лес, в дом, в парк, на вокзал...)\n", + "2":"Укажите место(Где? Например, в лесу, в доме...)\n", + "3":"Укажите прилагательное(Какой? Белый, пушистый...)\n", + "4":"Укажите прилагательное(Какой? Белый, пушистый...)\n", + "5":"Укажите действие(Что делать? Например, бегать по лесу, есть печеньки, гулять)\n", + "6":"Укажите прилагательное(Какие? Голодные, большие...)\n", + "7":"Укажите глагол(Что сделал? Съел, увидел, сломал)\n", + "8":"Укажите глагол(Что сделал? Съел, увидел, сломал)\n"}}, + + "foxandgoat":{"original":"Бежала лиса, на ворон зазевалась — и попала в колодец. Воды в колодце было немного: утонуть нельзя, да и выскочить — тоже.\nСидит лиса, горюет.\nИдет козёл — умная голова, идет, бородищей трясёт, рожищами мотает; заглянул от нечего делать в колодец, увидел там лису и спрашивает:\n— Что ты там, лисонька, поделываешь?\n— Отдыхаю, голубчик,— отвечает лиса,— там, наверху, жарко, так я сюда забралась. Уж как здесь прохладно да хорошо! Водицы холодненькой — сколько хочешь!\nА козлу давно пить хочется.\n— Хороша ли вода-то?— спрашивает козёл.\n— Отличная,— отвечает лиса.— Чистая, холодная! Прыгай сюда, коли хочешь; здесь обоим нам место будет.\nПрыгнул сдуру козел, чуть лисы не задавил. А она ему:\n— Эх, бородатый дурень, и прыгнуть-то не умел — всю обрызгал.\nВскочила лиса козлу на спину да и вон из колодца.\nЧуть было не пропал козёл с голоду в колодце: насилу-то его отыскали и вытащили.\n", + "questions":{ + "1":"1.Кто? Герой женского рода. Например, Лиса\n", + "1.1":"2.Вижу кого? Тот же герой женского рода в Винительно падеже. Например, лису\n", + "1.2":"3.Нет кого? Тот же персонаж женского рода в Родительном падеже. Например, лисы\n", + "2":"4.Кто? Герой мужского рода. Например, гусь\n", + "2.1":"5. Кому? Тот же персонаж мужского рода в Дательном падеже\n", + "3":"6. Какая? Напрмер, чисая, холодная, отличная\n", + "4":"7. Какая? Напрмер, чисая, холодная, отличная\n", + "5":"8. Какая? Напрмер, чисая, холодная, отличная\n" + }}, + + + + "topor":{"original":"Старый солдат шёл на побывку. Притомился в пути, есть хочется. Дошёл до деревни, постучал в крайнюю избу:\n- Пустите отдохнуть дорожного человека!\n Дверь отворила старуха.- Заходи, служивый.\n- А нет ли у тебя, хозяюшка, перекусить чего? Старуха всего вдоволь имела, а солдата поскупилась накормить, прикинулась сиротой.\n- Ох, добрый человек, и сама сегодня ещё ничего не ела: нечего.\n- Ну, нет так нет,- солдат говорит. Тут он приметил под лавкой топор.\n- Коли нет ничего иного, можно сварить кашу и из топора.\nХозяйка руками всплеснула:\n- Как так из топора кашу сварить?\n- А вот как, дай-ка котёл.\nСтаруха принесла котёл, солдат вымыл топор, опустил в котёл, налил воды и поставил на огонь.\nСтаруха на солдата глядит, глаз не сводит.\nДостал солдат ложку, помешивает варево. Попробовал.\n- Ну, как? - спрашивает старуха.\n- Скоро будет готова,- солдат отвечает,- жаль вот только, что посолить нечем.\n- Соль-то у меня есть, посоли.\n Солдат посолил, снова попробовал.\n- Хороша! Ежели бы сюда да горсточку крупы! Старуха засуетилась, принесла откуда-то мешочек крупы.\n- Бери, заправь как надобно.\n Заправил варево крупой. Варил, варил, помешивал, попробовал. Глядит старуха на солдата во все глаза, оторваться не может.\n- Ох, и каша хороша! - облизнулся солдат.- Как бы сюда да чуток масла - было б и вовсе объеденье.\nСтаруха нашла и масло.\nСдобрили кашу.\n- Ну, старуха, теперь подавай хлеба да принимайся за ложку: станем кашу есть!\n- Вот уж не думала, что из топора эдакую добрую кашу можно сварить, - дивится старуха.\nПоели вдвоем кашу. Старуха спрашивает:\n - Служивый! Когда ж топор будем есть?\n- Да, вишь, он не уварился,- отвечал солдат,- где-нибудь на дороге доварю да позавтракаю!\nТотчас припрятал топор в ранец, распростился с хозяйкою и пошёл в иную деревню.\nВот так-то солдат и каши поел и топор унёс!", + "questions":{ + "1":"1.Кто? Герой мужского пола\n", + "1.1":"1.1.Кого? Герой мужского пола\n", + "2":"2.Что? Герой женского пола\n", + "2.1":"2.1.С кем? герой женского пола\n", + "3":"3.Что? предмет мужского рода. Например, топор\n", + "3.1":"3.1.Чего? предмет мужского рода", + "4":"4.Что? // Вижу что? название еды. Например, кашу\n", + "4.1":"4.1.Что? название еды. Например, каша\n", + "4.2":"Чего? название еды. Например, каши\n" + }}, + + "man":["Кощей", "Чиполлино", "Бармалей", "Король", "Дед", "Принц", "Шрек", "Кот в сапогах", "Карлсон", "Чебурашка", "Питер Пен", "Крош", + "Винни Пух", "Иванушка-дурачок", "Фунтик"], + "woman":["Баба", "Жасмин", "Нюша", "Мэри Поппинс", "Алиса", "Алиса Селезнева", "Белоснежка", "Герда", "Красная шапочка", "Баба-Яга", + "Русалочка", "Элли из канзаса", "Внучка", "Жучка", "Золушка", "Фея-крестная", "Фиона", "Василиса Премудрая", "Шапокляк"], + "namebirds":["Маша", "Ряба", "Жаба", "Даша", "Ида", "Галя", "фея", "не курочка", "дурочка"], + "subj":["яичко","кольцо", "яблочко"], + "adj":["простое", "золотое", "серебрянное", "хрустальное", "волшебное", "ароматное", "вкусное", "румяное", + "новое", "старое", "рубиновое", "изумрудное", "дорогое","дешевое", "чудотворное", + "молодильное", "свежее", "умное", "силы придающее", "чудо приносящее", "счастливое"], + "animalm":["Лев", "Кот", "Крот", "Дракон", "Тушканчик", "Мыш", "Жираф", "Поросенок", "Кузнечик", "Хомяк", "Таракан", + "Тигр", "Гепард", "Медведь","Леопард", "Кабан", "Лемур", "Жук-навозник", "Слон", "Олень", "Селезнь", "Петух", "Козел", + "Лис", "Конь", "Гусь", "Бобер"], + "animalswoman":["Мышка", "Лебедь", "Кошка", "Собачка", "Зебра", "Лягушка", "Крыска-Лариска", "Рыбка"], + "part":["хвостом", "животом", "рукой", "ногой", "ухом", "копытом", "усами", "рогами", "головой", "крылом", "зубами"], + "subjects":["Репка","Тыква"], + "plural":["уши","ноги", "руки", "глаза","рукава","карманы","деньги","амбиции","карты"], + "adjpl":["красивые","большие","короткие","золотые","дорогие","дешевые","важные","настоящие","маленькие", + "крохотные","огромные","великолепные","приятные","изумрудные"], + "pril":["голодные","злые","добрые", "добродушные", "красивые","умные","серьезные","глупые", "раcтерянные"], + "how":["за миллион рублей", "бесплатно","за 10 рублей","за 3000 долларов","за 1 рог единорога","за слезы небесной гусыни"], + "adjmsg":["большой", "красивый", "приятный", "грязный", "лохматый", "пушистый", "мягкий", "сердитый", "лысый", "коричневый", + "толстый", "худой", "умный", "глупый", "упрямый", "ухоженный", "приятный", "опрятный"], + "place1":["в лес", "в магазин","в холодильник","в парк","на завод","в Россию","на пляж","на море","в сад","в бмблиотеку", + "в космос", "на Марс","на остров", "в пещеру", "в заповедник","в кафе ","в кино"], + "place2":["в лесу","в магазине","в холодильнике", "в парке","на заводе","в России","на пляже", "на море", "в саду", + "в библиотеке", "в космосе", "на Марсе", "на острове", "в пещере", "в заповеднике", "в кафе", "в китино", "в ресторане"], + "action":["гулять в лесу", "петь песни", "танцевать польку", "есть печеньки","работать", "гулять", "обедать в кафе", + "смотреть фильмы", "смотреть сериалы", "гулять с друзьями", "пить чай", "готовить ужин", "покупать вещи", "покупать продукты"], + "verb":["съел", "купил", "сломал", "выкинул", "выбросил", "отодвинул", "задвинул", "отбросил", "подарил", "убрал", "отремонтировал", + "покрасил", "смастерил", "украл"], + "ingridients":["топор", "лом", "стул", "стол", "молоток", "кол","бур", "петух", "лес", "ковер", "диван", "рюкзак", "карандаш", "ластик"], +"poridge1":["гречка", "каша", "овсянка", "манка", "крупа", "ягода", "фрукты"], + "poridge2":["гречку", "кашу", "овсянку", "манку", "крупу", "ягоду", "фруктов"], + "poridge3":["гречки", "каши", "овсянки", "манки", "крупы", "ягоды", "фрукты"], + "adjwsg":["догрогая", "горячая", "холодная", "ледяная", "золотая", "отличная", "плохая","мудрая", "дешевая", + "изумрудная", "веселая", "смешная", "глупая", "грустная","теплая","громкая","тихая"] +} \ No newline at end of file diff --git a/Fairytale.py b/Fairytale.py new file mode 100644 index 0000000..6ff3b56 --- /dev/null +++ b/Fairytale.py @@ -0,0 +1,271 @@ +# -*-coding:utf-8-*- +import re +import json +import random + +TALE = open("Fairytale.json") +data = json.load(TALE) + + +# Открываем меню +def menu(): + try: + welcome = int(input(data["welcome"]["1"])) # определяемся какую сказку мы хотим: Сразу готовую или по + # шаблону + if welcome == 1: + print(patternselection()) + else: + print(random.choice(data["tales"])) + except ValueError: + print("Ой, что-то пошло не так. Выберите 1 или 2!") + menu() + + +# Выбираем шаблон +def patternselection(): + try: + template = int(input(data["welcome"]["2"])) # В случае выбора сказки по шаблону, выбираем шаблон + if template == 1: + patternRyaba() + elif template == 2: + print(patternMedvedi()) + elif template == 3: + print(patternDonkey()) + elif template == 4: + print(patternTopor()) + elif template == 5: + print(patternFoxAndGoat()) + except ValueError: + print("Ой, что-то пошло не так. Используйте только цифры !") + patternselection() + + +def get_ready_tale(): + return random.choice(data["tales"]) + + +# функция предлагает загрузить оригинал +def original(tale): + try: + orig = int(input("Хотите увидеть оригинал сказки?\n1.Да, хочу\n2.Нет, не хочу\n")) + if orig == 1: + print(tale, menu()) + else: + menu() + except ValueError: + print("Ой, что-то пошло не так. Выберите 1 или 2!") + + # ШАБЛОНЫ + + +# Выбираем способ заполнения шаблона Курочка Ряба +def patternRyaba(): + try: + vvod = int(input(data["welcome"]["3"])) + if vvod == 1: + print(Ryaba(), original(data["ryaba"]["original"])) + elif vvod == 2: + print(AvtoRyaba(), original(data["ryaba"]["original"])) + except ValueError: + print("Ой, что-то пошло не так. Выберите 1 или 2!") + patternRyaba() + + +# Cледующая функция задает вопросы пользователю и вставляет их в шаблон "Курочки Рябы" +def Ryaba(): + text1 = re.sub(u'[Дд]ед', (input(data["ryaba"]["questions"]["1"])).decode('utf-8'), + data["ryaba"]["original"]) + text2 = re.sub(u'[Бб]аба', (input(data["ryaba"]["questions"]["2"])).decode('utf-8'), text1) + text3 = re.sub(u'ряба', (input(data["ryaba"]["questions"]["3"])).decode('utf-8'), text2) + text4 = re.sub(u'яичко', (input(data["ryaba"]["questions"]["4"])).decode('utf-8'), text3) + text5 = re.sub(u'простое', (input(data["ryaba"]["questions"]["5"])).decode('utf-8'), text4) + text6 = re.sub(u'золотое', (input(data["ryaba"]["questions"]["6"])).decode('utf-8'), text5) + text7 = re.sub(u'Мышка', (input(data["ryaba"]["questions"]["7"])).decode('utf-8'), text6) + text8 = re.sub(u'хвостиком', (input(data["ryaba"]["questions"]["8"])).decode('utf-8'), text7) + print("\nВаша сказка готова:") + return text8 + + +# Cледующая функция случайным образом заполняет шаблон "Курочки Рябы" +def AvtoRyaba(): + text1 = re.sub(u'[Дд]ед', random.choice(data["man"]), data["ryaba"]["original"]) + text2 = re.sub(u'[Бб]аба', random.choice(data["woman"]), text1) + text3 = re.sub(u'ряба', random.choice(data["namebirds"]), text2) + text4 = re.sub(u'яичко', random.choice(data["subj"]), text3) + text5 = re.sub(u'простое', random.choice(data["adj"]), text4) + text6 = re.sub(u'золотое', random.choice(data["adj"]), text5) + text7 = re.sub(u'Мышка', random.choice(data["animalswoman"]), text6) + text8 = re.sub(u'хвостиком', random.choice(data["part"]), text7) + return text8 + + +# Выбираем способ заполнения шаблона donkey +def patternDonkey() -> object: + try: + vvod = int(input(data["welcome"]["3"])) + if vvod == 1: + print(donkey(), original(data["donkey"]["original"])) + elif vvod == 2: + print(Avtodonkey(), original(data["donkey"]["original"])) + except ValueError: + print("Ой, что-то пошло не так. Выберите 1 или 2!") + patternDonkey() + + +# Заполняем шаблон Ослик с клавиатуры +def donkey(): + text1 = re.sub(u'ос[ёе]л', (input(data["donkey"]["questions"]["1"])).decode('utf-8'), + data["donkey"]["original"]) + text2 = re.sub(u'уши', (input(data["donkey"]["questions"]["2"])).decode('utf-8'), text1) + text3 = re.sub(u'маленькие', (input(data["donkey"]["questions"]["3"])).decode('utf-8'), text2) + text4 = re.sub(u'большие', (input(data["donkey"]["questions"]["4"])).decode('utf-8'), text3) + text5 = re.sub(u'длинные', (input(data["donkey"]["questions"]["5"])).decode('utf-8'), text4) + text6 = re.sub(u'круглые', (input(data["donkey"]["questions"]["6"])).decode('utf-8'), text5) + text7 = re.sub(u'Их дают бесплатно', (input(data["donkey"]["questions"]["7"])).decode('utf-8'), text6) + text8 = re.sub(u'осла', (input(data["donkey"]["questions"]["8"])).decode('utf-8'), text7) + print("\nВаша сказка готова:") + return text8 + + +# ЗАполняем Шаблон ослик случайным образом +def Avtodonkey(): + word = random.choice(data["animalm"]) + text1 = re.sub(u'осёл', word, data["donkey"]["original"]) + text2 = re.sub(u'уши', random.choice(data["plural"]), text1) + text3 = re.sub(u'маленькие', random.choice(data["adjpl"]), text2) + text4 = re.sub(u'большие', random.choice(data["adjpl"]), text3) + text5 = re.sub(u'длинные', random.choice(data["adjpl"]), text4) + text6 = re.sub(u'круглые', random.choice(data["adjpl"]), text5) + text7 = re.sub(u'бесплатно', random.choice(data["how"]), text6) + text8 = re.sub(u'осла', word + u'а', text7) + print("\nВаша сказка готова:") + return text8 + + +# Выбираем способ заполнения шаблона Три медведя +def patternMedvedi(): + try: + vvod = int(input(data["welcome"]["3"])) + if vvod == 1: + print(Medvedi(), original(data["medvedi"]["original"])) + elif vvod == 2: + print(AvtoMedvedi(), original(data["medvedi"]["original"])) + except ValueError: + print("Ой, что-то пошло не так. Выберите 1 или 2!") + patternMedvedi() + + +# Заполняем шаблон "Три медведя" с клавиатуры +def Medvedi(): + text1 = re.sub(u'в лес', (input(data["medvedi"]["questions"]["1"])).decode('utf-8'), + data["medvedi"]["original"]) + text2 = re.sub(u'в лесу', (input(data["medvedi"]["questions"]["2"])).decode('utf-8'), text1) + text3 = re.sub(u'большой', (input(data["medvedi"]["questions"]["3"])).decode('utf-8'), text2) + text4 = re.sub(u'лохматый', (input(data["medvedi"]["questions"]["4"])).decode('utf-8'), text3) + text5 = re.sub(u'гулять по лесу', (input(data["medvedi"]["questions"]["5"])).decode('utf-8'), text4) + text6 = re.sub(u'голодные', (input(data["medvedi"]["questions"]["6"])).decode('utf-8'), text5) + text7 = re.sub(u'сдвинул', (input(data["medvedi"]["questions"]["7"])).decode('utf-8'), text6) + text8 = re.sub(u'сломал', (input(data["medvedi"]["questions"]["8"])).decode('utf-8'), text7) + print("\nВаша сказка готова:") + return text8 + + +# Заполняем шаблон "Три Медведя" случайным образом +def AvtoMedvedi(): + text1 = re.sub(u'в лес', random.choice(data["place1"]), data["medvedi"]["original"]) + text2 = re.sub(u'[Вв] лесу', random.choice(data["place2"]), text1) + text3 = re.sub(u'большой', random.choice(data["adjmsg"]), text2) + text4 = re.sub(u'лохматый', random.choice(data["adjmsg"]), text3) + text5 = re.sub(u'гулять по лесу', random.choice(data["action"]), text4) + text6 = re.sub(u'голодные', random.choice(data["pril"]), text5) + text7 = re.sub(u'сдвинул', random.choice(data["verb"]), text6) + text8 = re.sub(u'сломал', random.choice(data["verb"]), text7) + print("\nВаша сказка готова:") + return text8 + + +# Проделываем те же операции с шаблоном "Каша из топора", что и спредыдщими +def patternTopor(): + try: + vvod = int(input(data["welcome"]["3"])) + if vvod == 1: + print(Topor(), original(data["topor"]["original"])) + elif vvod == 2: + print(AvtoTopor(), original(data["topor"]["original"])) + except ValueError: + print("Ой, что-то пошло не так. Выберите 1 или 2!") + patternTopor() + + +def Topor(): + word = (input(data["topor"]["questions"]["1"])).decode('utf-8') + text1 = re.sub(u'[Сс]олдат', word, data["topor"]["original"]) + text11 = re.sub(u'[Сс]луживый', word, text1) + word2 = (input(data["topor"]["questions"]["2"])).decode('utf-8') + text2 = re.sub(u'[Сс]таруха', word2, text11) + text3 = re.sub(u'[хХ]озяйка', word2, text2) + text4 = re.sub(u'[Хх]озяйкою', (input(data["topor"]["questions"]["2.1"])).decode('utf-8'), text3) + text5 = re.sub(u'топор', (input(data["topor"]["questions"]["3"])).decode('utf-8'), text4) + text7 = re.sub(u'кашу', (input(data["topor"]["questions"]["4"])).decode('utf-8'), text5) + text8 = re.sub(u'каша', (input(data["topor"]["questions"]["4.1"])).decode('utf-8'), text7) + text9 = re.sub(u'каши', (input(data["topor"]["questions"]["4.2"])).decode('utf-8'), text8) + print("\nВаша сказка готова:") + return text9 + + +def AvtoTopor(): + word = random.choice(data["man"]) + text1 = re.sub(u'[Сс]олдат', word, data["topor"]["original"]) + text2 = re.sub(u'[Сс]луживый', word, text1) + text3 = re.sub(u'[Сс]таруха', random.choice(data["woman"]), text2) + text4 = re.sub(u'топор', random.choice(data["ingridients"]), text3) + text5 = re.sub(u'каша', random.choice(data["poridge1"]), text4) + text6 = re.sub(u'кашу', random.choice(data["poridge2"]), text5) + text7 = re.sub(u'каши', random.choice(data["poridge3"]), text6) + print("\nВаша сказка готова:") + return text7 + + +# Проделываем те же операции с шаблоном "Лиса и козел# ", что и спредыдщими +def patternFoxAndGoat(): + try: + vvod = int(input(data["welcome"]["3"])) + if vvod == 1: + print(FoxandGoat(), original(data["foxandgoat"]["original"])) + elif vvod == 2: + print(AvtoFoxandGoat(), original(data["foxandgoat"]["original"])) + except ValueError: + print("Ой, что-то пошло не так. Выберите 1 или 2!") + patternFoxAndGoat() + + +def FoxandGoat(): + word = (input(data["foxandgoat"]["questions"]["1"])).decode('utf-8') + text1 = re.sub(u'лиса', word, data["foxandgoat"]["original"]) + text11 = re.sub(u'лисонька', word, text1) + text2 = re.sub(u'лису', (input(data["foxandgoat"]["questions"]["1.1"])).decode('utf-8'), text11) + text3 = re.sub(u'лисы', (input(data["foxandgoat"]["questions"]["1.2"])).decode('utf-8'), text2) + text4 = re.sub(u'коз[ёе]л', (input(data["foxandgoat"]["questions"]["2"])).decode('utf-8'), text3) + text5 = re.sub(u'козлу', (input(data["foxandgoat"]["questions"]["2.1"])).decode('utf-8'), text4) + text7 = re.sub(u'[Оо]тличная', (input(data["foxandgoat"]["questions"]["3"])).decode('utf-8'), text5) + text8 = re.sub(u'[Чч]истая', (input(data["foxandgoat"]["questions"]["4"])).decode('utf-8'), text7) + text9 = re.sub(u'холодная', (input(data["foxandgoat"]["questions"]["5"])).decode('utf-8'), text8) + print("\nВаша сказка готова:") + return text9 + + +def AvtoFoxandGoat(): + word = random.choice(data["woman"]) + word1 = random.choice(data["man"]) + text1 = re.sub(u'лис[ауы]', word, data["foxandgoat"]["original"]) + text2 = re.sub(u'лисонька', word, text1) + text3 = re.sub(u'коз[ёе]л', word1, text2) + text4 = re.sub(u'козлу', word1, text3) + text5 = re.sub(u'[Оо]тличная', random.choice(data["adjwsg"]), text4) + text6 = re.sub(u'[Чч]истая', random.choice(data["adjwsg"]), text5) + text7 = re.sub(u'холодная', random.choice(data["adjwsg"]), text6) + print("\nВаша сказка готова:") + return text7 + + +# menu() diff --git a/InterfaceFairytale.py b/InterfaceFairytale.py new file mode 100644 index 0000000..ea6c50a --- /dev/null +++ b/InterfaceFairytale.py @@ -0,0 +1,112 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +# TODO: было import sys, json не удобно, когда кода много читающий его человек хочет видеть каждый импорт отдельно +# import sys, json +import sys +import json +import Fairytale +from PyQt4 import QtCore, QtGui + +# TODO: from something import * используется только для импортов конфигов с константами, +# тем более предыдущей строкой ты уже импортнула модули QtCore и QtGui +# from PyQt4.QtCore import * +# from PyQt4.QtGui import * + +TALE = open("Fairytale.json") +data = json.load(TALE) + + +class MyWindow(QtGui.QMainWindow): + def __init__(self, parent=None): + QtGui.QMainWindow.__init__(self, parent=parent) + self.setGeometry(350, 80, 500, 400) + self.setMinimumSize(QtCore.QSize(800,600)) + self.setWindowTitle(u'Генератор сказок') + self.setWindowIcon(QtGui.QIcon('poop.png')) + + exit = QtGui.QAction(QtGui.QIcon('bender.png'), u'Выход', self) + exit.setShortcut('Ctrl+Q') + exit.setStatusTip('Exit application') + self.connect(self, QtCore.SIGNAL('closeEmitApp()'), QtCore.SLOT('close()')) + self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()')) + + +class StartWindow(MyWindow): + def __init__(self, parent=None): + MyWindow.__init__(self, parent=parent) + + welcome_label = QtGui.QLabel(data['welcome']['1']) + welcome_label.adjustSize() + + layout = self.layout() + layout.addWidget(welcome_label) + + pattern_button = QtGui.QPushButton(u'Используем шаблон') + pattern_button.adjustSize() + ready_button = QtGui.QPushButton(u'Хочу готовую сказку!') + ready_button.adjustSize() + + ready_button.move(0, welcome_label.size().height()) + pattern_button.move(ready_button.width(), welcome_label.size().height()) + layout.addWidget(ready_button) + layout.addWidget(pattern_button) + + main = MainWindow(parent=self) + + ready_button.clicked.connect(main.show) + + +class MainWindow(QtGui.QMainWindow): + def __init__(self, parent=None): + QtGui.QMainWindow.__init__(self, parent=parent) + self.setGeometry(350, 80, 500, 400) + self.setWindowTitle(u'Генератор сказок') + self.setWindowIcon(QtGui.QIcon('poop.png')) + + exit = QtGui.QAction(QtGui.QIcon('bender.png'), u'Выход', self) + exit.setShortcut('Ctrl+Q') + exit.setStatusTip('Exit application') + self.connect(self, QtCore.SIGNAL('closeEmitApp()'), QtCore.SLOT('close()')) + self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()')) + + centralwidget = QtGui.QWidget() + self.setCentralWidget(centralwidget) + + vbox = QtGui.QVBoxLayout() + hbox = QtGui.QHBoxLayout() + hbox1 = QtGui.QHBoxLayout() + + textbox1 = QtGui.QPlainTextEdit() + button1 = QtGui.QPushButton(u'Готовая сказка') + button2 = QtGui.QPushButton(u'Хочу сделать сам') + textbox2 = QtGui.QLineEdit() + + vbox.addWidget(textbox1) + vbox.addLayout(hbox1) + vbox.addLayout(hbox) + hbox1.addWidget(textbox2) + hbox.addWidget(button1) + hbox.addWidget(button2) + centralwidget.setLayout(vbox) + + self.statusBar() + + menubar = self.menuBar() + file = menubar.addMenu(u'Файл') + file.addAction(exit) + + def closeEvent(self, event): + reply = QtGui.QMessageBox.question(self, u'Подтверждение действия', + u"Вы уверены, что хотите выйти? Yes - Да, No - Нет", QtGui.QMessageBox.Yes, + QtGui.QMessageBox.No) + if reply == QtGui.QMessageBox.Yes: + event.accept() + else: + event.ignore() + + +app = QtGui.QApplication(sys.argv) +start = StartWindow() +start.show() +sys.exit(app.exec_())