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

В списке менять квадраты местами

08.12.2019, 12:26. Показов 892. Ответов 0

Студворк — интернет-сервис помощи студентам
Как при вызове clicked сделать так,чтобы он запоминал первый клик,а потом при нажатии на второй он менял их местами а точнее изображение на них
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
from tkinter import *
from random import random, randint, randrange, choice
from PIL import ImageTk, Image
import pygame
 
 
class Court:
    def __init__(self, surface):
        self.surface = surface
        self.court = self._generate()
 
    def _generate(self):
        plitks = []
        for row in range(7):
            for col in range(7):
                if row == 0 and col == 0 or row == 0 and col == 1 or row == 1 and col == 0 or row == 1 and col == 1:
                    pass
                elif row == 0 and col == 5 or row == 0 and col == 6 or row == 1 and col == 5 or row == 1 and col == 6:
                    pass
                elif row == 5 and col == 0 or row == 5 and col == 1 or row == 6 and col == 0 or row == 6 and col == 1:
                    pass
                elif row == 5 and col == 5 or row == 5 and col == 6 or row == 6 and col == 5 or row == 6 and col == 6:
                    pass
                elif col == 3 or col == 4:
                    plitks.append(Plit(x=row * 61, y=col * 61, surface=self.surface, file_img=chicken_img))
                elif col == 5 and row == 2 or col == 5 and row == 3 or col == 5 and row == 4:
                    plitks.append(Plit(x=row * 61, y=col * 61, surface=self.surface, file_img=chicken_img))
                elif col == 6 and row == 2 or col == 6 and row == 3 or col == 6 and row == 4:
                    plitks.append(Plit(x=row * 61, y=col * 61, surface=self.surface, file_img=chicken_img))
                elif col == 2 and row == 2 or col == 2 and row == 4:
                    plitks.append(Plit(x=row * 61, y=col * 61, surface=self.surface, file_img=fox_img))
                else:
                    plitks.append(Plit(x=row * 61, y=col * 61, surface=self.surface, file_img=empty_img))
        return plitks
 
    def draw(self):
        for i in self.court:
            i.change_color()
            i.Draw()
 
    def process(self):
        pass
 
 
 
class Plit:
    color = (150, 40, 40)  # useless stroke
 
    def __init__(self, x, y, surface, file_img):
        self.image = pygame.Surface((50, 50))
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.surface = surface
        self.image = pygame.image.load(file_img)
        self.image.set_colorkey((0, 0, 0))
 
    def Draw(self):
        self.surface.blit(self.image, (self.rect.x, self.rect.y))
 
    def change_color(self):
        if self.clicked():
            self.image.fill((255,255,255))
 
 
 
    def clicked(self):
        if self.collide_cursor():
            return pygame.mouse.get_pressed() == (1,0,0)
 
    def collide_cursor(self):
        mx ,my = pygame.mouse.get_pos()
        global mx
        global my
        return mx > self.rect.left and mx < self.rect.right and my >self.rect.top and my < self.rect.bottom
 
 
if __name__ == '__main__':
    bg_color = (100, 100, 100)
    window_size = (1400, 800)
 
    window = pygame.display.set_mode(window_size)
    screen = pygame.Surface(window_size)
    colors = ((150, 40, 40), (40, 150, 40), (40, 40, 150))
    chicken_img = 'chicken_test.jpg'
    fox_img = 'fox_test.jpg'
    empty_img = 'empty_field.jpg'
    game_status = True
 
    Court = Court(screen)
 
    while game_status:
        for i in pygame.event.get():
            if i.type == pygame.QUIT:
                game_status = False
 
        screen.fill(bg_color)
        Court.draw()
        window.blit(screen, (0, 0))
        pygame.display.flip()
Изображения
   
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2019, 12:26
Ответы с готовыми решениями:

Перевод на паскал.Требует менять местами 2-ую и 3-ую степень местами в новом векторе.Предварительно благодарю
#include &lt;iostream&gt; #include &quot;math*h&quot; void main (){ int i,n,x,y,j,k2,k3,kj cin&gt;&gt;n; for(i=0;i&lt;n;i++) ...

Поменять местами квадраты
package kwadrat_; import java.applet.Applet; import java.awt.*; import java.awt.event.MouseEvent; import...

Поменять местами заданные квадраты матрицы
Привет Всем,помогите пожалуйста с задачкой,либо наведите на путь,остальное постараюсь сам сделать(написать) Дана матрица А(8;8). ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.12.2019, 12:26
Помогаю со студенческими работами здесь

Поменять местами квадраты матрицы согласно рисунку
Помогите решить простым языком Дана квадратная матрица B(2K,2K) натуральных чисел. Матрицы разбита на квадраты. Поменять местами...

менять местами
поменять местами максимальный элемент и первый

Как менять значения datagridviewcomboboxcolumn в DataGridView в зависимости от выбора в другом списке
Здравствуйте! Не могу понять как решить следующую задачу. Есть на форме datagridview, в ней есть два списка comboboxcolumn. Меняешь...

Использование односвязного списка из последовательности слов и возможность менять слова в списке
Добрый день! Возможно ли подобное реализовать? Чтобы односвязной список читал предложение из слов, которые можно было бы менять в консоли....

Обменять местами квадраты матрицы, стоящие на главной диагонали
Задание: Матрица. Обменять местами квадраты, стоящие на главной диагонали Что за квадраты?


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru