Информатика | 5 - 9 классы
Python зробити інвентар в якому можна додавати і видаляти речі.
Посторойте алгоритм в Python, чтобы он писал имя аня?
Посторойте алгоритм в Python, чтобы он писал имя аня.
Даю 50 баловНаписать код на python?
Даю 50 балов
Написать код на python.
Сделайте код на Python, где спрашиваться, "Как у вас дела"?
Сделайте код на Python, где спрашиваться, "Как у вас дела"?
.
Помогите пожалуйста решить на языке “Python”?
Помогите пожалуйста решить на языке “Python”.
Мова програмування Python, допоможіть прошу?
Мова програмування Python, допоможіть прошу
.
Записать на языке Python ?
Записать на языке Python :
[Python Turtle] Выполнить задание с картинки?
[Python Turtle] Выполнить задание с картинки.
Как нельзя описывать переменные в Python?
Как нельзя описывать переменные в Python.
Записать по правилам python следующие выражения ?
Записать по правилам python следующие выражения :
Чи можна достроково зупинити виконання команди Повторити?
Чи можна достроково зупинити виконання команди Повторити?
Як саме?
Вопрос Python зробити інвентар в якому можна додавати і видаляти речі?, расположенный на этой странице сайта, относится к категории Информатика и соответствует программе для 5 - 9 классов. Если ответ не удовлетворяет в полной мере, найдите с помощью автоматического поиска похожие вопросы, из этой же категории, или сформулируйте вопрос по-своему. Для этого ключевые фразы введите в строку поиска, нажав на кнопку, расположенную вверху страницы. Воспользуйтесь также подсказками посетителей, оставившими комментарии под вопросом.
Ответ :
import pygame
import sys
import random
pygame.
Init()
# Определение цветов
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GRAY = (200, 200, 200)
# Инициализация окна
WIDTH, HEIGHT = 800, 600
CELL_SIZE = 50
screen = pygame.
Display.
Set_mode((WIDTH, HEIGHT))
pygame.
Display.
Set_caption("Инвентарь")
# Инициализация инвентаря (8x8 сетка)
inventory_rows = 8
inventory_cols = 8
inventory = [["" for i in range(inventory_cols)] for j in range(inventory_rows)]
# Генерация случайных квадратиков
squares = [{"color" : (random.
Randint(0, 255), random.
Randint(0, 255), random.
Randint(0, 255)), "rect" : pygame.
Rect(random.
Randint(0, WIDTH - CELL_SIZE), random.
Randint(CELL_SIZE, HEIGHT - CELL_SIZE), CELL_SIZE, CELL_SIZE), "dragging" : False} for _ in range(5)] # Создаем 5 случайных квадратиков
# Основной цикл игры
while True : for event in pygame.
Event.
Get() : if event.
Type = = pygame.
QUIT : pygame.
Quit() sys.
Exit() elif event.
Type = = pygame.
KEYDOWN : if event.
Key = = pygame.
K_a : # Добавление предмета в первую пустую ячейку инвентаря for i in range(inventory_rows) : for j in range(inventory_cols) : if inventory[i][j] = = "" : inventory[i][j] = "Предмет" break elif event.
Type = = pygame.
MOUSEBUTTONDOWN : if event.
Button = = 1 : # Левая кнопка мыши for square in squares : if square["rect"].
Collidepoint(event.
Pos) : square["dragging"] = True elif event.
Type = = pygame.
MOUSEBUTTONUP : if event.
Button = = 1 : for square in squares : if square["dragging"] : # Проверяем, находится ли квадратик над инвентарем for i in range(inventory_rows) : for j in range(inventory_cols) : cell_rect = pygame.
Rect(j * CELL_SIZE, i * CELL_SIZE + CELL_SIZE, CELL_SIZE, CELL_SIZE) if cell_rect.
Collidepoint(square["rect"].
Center) : inventory[i][j] = "Предмет" break square["dragging"] = False for square in squares : if square["dragging"] : square["rect"].
Center = pygame.
Mouse.
Get_pos() # Отображение инвентаря и квадратиков screen.
Fill(WHITE) pygame.
Draw.
Rect(screen, BLACK, (0, 0, WIDTH, CELL_SIZE)) # Заголовок "Инвентарь" font = pygame.
Font.
Font(None, 36) text = font.
Render("Инвентарь : {}".
Format(sum(row.
Count("Предмет") for row in inventory)), True, WHITE) screen.
Blit(text, (10, 5)) for i in range(inventory_rows) : for j in range(inventory_cols) : color = WHITE if (i + j) % 2 = = 0 else GRAY pygame.
Draw.
Rect(screen, color, (j * CELL_SIZE, i * CELL_SIZE + CELL_SIZE, CELL_SIZE, CELL_SIZE)) if inventory[i][j] !
= "" : font = pygame.
Font.
Font(None, 20) text = font.
Render(inventory[i][j], True, BLACK) screen.
Blit(text, (j * CELL_SIZE + 10, i * CELL_SIZE + CELL_SIZE + 10)) for square in squares : pygame.
Draw.
Rect(screen, square["color"], square["rect"]) pygame.
Display.
Flip().