Форум программистов, компьютерный форум, киберфорум
Наши страницы

Python

Войти
Регистрация
Восстановить пароль
 
nika14
0 / 0 / 0
Регистрация: 19.02.2017
Сообщений: 1
#1

задача по пайгейм и классам - Python

19.02.2017, 17:53. Просмотров 242. Ответов 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
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
import math 
import pygame 
from pygame.locals import * 
 
f = open('11.txt', 'r') 
 
window = pygame.display.set_mode((600, 600)) 
pygame.display.set_caption('Hello') 
screen = pygame.Surface((600, 600)) 
 
 
class Triangle: 
def __init__(self, p1, p2, p3): 
self.poligon_color = (255, 0, 0) 
self.poligon_points = [p1, p2, p3] 
self.poligon_width = 0 
 
def render(self): 
pygame.draw.polygon(screen, self.poligon_color, self.poligon_points, self.poligon_width) 
 
def update(self): 
s = 3 
for i in range(3): 
 
self.poligon_points[0][0] += s 
 
 
class Rect: 
def __init__(self, p, w): 
self.rect_color = (255, 0, 255) 
self.rect_pos = [p, w] # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 
self.rect_thickness = 0 
 
def render(self): 
pygame.draw.rect(screen, self.rect_color, self.rect_pos, self.rect_thickness) 
 
def update(self): 
s = 3.0 
self.rect_pos[0][0] += s 
 
if self.rect_pos[0][0] > 600: 
self.rect_pos[0][0] = 0 
 
 
class Circle: 
def __init__(self, cp, r): 
self.circle_color = (255, 100, 255) 
self.circle_pos = (cp) 
self.circle_radius = r 
self.circle_width = 0 
 
def render(self): 
pygame.draw.circle(screen, self.circle_color, self.circle_pos, self.circle_radius, self.circle_width) 
 
def update(self): 
pass 
 
 
d = [] 
 
for s in f: 
b = s.split(',') 
 
if b[0] == "triangle": 
p1 = (int(b[1]), int(b[2])) 
p2 = (int(b[3]), int(b[4])) 
p3 = (int(b[5]), int(b[6])) 
d.append(Triangle(p1, p2, p3)) 
 
elif b[0] == "rect": 
p = (int(b[1]), int(b[2])) 
w = (int(b[3]), int(b[4])) 
d.append(Rect(p, w)) 
 
elif b[0] == "circle": 
cp = (int(b[1]), int(b[2])) 
r = (int(b[3])) 
c = Circle(cp, r) 
d.append(c) 
 
done = True 
while done: 
for e in pygame.event.get(): 
if e.type == pygame.QUIT: 
done = False 
screen.fill((50, 50, 50)) 
 
for obj in d: 
obj.update() 
obj.render() 
 
window.blit(screen, (0, 0)) 
pygame.display.flip() 
pygame.time.delay(5)
извиняюсь за длинный код) смысл программы в том чтобы в pygame обрисовывались фигуры (прямоугольник,круг,треугольник)кординаты для фигур загружаются из файла.для этого сделаны классы.чтоб можно было выгрузить любое количество фигур.Ошибка у меня довольно таки простая.вот тут def update(self):
s = 3
for i in range(3):

self.poligon_points[0][0] += s .Это сделано для того чтоб фигуры двигались по полю.Ошибку выдает такую.По кортежам.Я что то очень сильно видимо туплю.и не могу найти решение)помогите )))) Traceback (most recent call last):
File "C:/Users/1/Desktop/pygame/1.py", line 89, in <module>
obj.update()
File "C:/Users/1/Desktop/pygame/1.py", line 25, in update
self.poligon_points[0][0] += s
TypeError: 'tuple' object does not support item assignment
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2017, 17:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос задача по пайгейм и классам (Python):

Задача по классам - Python
Помогите разобраться. Разработать класс Student для представления сведений об успешности слушателя курса Prometheus. Объект класса должен...

Максимальный балл по классам - Python
В олимпиаде по информатике принимало участие несколько человек. Победителем олимпиады становится человек, набравший больше всех баллов....

Упорядочить дела сначала по классам, а внутри класса по фамилиям - Python
Однажды, неловкая секретарша перепутала личные дела учащихся. Теперь их снова необходимо упорядочить сначала по классам, а внутри класса по...

Ящик не может принять наследство по классам (размеры, вес и цвет) - Python
Здравствуйте! Детская задача, но что-то не стыкуется. Не могу сообразить: чего не хватает ящику, почему PyScripter не признаёт код? ...

Задача по классам.с++ - C++
Задание 1 Разработать пользовательский тип (класс) «матрица целых чисел». Класс должен содержать: – все нужные поля, исходя из...

Задача по классам и объектам - Delphi
Описать указанный класс (методы перечислены в скобках, поля выбрать самостоятельно). Создать и инициализировать экземпляр этого класса....

2
wi34rd
12 / 12 / 5
Регистрация: 09.09.2014
Сообщений: 41
19.02.2017, 19:09 #2
Нельзя присваивать значения кортежу, чего не понятно? Переделай в список.
0
Semen-Semenich
520 / 319 / 165
Регистрация: 21.03.2016
Сообщений: 967
19.02.2017, 19:16 #3
кортежи не изменяемы.
self.poligon_points = [p1, p2, p3] хотя тут и список но состоит из кортежей
Python
1
2
3
p1 = (int(b[1]), int(b[2])) 
p2 = (int(b[3]), int(b[4])) 
p3 = (int(b[5]), int(b[6]))
в результате вы пытаетесь изменить элемент кортежа
Python
1
self.poligon_points[0][0] += s
и так в нескольких местах
простой явный пример
Python
1
2
3
a = [(2,3),(5,6),(3,8)]
a[0][0] += 3
print(a)
TypeError: 'tuple' object does not support item assignment
и тот же но с списками
Python
1
2
3
a = [[2,3],[5,6],[3,8]]
a[0][0] += 3
print(a)
[[5, 3], [5, 6], [3, 8]] так что пользуйтесь списками
Python
1
2
3
4
5
if b[0] == "triangle": 
p1 = [int(b[1]), int(b[2])] 
p2 = [int(b[3]), int(b[4])] 
p3 = [int(b[5]), int(b[6]) ]
d.append(Triangle(p1, p2, p3))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2017, 19:16
Привет! Вот еще темы с ответами:

Лафоре задача по классам - C++
Задача из книги лафоре по классам №7: нужно написать программу используя классы для ввода и вывода координат, кроме того нужно написать...

Задача по объектам и классам - C++
Задача из книги Праты. Дан заголовочный файл, нужно определить методы и написать программу. Компилируется , но выводится какая-то...

Вопрос по классам - C++
создал конструктор, который создаёт элемент класса - массив, а вот инициализация данного массива с помощью нового конструктора не...

Вопрос по классам - C++
Есть такой код #include &lt;iostream&gt; class C1{ public: C1(){std::cout &lt;&lt;&quot; 1 is open&quot;&lt;&lt;std::endl;}; ~C1(){std::cout &lt;&lt;&quot; 1...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru