Форум сайта python.su
							
  0  
								
								Настольная игра “Пасьянс тысячелистник” (требует PyQt4):
http://forum.script-coding.info/viewtopic.php?id=2665
Скрипт рабочий, можно играть (распаковать, структуру каталогов не менять, запускать milfoil.py). Прошу всех, кому не лень, попробовать и отписаться здесь. Правила игры — во встроенной справке, в архиве. Скриншот:
Проблемы:
1. В момент начала игры я очищаю QGraphicsScene методом clear(). Похоже, что этого мало, т.к. иногда новая игра прорисовывается не совсем хорошо: левый верхний угол сцены оказывается не в левом верхнем углу её QGraphicsView (лечится изменением размеров окна на любую маленькую величину — просто дёрнуть мышкой за край). Эффект возникает (иногда) при переходе от игры 36 на игру 48 (или наоборот — сейчас не помню, воспроизводится не всегда). Такое впечатление, что нужно как-то уменьшить размеры сцены до нуля или сделать ей что-то наподобие “trim”, но не знаю, как.
2. Под Linux упорно не вызывается событие mouseDoubleClickEvent() в классе Element (наследник QtGui.QGraphicsPixmapItem), т.е. не обрабатывается двойной щелчок. Под Windows всё хорошо :/.
Отредактировано (Янв. 30, 2009 23:43:44)
Офлайн
							
  0  
								
								У меня в SUSE 10.3, Python 2.5 , zip/unzip - установлена.
Выдает: bash: ./milfoil.py: /usr/bin/python^M: плохой интерпретатор: Нет такого файла или каталога.
Как это вылечить? (Подозреваю - окончания строк). :/
Офлайн
							
  0  
								
								Интересно, у меня нормально под Linux запускается, а переводы строк действительно виндовые :).
Можно попробовать вот это.
Отредактировано (Янв. 10, 2009 20:43:20)
Офлайн
							
  0  
								
								Ну или просто положу исходник сюда.
Позже: убрал, чтобы ветка не была столь массивной.
Отредактировано (Янв. 30, 2009 23:45:11)
Офлайн
							
  72  
								
								Вообще-то интерпретатор питона обычно указывают так
#!/usr/bin/env python
Офлайн
							
  0  
								
								The gray Cardinal
Сначала вообще не запускалась, выдавала:
Traceback (most recent call last):
File "./milfoil.py", line 499, in new_game_36
self.new_game(self.getList_36(), 3, 4, 780)
File "./milfoil.py", line 388, in new_game
self.scene.clear() # очистка сцены
AttributeError: clear
print dir(self.scene)
self.scene.clearFocus() # заменил на это
#self.scene.clear() # очистка сцены
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread
Ошибка сегментирования
Офлайн
							
  0  
								
								gmorgunovЭто совсем не то! Правильно работать не будет.
self.scene.clearFocus() # заменил на это
Офлайн
							
  0  
								
								PooHМожешь на пальцах объяснить отличия этих двух ша-бангов? Я не понимаю, что означает пробел после “env”.
Вообще-то интерпретатор питона обычно указывают так
Офлайн
							
  0  
								
								Ubuntu 8.10, python 2.5.2
Русская локаль не устанавливается, точнее устанавливается, но интерфейс всё равно на английском.
Карты не сдаются, ни 36, ни 48.
Офлайн
							
  0  
								
								Да, видимо все огрехи из-за различия версий. Обновляться я пока не спешу. Ставил SUSE 11, SUSE 11.1, Mandriva 2008,
Mandriva 2009 , Fedora 9 - не понравилось. Вернулся на Mandriva 2007, SUSE 10.3 (у меня XP,Mandr.2007, SUSE 10.3).
Теперь по игре:
1) Заменил 780 на 680.
2) Убрал Antialiasing…
Все работает, но только не с drag_and_drop, а по двойному щелчку левой мыши.
Pаза 3 разложил пасьянс. Лучший результат на 36 картах: пересдач - 11, ходов - 38. :/
Cегфолт все равно вылетает при закрытии окна, но это понятно.(У вас очевидно его нет?).
Игра занятная, но покер - лучше(ИМХО). :)
Офлайн