From 0c9bf8fa9adbf218c84e9b8e316333b4a87b2632 Mon Sep 17 00:00:00 2001 From: Anatoly Korobov Date: Wed, 13 Jul 2022 10:42:27 +0300 Subject: [PATCH] add author solutions --- .flake8 | 2 + Pipfile | 19 +++++++ Pipfile.lock | 138 +++++++++++++++++++++++++++++++++++++++++++++++ main.py | 10 ++-- main_auth.py | 98 +++++++++++++++++++++++++++++++++ requirements.txt | 23 ++++++++ 6 files changed, 285 insertions(+), 5 deletions(-) create mode 100644 .flake8 create mode 100644 Pipfile create mode 100644 Pipfile.lock create mode 100644 main_auth.py create mode 100644 requirements.txt diff --git a/.flake8 b/.flake8 new file mode 100644 index 000000000..311e2d4f5 --- /dev/null +++ b/.flake8 @@ -0,0 +1,2 @@ +[flake8] +ignore = W292 diff --git a/Pipfile b/Pipfile new file mode 100644 index 000000000..0f468963b --- /dev/null +++ b/Pipfile @@ -0,0 +1,19 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +flake8 = "*" +flake8-complex-f-strings = "*" +flake8-bugbear = "*" +flake8-eradicate = "*" +flake8-pie = "*" +flake8-variables-names = "*" +flake8-quotes = "*" +flake8-printf-formatting = "*" + +[dev-packages] + +[requires] +python_version = "3.9" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 000000000..9aff72aa0 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,138 @@ +{ + "_meta": { + "hash": { + "sha256": "bef6915d394e5f63b0341f2f6ecb79893d86354607387e2718554deb4a94b3d6" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.9" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "attrs": { + "hashes": [ + "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", + "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==21.4.0" + }, + "eradicate": { + "hashes": [ + "sha256:8bfaca181db9227dc88bdbce4d051a9627604c2243e7d85324f6d6ce0fd08bb2", + "sha256:aac7384ab25b1bf21c4c012de9b4bf8398945a14c98c911545b2ea50ab558014" + ], + "version": "==2.1.0" + }, + "flake8": { + "hashes": [ + "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d", + "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d" + ], + "index": "pypi", + "version": "==4.0.1" + }, + "flake8-bugbear": { + "hashes": [ + "sha256:db5d7a831ef4412a224b26c708967ff816818cabae415e76b8c58df156c4b8e5", + "sha256:e450976a07e4f9d6c043d4f72b17ec1baf717fe37f7997009c8ae58064f88305" + ], + "index": "pypi", + "version": "==22.7.1" + }, + "flake8-complex-f-strings": { + "hashes": [ + "sha256:d402355ae5ed0415c0a5a48b57c2fad86daddc85cbf32b90d9a273360cb10b5b", + "sha256:d5525667d93d4f179d6d13f8553d4b3bc3be867640d9a229a331b953e6b759e2" + ], + "index": "pypi", + "version": "==0.1.0" + }, + "flake8-eradicate": { + "hashes": [ + "sha256:00d77faefb64cef18b3c1b48a004c3a2ad663aa3cf85650f422437d25ece6441", + "sha256:e486f8ab7e2dba3667223688e9239158fbf4ecaa88125e2283bcda81171412b7" + ], + "index": "pypi", + "version": "==1.2.1" + }, + "flake8-pie": { + "hashes": [ + "sha256:47fd9d232b419f8db7a6465dee95cc24b385b1b8bdfd62b65250d70eaa06fc89", + "sha256:a2d1e67a374d925f688300e9d0e202d1827a0d91e0a11114f712beee639bdc7c" + ], + "index": "pypi", + "version": "==0.15.0" + }, + "flake8-printf-formatting": { + "hashes": [ + "sha256:0f9e1308ac290356e4b271d4f26adfc3f9165680a7b6c221503b0f3e155a2784", + "sha256:d908ffabdf08581043a50572744fd60563d82386630b0335445894120089d2df" + ], + "index": "pypi", + "version": "==1.1.2" + }, + "flake8-quotes": { + "hashes": [ + "sha256:633adca6fb8a08131536af0d750b44d6985b9aba46f498871e21588c3e6f525a" + ], + "index": "pypi", + "version": "==3.3.1" + }, + "flake8-variables-names": { + "hashes": [ + "sha256:30133e14ee2300e13a60393a00f74d98110c76070ac67d1ab91606f02824a7e1", + "sha256:e3277031696bbe10b5132b49938cde1d70fcae9561533b7bd7ab8e69cb27addb" + ], + "index": "pypi", + "version": "==0.0.5" + }, + "mccabe": { + "hashes": [ + "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", + "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + ], + "version": "==0.6.1" + }, + "pycodestyle": { + "hashes": [ + "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20", + "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.8.0" + }, + "pyflakes": { + "hashes": [ + "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c", + "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.4.0" + }, + "setuptools": { + "hashes": [ + "sha256:16923d366ced322712c71ccb97164d07472abeecd13f3a6c283f6d5d26722793", + "sha256:db3b8e2f922b2a910a29804776c643ea609badb6a32c4bcc226fd4fd902cce65" + ], + "markers": "python_version >= '3.7'", + "version": "==63.1.0" + }, + "typing-extensions": { + "hashes": [ + "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02", + "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6" + ], + "markers": "python_version >= '3.7'", + "version": "==4.3.0" + } + }, + "develop": {} +} diff --git a/main.py b/main.py index bf22772ff..cba3b7885 100644 --- a/main.py +++ b/main.py @@ -2,21 +2,21 @@ def attack(char_name, char_class): - if char_class == 'warior': - return (f'{char_name} нанес урон противнику равный {5 + randint(3, 5)}') + if char_class == 'warrior': + return ('{0} нанес урон противнику равный {1}'.format(char_name, 5 + randint(3, 5))) if char_class == 'mage': return (f'{char_name} нанес урон противнику равный {5 + randint(5, 10)}') if char_class == 'healer': return (f'{char_name} нанес урон противнику равный {5 + randint(-3, -1)}') def defence(char_name, char_class): - if char_class == 'warior': + if char_class == 'warrior': return (f'{char_name} блокировал {10 + randint(5, 10)} урона') if char_class == 'mage': return (f'{char_name} блокировал {10 + randint(-2, 2)} урона') if char_class == 'healer': return (f'{char_name} блокировал {10 + randint(2, 5)} урона') def special(char_name, char_class): - if char_class == 'warior': + if char_class == 'warrior': return (f'{char_name} примернил специальное умение - выпосливось {80 + 25}') if char_class == 'mage': return (f'{char_name} примернил специальное умение - атака {5 + 40}') @@ -74,4 +74,4 @@ def main(): print(start_training(char_name, char_class)) -main() \ No newline at end of file +main() diff --git a/main_auth.py b/main_auth.py new file mode 100644 index 000000000..b06044c70 --- /dev/null +++ b/main_auth.py @@ -0,0 +1,98 @@ +from random import randint + + +def attack(char_name, char_class): + if char_class == 'warrior': + return ( + f'{char_name} нанес урон противнику равный {5 + randint(3, 5)}' + ) + if char_class == 'mage': + return ( + f'{char_name} нанес урон противнику равный {5 + randint(5, 10)}' + ) + if char_class == 'healer': + return ( + f'{char_name} нанес урон противнику равный {5 + randint(-3, -1)}' + ) + + +def defence(char_name, char_class): + if char_class == 'warrior': + return (f'{char_name} блокировал {10 + randint(5, 10)} урона') + if char_class == 'mage': + return (f'{char_name} блокировал {10 + randint(-2, 2)} урона') + if char_class == 'healer': + return (f'{char_name} блокировал {10 + randint(2, 5)} урона') + + +def special(char_name, char_class): + if char_class == 'warrior': + return ( + f'{char_name} примернил специальное ' + 'умение - выпосливось {80 + 25}' + ) + if char_class == 'mage': + return (f'{char_name} примернил специальное умение - атака {5 + 40}') + if char_class == 'healer': + return (f'{char_name} примернил специальное умение - защита {10 + 30}') + + +def start_training(char_name, char_class): + if char_class == 'warrior': + print(f'{char_name}, ты Воитель - отличный боец ближнего боя.') + if char_class == 'mage': + print(f'{char_name}, ты Маг - превосходный укротитель стихий.') + if char_class == 'healer': + print(f'{char_name}, ты Лекарь - чародей способный исцелять раны.') + print('Теперь можно потренироваться в управлении полученными навыками.') + print( + 'Введи одну из команд: attack для проведения атаки, ' + 'defence - блокирование атаки противника и special ' + '- активация специальной возможности класса.' + ) + print('Чтобы пропустить тренировку введите - skip') + cmd = None + while cmd != 'skip': + cmd = input('Введите команду: ') + if cmd == 'attack': + print(attack(char_name, char_class)) + if cmd == 'defence': + print(defence(char_name, char_class)) + if cmd == 'special': + print(special(char_name, char_class)) + return 'Тренировка окончена' + + +def choice_char_class(): + approve_choice = None + char_class = None + while approve_choice != 'y': + char_class = input( + 'Для выбора класса персонажа введите его ' + 'название (warrior, mage, healer): ' + ) + if char_class == 'warrior': + print('Описание воителя ....') + if char_class == 'mage': + print('Описание мага ....') + if char_class == 'healer': + print('Опиание лекаря ....') + approve_choice = input( + 'Подтвердите (Y) или повторите (any key) выбор ' + ).lower() + return char_class + + +def main(): + print('Приветствую тебя искатель приключений!') + print('Прежде чем войти в игру') + char_name = input('Назови себя: ') + print(f'Здравствуй, {char_name}! ' + 'Сейчас твоя выносливость 80, атака 5 и защита 10.') + print('Но ты можешь выбрать один из трех путей силы.') + print('Воитель, Маг, Лекарь') + char_class = choice_char_class() + print(start_training(char_name, char_class)) + + +main() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..5e76707e6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,23 @@ +# +# These requirements were autogenerated by pipenv +# To regenerate from the project's Pipfile, run: +# +# pipenv lock --requirements +# + +-i https://pypi.org/simple +attrs==21.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +eradicate==2.1.0 +flake8-bugbear==22.7.1 +flake8-complex-f-strings==0.1.0 +flake8-eradicate==1.2.1 +flake8-pie==0.15.0 +flake8-printf-formatting==1.1.2 +flake8-quotes==3.3.1 +flake8-variables-names==0.0.5 +flake8==4.0.1 +mccabe==0.6.1 +pycodestyle==2.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +pyflakes==2.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +setuptools==63.1.0; python_version >= '3.7' +typing-extensions==4.3.0; python_version >= '3.7'