Печатая вызов за 5 секунд в игре - PullRequest
0 голосов
/ 31 мая 2018

Я делаю RPG-игру в пакетном файле и хочу, чтобы пользователь набрал слово типа «масло» за 5 секунд.Если он не собирается этого делать, он ничего не получит и вернется.Но если он собирается печатать правильно, он заработает деньги.И я хочу, чтобы это показало таймер.Ребята, вы можете помочь?Можно ли это сделать с помощью команды PING?

1 Ответ

0 голосов
/ 31 мая 2018

Считая ваши усилия, вы этого не заслуживаете.
Просто, чтобы дать вам отправную точку,
партия не подходит для измерения / обработки / расчета времени.

:: Q:\Test\2018\05\31\typingtest.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
:loop
cls
Echo enter butter
choice /n /C b >NUL
set start=%time%
choice /n /C u >NUL
choice /n /C t >NUL
choice /n /C t >NUL
choice /n /C e >NUL
choice /n /C r >NUL
set ready=%time%
Echo start:%start%
Echo ready:%ready%

Пример вывода:

enter butter
start:21:00:50,50
ready:21:00:51,56

Несмотря на мой первоначальный комментарий, следующая версия является более универсальной и рассчитывает секунды правильно при условии, что ваш %time% повторяет 24-часовой формат и сотни секунд.

:: Q:\Test\2018\05\31\typingtest.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion

cls
Echo enter butter
Set "Start="
For %%A in (b u t t e r) do (
    choice /n /C %%A >NUL
    if not defined Start Set "Start=%time%"
)
Set "Ready=%time%"
Call :CalcTime Start
Call :CalcTime Ready
Set /A "Lapse=Ready-Start"
Echo Secs :        %Lapse:~0,-2%,%Lapse:~-2%
Pause
Goto :Eof

:CalcTime
Echo=%1: !%1!
For /f "tokens=1-4delims=:.," %%H in ("!%1!"
  ) Do Set /A "%1=(1%%H-100)*360000+(1%%I-100)*6000+(1%%J-100)*100+%%K"

Пример вывода:

enter butter
Start: 16:25:43,42
Ready: 16:25:46,94
Secs :        3,52
...