Форум программистов, компьютерный форум, киберфорум
Python: PyGame
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.12.2024
Сообщений: 4

Как организовать словари с весами?

16.12.2024, 16:50. Показов 753. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, у меня в игре есть враги, предметы, всякие эффекты и т.д., есть их веса (например, веса врагов):

Python
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
self.веса_врагов = { (я ещё не забалансил, это на рандом пример)
            'павук': 350, 
            'цветы': 240, 
            'зомби': 250,
            'скелет': 300,
            'солнце': 100,
            'крокодил':10,
            'глаз':70,
            'слизь': 30,
            'зеркало':40,
            'ожившие доспехи': 30, 
            'голем': 25,
            'голем брони': 25,
            'груда костей': 50,
            'денежный монстр': 20,
            'туча': 50,
            'паук с бомбой': 35,
            'берсерк': 35,
            }
 
self.враги_данные = {
    'павук': {
        'урон': (5, 10),
        'здоровье': (15, 25),
        'монеты': 0.2,
        'armor': (0, 0),
    },
    'берсерк': {
        'урон': (5, 10),
        'здоровье': (100, 150),
        'монеты': 0.2,
        'armor': (0, 0),
    },
    'зомби': {
        'урон': (5, 10),
        'здоровье': (24, 39),
        'монеты': 0.25,
        'armor': (0, 0),
    },
    'скелет': {
        'урон': (7, 12),
        'здоровье': (20, 27),
        'монеты': 0.25,
        'armor': (0, 0),
   ....... (и так далее)
}
так вот у меня также есть уровень сложности self.gamedata.difficulty_level и в зависимости от него должны изменятся вероятности врагов допустим каждые 100 уровней, для этого я создал новые словари с 2кой в конце:

Python
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
 self.веса_врагов2 = {
            'павук': 250, 
            'цветы': 140, 
            'солнце': 110,
            'крокодил':10,
            'глаз':110,
           'голем': 70,
            'голем брони': 90,
            'груда костей': 50,
            'денежный монстр': 40,
            'туча': 50,
            'паук с бомбой': 35,
            }
 
  self.враги_данные2 = {
    'павук': {
        'урон': (7, 16),
        'здоровье': (30, 40),
        'монеты': (8), 
    },
    'цветы': {
        'урон': (20, 30),
        'здоровье': (55, 65),
        'монеты': (6.5), 
    },
    'солнце': {
        'урон': (10, 15),
        'здоровье': (45, 59),
        'монеты': (4.5), 
    },
    'крокодил': {
        'урон': (70, 80),
        'здоровье': (400, 550),
        'монеты': (2), 
(и так далее)
и далее я хочу создать словари с цифрой 3,4 и так до 10, а потом враги просто будут усилятся и их значения и вероятности не будут меняться. так вот, подскажите пожалуйста, весь этот код со словарями занимает у меня огромное место в программе и по этим словарям довольно сложно ориентироваться, как лучше это организовать чтобы было красивее и понятнее? Я программист-новичок так что буду рад любой помощи
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.12.2024, 16:50
Ответы с готовыми решениями:

Python 2.7. Как удобнее всего реализовать ориентированный граф со сложными весами?
Нужно работать с графом, содержащим во многих вершинах и ребрах набор разнотипных значений. Например, в рёбрах находится информация в...

Как устроены словари dict?
Добрый день. Учу питон и столкнулся с такой особенностью: d={'a': '123', 'b': 'qwe', 'c': 'asdvsdf', '2': '123123'} print d ...

Как организовать вывод на экран: просроченных товаров? И организовать поиск
Cоставить программу обработки файла данных, содержащего структуру записи: Код товара Наименование товара Фирма изготовитель ...

3
 Аватар для Semen-Semenich
5218 / 3466 / 1172
Регистрация: 21.03.2016
Сообщений: 8,289
16.12.2024, 17:58
выносишь в отдельный файл (файлы - хоть по словарю в каждый. как тебе удобней) а в основной импортируешь
1
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,761
17.12.2024, 11:22
Цитата Сообщение от w1004w Посмотреть сообщение
огромное место в программе
про json почитай
https://pythonist.ru/format-dannyh-json-v-python/
а по взрослому - база данных типа dbm хотя бы
https://docs-python.ru/standar... bm-python/

https://nagornyy.me/it/rabota-s-subd-v-python/

Добавлено через 1 час 34 минуты
Цитата Сообщение от w1004w Посмотреть сообщение
'солнце': {
'урон': (10, 15),
'здоровье': (45, 59),
'монеты': (4.5),
},
если в таком виде - shelve использовать, встроенный модуль
https://docs-python.ru/standar... ve-python/
1
0 / 0 / 0
Регистрация: 16.12.2024
Сообщений: 4
17.12.2024, 16:12  [ТС]
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2024, 16:12
Помогаю со студенческими работами здесь

Как перебрать словари Dictionary в цикле?
Добрый день. В программе имеется несколько десятков словарей (с одинаковыми ключами) типа: Dictionary<string, int> и...

Работа с весами
здравствуйте у меня такой вопрос я купил весы CAS SW 15 кг. У меня написано специальная программа по использованию C# . я работаю с этой...

Задачка с весами
Привет всем. Дана такая задача. Дан массив весов гирь. Нужно найти минимальный вес, который нельзя уравновесить с помощью гирь. Нашел в...

Работа с автомобильными весами
Здравствуйте, подскажите, пож-та, направление куда копать Поставил себе интересную идею и хочется её реализовать, только пока не совсем...

Списки и словари. Как их создавать, добавлять-изменять элементы?
Определение Как объявить список Как перебрать список Как добавить элемент к списку как передать список в качестве параметра в метод ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru