# Solved Random function in Batch

Hewlett-packard Pavilion g6-2000 15.6" b...
January 25, 2016 at 16:15:06
Specs: Windows 10, 4gb
 I'm doing a personal project to help me study for school. It's a trivia game, where it asks a question and you have to type the response correctly to continue. I really wanted it to be a random function though, so I used the command set /a num=%random% %%12 (Because I only have 11 questions so far) and assigned each number to a question. The only problem though is that once the randomized question is correctly answered, it continues down it's normal pattern. (1-11). This causes a problem because not all eleven questions are asked. So I decided to end a correct question with a loop back to the random generator, but then questions were asked multiple times. I would like it to where it will ask all eleven questions randomly, and finish when all eleven have been asked once.

See More: Random function in Batch

#1
January 25, 2016 at 20:58:14
 Lacking the benefit of your current code, I can only give my idea which may not match your approach. That said, I would prob'ly try assigning the questions to numeric variables:set 1=what's your favorite colorwhen that question is resolved either way, the variable 1 is then set to null, or undefined. The loop checks if thevariable is defined before asking the question:if defined %%a call :question "%%a"

Report •

#2
January 27, 2016 at 05:01:13
✔ Best Answer
 ::====== script starts here ===============:: ask 11 questions in random order:: geek.bat 2016-01-27 18:37:23.36@echo off & setLocal enableDELAYedeXpansioNfor /L %%a in (1 1 11) do set Q%%a=set N=1:mainset/a R=!RANDOM!%%11+1if not defined Q!R! set Q!R!=!N! && set/a N+=1if !N! gtr 11 goto :done-maingoto :main:done-mainfor /L %%i in (1 1 11) do echo ask question !Q%%i!::====== script ends here ======================================M2 Get custom script or take private lessons

Report •
Related Solutions