This might be similar to bug report https://sourceforge.net/p/pysolfc/bugs/45/ however it is slightly different, and the error output is massive (too big to fit here, but it repeats, so I'll note that.
Also, not every play through reaches this error, and I'm not sure how to reproduce it manually other than modifying zodiac.py:
change:
class Zodiac_Foundation(SS_FoundationStack):
def acceptsCards(self, from_stack, cards):
if not SS_FoundationStack.acceptsCards(self, from_stack, cards):
return False
if self.game.s.waste.cards or self.game.s.talon.cards:
return False
return True
to:
class Zodiac_Foundation(SS_FoundationStack):
def acceptsCards(self, from_stack, cards):
return True
#if not SS_FoundationStack.acceptsCards(self, from_stack, cards):
# return False
#if self.game.s.waste.cards or self.game.s.talon.cards:
# return False
#return True
and then play new games until crash. Here is the error output:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.10/tkinter/__init__.py", line 1921, in __call__
return self.func(*args)
File "/usr/lib/python3.10/site-packages/pysollib/actions.py", line 249, in mNewGame
self.game.newGame()
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 833, in newGame
self.autoPlay()
repeat begins here (starting with last line above (repeats 4 times) with recursive repeat below as well)
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2183, in autoPlay
n = self._autoPlay(autofaceup, autodrop, autodeal, sound=sound)
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2223, in _autoPlay
if self._autoDeal(sound=sound):
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2234, in _autoDeal
return self.dealCards(sound=sound)
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 1931, in dealCards
self.autoPlay()
the block above continued error output repeats 70+ times before:
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2183, in autoPlay
n = self._autoPlay(autofaceup, autodrop, autodeal, sound=sound)
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2219, in _autoPlay
if self.checkForWin():
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2120, in checkForWin
self.newGame()
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 833, in newGame
self.autoPlay()
and more recursive error repetition, and concluding with:
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2183, in autoPlay
n = self._autoPlay(autofaceup, autodrop, autodeal, sound=sound)
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2223, in _autoPlay
if self._autoDeal(sound=sound):
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2234, in _autoDeal
return self.dealCards(sound=sound)
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 1927, in dealCards
n = self.s.talon.dealCards(sound=sound)
File "/usr/lib/python3.10/site-packages/pysollib/stack.py", line 2928, in dealCards
self.game.flipAndMoveMove(self, waste)
File "/usr/lib/python3.10/site-packages/pysollib/game/__init__.py", line 2910, in flipAndMoveMove
am.do(self)
File "/usr/lib/python3.10/site-packages/pysollib/move.py", line 49, in do
self.redo(game)
File "/usr/lib/python3.10/site-packages/pysollib/move.py", line 181, in redo
self._doMove(game, game.allstacks[self.from_stack_id],
File "/usr/lib/python3.10/site-packages/pysollib/move.py", line 169, in _doMove
c.showFace()
File "/usr/lib/python3.10/site-packages/pysollib/ui/tktile/card.py", line 78, in showFace
self._setImage(image=self._face_image)
File "/usr/lib/python3.10/site-packages/pysollib/ui/tktile/card.py", line 73, in _setImage
self.item.config(image=image)
File "/usr/lib/python3.10/site-packages/pysollib/ui/tktile/Canvas2.py", line 67, in config
return self.canvas.itemconfig(self.id, _cnfmerge((cnf, kw)))
File "/usr/lib/python3.10/tkinter/__init__.py", line 2932, in itemconfigure
return self._configure(('itemconfigure', tagOrId), cnf, kw)
File "/usr/lib/python3.10/tkinter/__init__.py", line 1665, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
File "/usr/lib/python3.10/site-packages/PIL/ImageTk.py", line 160, in __str__
return str(self.__photo)
RecursionError: maximum recursion depth exceeded while calling a Python object
Attempted to test this, but was unable to reproduce the error, even after making the suggested change and restarting the game dozens of times.