Найти - Пользователи
Полная версия: Шахматные часы на python
Начало » Python для экспертов » Шахматные часы на python
1
in
Собственно нужно сделать часы для двух игроков, каждому дать по пять минут и поочереди ставить на паузу каждому игроку, по окончании указананного периода нужно вызвать колбек

Вот это кажется подходящим кодом, но непонятно можно ли ставить на паузу, по моему у него только cancel() который тупо прибивает таймер и все.

from threading import Timer
import time

def timeout():
print "Game over"

t = Timer(20 * 60, timeout)
t.start()

Budulianin
in

Тебе в раздел новичков, это раз.
Научись оформлять сообщение и формулировать вопрос, это два.
in
Хорошо, учту
sypper-pit
in
Отнимай от переменной нужное значение.
in
http://odiszapc.ru/2012/03/10/python-waitable-timer/

нашел такой вариант, буду импортировать из-за возможности pause/resume
in
from threading import Timer
import time
class RenewableTimer():
    def __init__(self, timeout, callback):
        self.timeout = timeout
        self.callback = callback
        self.timer = Timer(timeout, callback)
    def cancel(self):
        self.timer.cancel()
    def start(self):
        self.start_time = time.time()
        self.timer.start()
    def pause(self):
        self.cancel_time = time.time()
        self.timer.cancel()
        return self.get_actual_time()
    def resume(self):
        self.timeout = self.get_actual_time()
        self.timer = Timer(self.timeout, self.callback)
        self.start_time = time.time()
        self.timer.start()
        return self.timeout
    def get_actual_time (self):
        return self.timeout - (self.cancel_time - self.start_time)

Итоговый код
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB