vermas, полторы минуты дается на каждый раунд. Если игроки сходили быстрее этого времени, то сразу после хода последнего игрока начинается следующий раунд.
vermas, полторы минуты дается на каждый раунд. Если игроки сходили быстрее этого времени, то сразу после хода последнего игрока начинается следующий раунд.
а если один ходил а другой нет, когда начинается второй раунд?
ну после того как пройдут полторы минуты. они для этого и нужны, в общем
Ясно. Ну пиши системное время для старта system_time, и поля step1, step2. Первый пошел за отведённое время, пиши step1++ и ставь ему блокировку хода до конца времени, второй пошел - системное время перезапиши, а step1 обнули, и по новой. Если первый пошел второй раз, а второй стоИт, еще раз step1++. Ждем еще, если второй не ходит в отведённое время 180сек, при третьем ходе засчитываем поражение (условие step1==2, step2==0, time()>system_time+180).
раунд можно завершить и переписать время при условии !empty(step1), или !empty(step2), смотря кто ходит
vermas, а если второй раз не сходил, второй сходил, а третий раз снова нет
No-Tactic, тогда первый сделает больше ходов. Или ты хочешь засчитать поражение за 2 несделанных хода по итогу всего боя?
vermas, два пропуска хода = вылет из боя
ну тогда надо на стороне логировать ходы, и при разнице в 2хода засчитать поражение. Знаю на словах всё сложно, но поняв логику можно легко написать.
Может так?
В бд поля: step, time, fail
кто-то сходил. если поле степ = 0, тогда пишем туда его ид. если не равно 0, тогда обновляем время и раунд, обнуляем степ. если в поле степ твой ид, ты не можешь идти. если время кончилось, берем из бд ид того игрока, который не в поле степ (если степ = 0, то обоих) и пишем в фейл что-то типа {'id':1}
если значение больше единицы, бой окончен