Привет!
Закончил писать копию сапёра.
Выкладываю файлы.
Потестите на ошибки.
Буду рад послушать ваши мнения.
[guest@localhost Saper1]$ python3 Saper1.py
Traceback (most recent call last):
File "Saper1.py", line 171, in <module>
if ev.button == pygame.BUTTON_RIGHT:
AttributeError: module 'pygame' has no attribute 'BUTTON_RIGHT'
[guest@localhost Saper1]$
>>> import pygame >>> pygame.__version__ '1.9.3' >>>
panama555Не, нету, и в pygame.constants нет такой константы. Короче, ты должен был написать файл документации, в котором указать версию питона и версию pygame, на которых игра гарантированно запускалась, чтобы пользователи догадки не строили.
атрибут BUTTON_RIGHT обязательно будет и в ранней версии
if massive[y][x] == 0: picture = "d0.png" elif massive[y][x] == 1: picture = "d1.png" elif massive[y][x] == 2: picture = "d2.png" ....
if number=="0": self.image.blit(self.long_image,(0,0),(28,0,28,50)) elif number=="1": self.image.blit(self.long_image,(0,0),(56,0,28,50)) .... elif number=="-": self.image.blit(self.long_image,(0,0),(0,0,28,50))
for y in range(16):#заполняем пустыми клетками группу for x in range(16): gr_kletka.add(Kletka((x * 35 + 23, y * 35 + 120),"kletka1.png",0))
gr_kletka.add( Kletka((x * 35 + 23, y * 35 + 120),"kletka1.png",0) for x in in range(16) for y in range(16) )
massive = [[0 for i in range(stolb)] for j in range(stroki)]#матрица для хранения координат бомб
massive = [ [0]*stolb for _ in range(stroki) ]#матрица для хранения координат бомб
py.user.nextСпасибо за тест, буду разбираться
Сам код ужасный. Это ты ощутишь, когда начнут сыпаться баги и недочёты всякие и код надо будет поправлять, чтобы их исправить. Естественно, при исправлениях код начнёт превращаться в свалку всяких правок. И ты это не сможешь предотвратить, даже если будешь соблюдать какую-то чистоту, потому что код изначально написан так, что он не пригоден к правке. Он очень быстро придёт к путанице.
RodegastНе впечатлительный, спасибо за подсказки
Но я надеюсь что ты не такой впечатлительный…
RodegastВот это я бы исправил, если бы знал как. Вроде пытаюсь писать программу опираясь на методы объектов, но, как видите, видимо не получается. Сам понимаю, что что-то не так.
А хуже всего то что ты не пользуешься ООП…
panama555
Вот это я бы исправил, если бы знал как. Вроде пытаюсь писать программу опираясь на методы объектов, но, как видите, видимо не получается. Сам понимаю, что что-то не так.
panama555Займись структурной парадигмой программирования. Она у тебя не развита. Если ты не можешь программу такого размера написать в структурной парадигме, то грош цена такому программированию. Объектно-ориентированная парадигма - это следующий этап. Обеими этими парадигмами нужно владеть.
Довольно простая на вид программа разрослась до неприятных размеров и стала довольно запутанной.
panama555такое же ):
Как правильно писать ООП? Я уже задавал тут этот вопрос, но, видимо, ответ для меня не очевидный