Я создаю ролевую игру в стиле Dragon Quest на Python (пока только текст) и близок к завершению системы инвентаря, но не могу сделать ее такой, как мне хочется. >
Предположим, ваш инвентарь представлен списком:
inventory = [medicinal_herb, medicinal_herb, copper_sword, medicinal_herb, medicinal_herb, medicinal_herb]
Я хочу, чтобы оно отображало уникальное имя предмета с количеством предметов на вкладках, например:
Инвентарь:
Лекарственные травы 5
Медный меч 1
Лучшее, что я придумал на данный момент, — это отображать каждый элемент в инвентаре в аккуратном формате:
inv_count = 0 # Seeding the inventory items per line.
for i in inventory:
inv_count += 1
if inv_count % 6 == 0: # This prints 5 inventory items per line.
print()
print(i.name, end=' ') # The end=' ' command keeps the prints on the same line.
Мне также удалось получить правильное количество предметов из инвентаря с помощью этого кода:
from collections import Counter # This is used to count specific items in inventory.
inventory_count = Counter(inventory)
for i in inventory:
print(f"{i} \t {inventory_count}")
print()
Так что да, я думаю, что я довольно близок к своей цели, но упускаю одну мелочь. Идеи приветствуются!
Вот полный рабочий код, который у меня есть для удобства тестирования:
from collections import Counter # This is used to count specific items in inventory.
from collections import namedtuple # I use named tuples for Weapons and Armor.
Weapon = namedtuple('Weapon', ['name','strength','cost']) # Create a named tuple for Weapons
copper_sword = Weapon('Copper Sword',10,180)
Item = namedtuple('Items', ['name', 'cost']) # Create a named tuple for Items
medicinal_herb = Item('Medicinal Herb', 15)
inventory = [medicinal_herb, medicinal_herb, copper_sword, medicinal_herb, medicinal_herb, medicinal_herb]
print("Inventory:")
inv_count = 0 # Seeding the inventory items per line.
for i in inventory:
inv_count += 1
if inv_count % 6 == 0: # This prints 5 inventory items per line.
print()
print(i.name, end=' ') # The end=' ' command keeps the prints on the same line.
inventory_count = Counter(inventory)
for i in inventory:
print(f"{i.name} \t {inventory_count}")
print()
Подробнее здесь: https://stackoverflow.com/questions/793 ... -inventory
Python 3 — Как сделать отсортированный список для инвентаря ролевой игры ⇐ Python
Программы на Python
1736270389
Anonymous
Я создаю ролевую игру в стиле Dragon Quest на Python (пока только текст) и близок к завершению системы инвентаря, но не могу сделать ее такой, как мне хочется. >
Предположим, ваш инвентарь представлен списком:
inventory = [medicinal_herb, medicinal_herb, copper_sword, medicinal_herb, medicinal_herb, medicinal_herb]
Я хочу, чтобы оно отображало уникальное имя предмета с количеством предметов на вкладках, например:
Инвентарь:
Лекарственные травы 5
Медный меч 1
Лучшее, что я придумал на данный момент, — это отображать каждый элемент в инвентаре в аккуратном формате:
inv_count = 0 # Seeding the inventory items per line.
for i in inventory:
inv_count += 1
if inv_count % 6 == 0: # This prints 5 inventory items per line.
print()
print(i.name, end=' ') # The end=' ' command keeps the prints on the same line.
Мне также удалось получить правильное количество предметов из инвентаря с помощью этого кода:
from collections import Counter # This is used to count specific items in inventory.
inventory_count = Counter(inventory)
for i in inventory:
print(f"{i} \t {inventory_count[i]}")
print()
Так что да, я думаю, что я довольно близок к своей цели, но упускаю одну мелочь. Идеи приветствуются!
Вот полный рабочий код, который у меня есть для удобства тестирования:
from collections import Counter # This is used to count specific items in inventory.
from collections import namedtuple # I use named tuples for Weapons and Armor.
Weapon = namedtuple('Weapon', ['name','strength','cost']) # Create a named tuple for Weapons
copper_sword = Weapon('Copper Sword',10,180)
Item = namedtuple('Items', ['name', 'cost']) # Create a named tuple for Items
medicinal_herb = Item('Medicinal Herb', 15)
inventory = [medicinal_herb, medicinal_herb, copper_sword, medicinal_herb, medicinal_herb, medicinal_herb]
print("Inventory:")
inv_count = 0 # Seeding the inventory items per line.
for i in inventory:
inv_count += 1
if inv_count % 6 == 0: # This prints 5 inventory items per line.
print()
print(i.name, end=' ') # The end=' ' command keeps the prints on the same line.
inventory_count = Counter(inventory)
for i in inventory:
print(f"{i.name} \t {inventory_count[i]}")
print()
Подробнее здесь: [url]https://stackoverflow.com/questions/79336774/python-3-how-to-make-a-sorted-list-for-an-rpg-inventory[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия