Ясно. Ну пиши системное время для старта system_time, и поля step1, step2. Первый пошел за отведённое время, пиши step1++ и ставь ему блокировку хода до конца времени, второй пошел - системное время перезапиши, а step1 обнули, и по новой. Если первый пошел второй раз, а второй стоИт, еще раз step1++. Ждем еще, если второй не ходит в отведённое время 180сек, при третьем ходе засчитываем поражение (условие step1==2, step2==0, time()>system_time+180).