Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.02.2022
Сообщений: 2

Не обновляется значение в переменной

18.03.2022, 14:49. Показов 627. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет , прочитал книгу "Изучаем Python . Эрик Мэтиз" и решил создать свой первый мини-проект "Камень , Ножницы , Бумага" . Это код с калькулятора , который нашёл в интернете когда решил разобраться как работает tkinter и я изменил его , чтобы он подходил для моего проекта . У меня не получается изменить losse и win в логической функции ,чтобы они выводили , сколько поражений и побед . Помогите в этом разобраться


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
101
102
103
from tkinter import *
import random
 
 
 
class Main(Frame):
    def __init__(self, root):
        super(Main, self).__init__(root)
        self.build()
 
    def build(self):
        btns = [
            "Камень", "Ножницы", "Бумага", "Wins",
                            "Loss"
        ]
        x = 10
        y = 140
        for bt in btns:
            com = lambda x=bt: self.logicalc(x)
            Button(text=bt, bg="#FFF",
                   font=("Times New Roman", 15),
                   command=com).place(x=x, y=y,
                                      width=115,
                                      height=79)
            x += 117
            
            if x > 400:
                x = 10
                y += 81
        self.gameo = "Выбирете КНБ"
        self.lbl = Label(text=self.gameo, font=("Times New Roman", 16, "bold"),
                 bg="#000", foreground="#FFF")
        self.lbl.place(x=11, y=50)
        
    def logicalc(self, I):
        
        win = 0
        R = random.randrange(1, 4)
        losse = 0
            
        if I == "Камень":
            pass
        elif I == "Ножницы":
            pass
        elif I == "Бумага":
            pass
        elif I == "Wins":
            self.gameo = f"У вас:{win} побед"
        elif I == "Loss":
            self.gameo = f"У вас:{losse} поражений"
            
        if I == "Камень" and R == 1:
            self.gameo = 'Ничья!'
            
        elif I == 'Камень' and R == 2:
            self.gameo = 'Вы победили!'
            win += 1
            
        elif I == 'Камень' and R == 3:
            self.gameo = 'Вы проиграли!'
            losse += 1
            
        if I == 'Ножницы' and R == 1:
            self.gameo = 'Вы проиграли!'
            losse +1
            
        elif I == 'Ножницы' and R == 2:
            self.gameo = 'Ничья!'
            
        elif I == 'Ножницы' and R == 3:
            self.gameo = 'Вы победили!'
            win += 1
            
        if I == 'Бумага' and R == 1:
            self.gameo = 'Вы победили!'
            win += 1
 
        elif I == 'Бумага' and R == 2:
            self.gameo = 'Вы проиграли!'
            losse += 1
            
        elif I == 'Бумага' and R == 3:
            self.gameo = 'Ничья!'
            
 
        
        self.update()
            
    def update(self):
        if self.gameo == "":
            self.gameo = "Выбирете КНБ"
        self.lbl.configure(text=self.gameo)
        
 
if __name__ == '__main__':
    root = Tk()
    root["bg"] = "#000"
    root.geometry("485x300+200+200")
    root.title("КНБ")
    root.resizable(False, False)
    app = Main(root)
    app.pack()
    root.mainloop()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2022, 14:49
Ответы с готовыми решениями:

Не обновляется значение переменной
При старте у игрока стоит пистолет и методом BulletStart проверяется какое оружие у игрока. Если пистолет, у которого бесконечные патроны,...

Почему не обновляется значение переменной S?
#include<stdio.h> #include<locale.h> main(void){ system("chcp 1251"); system("cls"); int S=0; int vvod = 1; int i = 1...

Надо вывести название переменной, тип данных переменной, значение переменной
у нас есть переменная int variable = 0; Надо вывести название переменной, тип данных переменной, значение переменной как это сделать?

1
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
18.03.2022, 21:08
Добрый вечер! Поправил программу:
  1. win и loose переделаны в свойства класса
  2. инициализация win и loose перенесена в метод build

Остальное не трогал.

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
101
102
from tkinter import *
import random
 
class Main(Frame):
    def __init__(self, root):
        super(Main, self).__init__(root)
        self.build()
 
    def build(self):
        btns = [
            "Камень",
            "Ножницы",
            "Бумага",
            "Wins",
            "Loss"
        ]
        x = 10
        y = 140
        for bt in btns:
            com = lambda x=bt: self.logicalc(x)
            Button(text=bt, bg="#FFF",
                   font=("Times New Roman", 15),
                   command=com).place(x=x, y=y,
                                      width=115,
                                      height=79)
            x += 117
            
            if x > 400:
                x = 10
                y += 81
        self.gameo = "Выбирете КНБ"
        self.lbl = Label(text=self.gameo, font=("Times New Roman", 16, "bold"),
                 bg="#000", foreground="#FFF")
        self.lbl.place(x=11, y=50)
        self.win = 0
        self.losse = 0
    
    def logicalc(self, I):
        R = random.randrange(1, 4)   
        if I == "Камень":
            pass
        elif I == "Ножницы":
            pass
        elif I == "Бумага":
            pass
        elif I == "Wins":
            self.gameo = f"У вас:{self.win} побед"
        elif I == "Loss":
            self.gameo = f"У вас:{self.losse} поражений"
            
        if I == "Камень" and R == 1:
            self.gameo = 'Ничья!'
            
        elif I == 'Камень' and R == 2:
            self.gameo = 'Вы победили!'
            self.win += 1
            
        elif I == 'Камень' and R == 3:
            self.gameo = 'Вы проиграли!'
            self.losse += 1
            
        if I == 'Ножницы' and R == 1:
            self.gameo = 'Вы проиграли!'
            self.losse +1
            
        elif I == 'Ножницы' and R == 2:
            self.gameo = 'Ничья!'
            
        elif I == 'Ножницы' and R == 3:
            self.gameo = 'Вы победили!'
            self.win += 1
            
        if I == 'Бумага' and R == 1:
            self.gameo = 'Вы победили!'
            self.win += 1
 
        elif I == 'Бумага' and R == 2:
            self.gameo = 'Вы проиграли!'
            self.losse += 1
            
        elif I == 'Бумага' and R == 3:
            self.gameo = 'Ничья!'
            
 
        
        self.update()
            
    def update(self):
        if self.gameo == "":
            self.gameo = "Выбирете КНБ"
        self.lbl.configure(text=self.gameo)
        
 
if __name__ == '__main__':
    root = Tk()
    root["bg"] = "#000"
    root.geometry("485x300+200+200")
    root.title("КНБ")
    root.resizable(False, False)
    app = Main(root)
    app.pack()
    root.mainloop()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2022, 21:08
Помогаю со студенческими работами здесь

Надо вывести название переменной, тип данных переменной, значение переменной
у нас есть переменная int variable = 0; Надо вывести название переменной, тип данных переменной, значение переменной как это сделать?

Получить адрес переменной, вывести его, сменить значение переменной через указатель, вывести значение
Как вывести адрес переменной?

Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С
Массив С действительных чисел имеет 5 строк и 11 столбцов. Присвоить значение наименьшего элемента массива переменной М1, номер строки, где...

Не обновляется значение поля
Есть модель Profile, которую я передаю во View и редактирую там public class Profile { public int Id { get; set; } ...

Не обновляется значение свойства
Вопрос частый, но ответы в интернете мне не помогли. У меня есть класс SqlDependencyEx, занимающийся оповещением об изменениях в базе...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru