def updateText(self): if self.preview > 1 or self.texts.info is None: return # find matching tiles stacks = [] for r in self.s.rows: if r.cards and not r.basicIsBlocked(): stacks.append(r) f, i = 0, 0 for r in stacks: n = 0 for t in stacks[i + 1:]: if self.cardsMatch(r.cards[0], t.cards[0]): n += 1 # if n == 3: n = 1 # elif n == 2: n = 0 n = n % 2 f += n i += 1 if f == 0: f = _('No Free\nMatching\nPairs') else: f = ungettext('%d Free\nMatching\nPair', '%d Free\nMatching\nPairs', f) % f t = sum([len(ii.cards) for ii in self.s.foundations]) r1 = ungettext('%d\nTile\nRemoved\n\n', '%d\nTiles\nRemoved\n\n', t) % t r2 = ungettext('%d\nTile\nRemaining\n\n', '%d\nTiles\nRemaining\n\n', self.NCARDS - t) % (self.NCARDS - t) t = r1 + r2 + f self.texts.info.config(text=t)
def updateText(self): if self.preview > 1 or self.texts.info is None: return if self.app.opt.shisen_show_matching: # find matching tiles stacks = self.s.rows f, i = 0, 0 for r in stacks: i = i + 1 if not r.cards: continue for t in stacks[i:]: if not t.cards: continue if r.acceptsCards(t, t.cards): f += 1 if f == 0: f = _('No Free\nMatching\nPairs') else: f = ungettext('%d Free\nMatching\nPair', '%d Free\nMatching\nPairs', f) % f else: f = '' t = len(self.s.foundations[0].cards) r1 = ungettext('%d\nTile\nRemoved\n\n', '%d\nTiles\nRemoved\n\n', t) % t r2 = ungettext('%d\nTile\nRemaining\n\n', '%d\nTiles\nRemaining\n\n', self.NCARDS - t) % (self.NCARDS - t) t = r1 + r2 + f self.texts.info.config(text=t)
def startSolving(self): from pysollib.mygettext import ungettext self._reset() game = self.app.game solver = game.Solver_Class(game, self) # create solver instance game.solver = solver preset = self.preset_var.get() max_iters = self._getMaxIters() progress = self.app.opt.solver_show_progress iters_step = self.app.opt.solver_iterations_output_step solver.config(preset=preset, max_iters=max_iters, progress=progress, iters_step=iters_step) try: solver.computeHints() except RuntimeError: self.result_label['text'] = _('Solver not found in the PATH') return hints_len = len(solver.hints) - 1 if hints_len > 0: if solver.solver_state == 'intractable': t = ungettext('This game can be hinted in %d move.', 'This game can be hinted in %d moves.', hints_len) else: t = ungettext('This game is solvable in %d move.', 'This game is solvable in %d moves.', hints_len) t = t % hints_len self.result_label['text'] = t self.play_button.config(state='normal') else: self.result_label['text'] = \ (_('I could not solve this game.') if solver.solver_state == 'unsolved' else _('Iterations count exceeded (Intractable)')) self.play_button.config(state='disabled')
def startSolving(self): from pysollib.mygettext import ungettext self._reset() game = self.app.game solver = game.Solver_Class(game, self) # create solver instance game.solver = solver preset = self.preset_var.get() max_iters = self._getMaxIters() progress = self.app.opt.solver_show_progress iters_step = self.app.opt.solver_iterations_output_step solver.config(preset=preset, max_iters=max_iters, progress=progress, iters_step=iters_step) try: solver.computeHints() except RuntimeError: self.result_label['text'] = _('Solver not found in the PATH') return hints_len = len(solver.hints)-1 if hints_len > 0: if solver.solver_state == 'intractable': t = ungettext('This game can be hinted in %d move.', 'This game can be hinted in %d moves.', hints_len) else: t = ungettext('This game is solvable in %d move.', 'This game is solvable in %d moves.', hints_len) t = t % hints_len self.result_label['text'] = t self.play_button.config(state='normal') else: self.result_label['text'] = \ (_('I could not solve this game.') if solver.solver_state == 'unsolved' else _('Iterations count exceeded (Intractable)')) self.play_button.config(state='disabled')
def updateText(self): if self.preview > 1 or self.texts.info is None: return # find matching tiles stacks = [] for r in self.s.rows: if r.cards and not r.basicIsBlocked(): stacks.append(r) f, i = 0, 0 for r in stacks: n = 0 for t in stacks[i+1:]: if self.cardsMatch(r.cards[0], t.cards[0]): n += 1 # if n == 3: n = 1 # elif n == 2: n = 0 n = n % 2 f += n i += 1 if f == 0: f = _('No Free\nMatching\nPairs') else: f = ungettext('%d Free\nMatching\nPair', '%d Free\nMatching\nPairs', f) % f t = sum([len(ii.cards) for ii in self.s.foundations]) r1 = ungettext('%d\nTile\nRemoved\n\n', '%d\nTiles\nRemoved\n\n', t) % t r2 = ungettext('%d\nTile\nRemaining\n\n', '%d\nTiles\nRemaining\n\n', self.NCARDS - t) % (self.NCARDS - t) t = r1 + r2 + f self.texts.info.config(text=t)