Ich bin neu zu Batch-Datei und das scheint wie eine dumme Frage für jemanden, der ein wenig über Batch-Datei weiß, aber ich kann nur nicht das gewünschte Ergebnis mit der Art, wie ich in C++ oder andere Programmierung tun würde. Was ich zu tun versuchte, war, drei 1s zufällig in die Elemente für jedes der 2x2 Arrays zu speichern. Danke im Voraus. Der vollständige Code ist unten:Wie kürze ich meinen Code, indem ich in diesem Fall loops oder goto verwende?
@echo off
setlocal EnableDelayedExpansion
rem ========Creating four 2x2 zero arrays
for /l %%z in (0,1,3) do (
for /l %%y in (0,1,1) do (
for /l %%x in (0,1,1) do (
set map[%%x][%%y][%%z]=0
)
)
)
rem ========Putting three 1s in elements randomly **(How do I shorten this part?)**
set /a count=3
:while0
set /a i=!Random!%%2
set /a j=!Random!%%2
set /a sth=map[!i!][!j!][0]
if !sth! EQU 0 (
set map[!i!][!j!][0]=1
set /a count-=1
)
if not !count! EQU 0 GOTO while0
set /a count=3
:while1
set /a i=!Random!%%2
set /a j=!Random!%%2
set /a sth=map[!i!][!j!][1]
if !sth! EQU 0 (
set map[!i!][!j!][1]=1
set /a count-=1
)
if not !count! EQU 0 GOTO while1
set /a count=3
:while2
set /a i=!Random!%%2
set /a j=!Random!%%2
set /a sth=map[!i!][!j!][2]
if !sth! EQU 0 (
set map[!i!][!j!][2]=1
set /a count-=1
)
if not !count! EQU 0 GOTO while2
set /a count=3
:while3
set /a i=!Random!%%2
set /a j=!Random!%%2
set /a sth=map[!i!][!j!][3]
if !sth! EQU 0 (
set map[!i!][!j!][3]=1
set /a count-=1
)
if not !count! EQU 0 GOTO while3
rem ========Result
echo !map[0][0][0]!!map[1][0][0]!
echo !map[0][1][0]!!map[1][1][0]!
echo.
echo.
echo !map[0][0][1]!!map[1][0][1]!
echo !map[0][1][1]!!map[1][1][1]!
echo.
echo.
echo !map[0][0][2]!!map[1][0][2]!
echo !map[0][1][2]!!map[1][1][2]!
echo.
echo.
echo !map[0][0][3]!!map[1][0][3]!
echo !map[0][1][3]!!map[1][1][3]!
echo.
echo.
pause
Was ich versuchte, zu Do ist, drei 1s zufällig in jedem der 2x2 Arrays zu speichern, also sollte es zwölf 1s geben, aber es scheint, dass Ihr Code nur drei 1s insgesamt erzeugt, und es sieht so aus, als würde es lange dauern, um zu kompilieren. – jacknip