Code: Select all
@echo off
setlocal enabledelayedexpansion
set pontos=0
:1
set opt=
call:palavra palavra1
for /l %%p in (2,1,4) do (call:palavra palavra%%p)
SET /A pal1=%RANDOM% * 4 / 32768 + 1
:pal2
SET /A pal2=%RANDOM% * 4 / 32768 + 1
if !pal2! equ !pal1! goto pal2
:pal3
SET /A pal3=%RANDOM% * 4 / 32768 + 1
if !pal3! equ !pal2! goto pal3
if !pal3! equ !pal1! goto pal3
:pal4
SET /A pal4=%RANDOM% * 4 / 32768 + 1
if !pal4! equ !pal3! goto pal4
if !pal4! equ !pal2! goto pal4
if !pal4! equ !pal1! goto pal4
:choice
cls
echo=============================================Score: %pontos%
echo/1^) !palavra%pal1%! 2^) !palavra%pal2%! 3^) !palavra%pal3%! 4^) !palavra%pal4%!
call:falar "%palavra1%"
set /p "opt=> "
if "%opt%" equ "" goto choice
set word=!pal%opt%!
if !palavra%word%! equ !palavra1! set /a pontos = pontos + 1
goto 1
exit/b
:falar [what]
echo/Dim ProSpeak > "dim.vbs"
echo/Set ProSpeak = WScript.CreateObject^("SAPI.SpVoice"^) >> "dim.vbs"
echo/ProSpeak.Speak "%~1" >> "dim.vbs"
dim.vbs&del "dim.vbs"
exit/b
:palavra
(
echo/for /f "skip=%random%" %%%%a in ^(dict.txt^) do ^(
echo/ set "%~1=%%%%a"
echo/ goto break
echo/^)
echo/:break
)>_t.bat
call _t.bat
del _t.bat
exit/b
You will also need a dict file like this one
name this file as dict.txt and put it next to the batch file