
I was trying to think of a way to get rid of the quotes, and failed to see the obvious.
I'm tapped out of ideas for further "improvement"
Dave Benham
Moderator: DosItHelp
Code: Select all
@cmd /q /e:on /v:on /cset "rows=17"^&set "line=A"^
&(for /l %%a in (2,1,%rows%) do set "line= !line!")^
&for /l %%a in (1,1,%rows%) do echo(!line!^&set "line=!line: A=AAA!"
Code: Select all
@set s= A
:A
@echo %s%&set s=%s: A=AAA%&goto%s:~0,2%A
:AA
penpen wrote:I also tweaked dbenhams version improved by Aacini (73 Bytes):Code: Select all
@set s= A
:A
@echo %s%&set s=%s: A=AAA%&goto%s:~0,2%A
:AA
penpen
Code: Select all
@set s= A
:A
@echo %s%&set s=%s:~1%AA&goto%s:~,2%A
:AA
Code: Select all
@set s= A
:A
@ 2>nul echo%s%&&set s=%s:~1%AA&&goto A
Code: Select all
@echo off
setlocal EnableDelayedExpansion
set "seed=10"
set "spaces= "
cls
echo/
for /L %%# in () do (
echo/
set /A "i=9-seed, seed=(seed+1)%%10"
for /L %%i in (0,1,9) do (
set /A j=i, i+=1
set "digits="
for /L %%j in (0,1,%%i) do (
set /A "j=(j+1)%%10"
set "digits=!digits! !j!"
)
set "spaces=!spaces:~1!"
echo !spaces!!digits!
)
set /A i+=1
set "spaces=!spaces! "
for /L %%i in (1,1,9) do (
set /A j=i, i+=2
set "digits="
for /L %%j in (%%i,1,9) do (
set /A "j=(j+1)%%10"
set "digits=!digits! !j!"
)
echo !spaces!!digits!
set "spaces=!spaces! "
)
echo/
timeout /T 1 > CON
)
penpen wrote:I could remove the second label (68 bytes):Code: Select all
@set s= A
:A
@ 2>nul echo%s%&&set s=%s:~1%AA&&goto A
penpen
Code: Select all
@set s= A
:A
@echo%s% 2>nul&&set s=%s:~1%AA&&goto A
Code: Select all
@set s=%~1A
:A
@echo%s% 2>nul&&set s=%s:~1%AA&&goto A
Code: Select all
Z:\>pyramid.bat
Z:\>pyramid.bat " "
A
Z:\>pyramid.bat " "
A
AAA
Z:\>pyramid.bat " "
A
AAA
AAAAA
Z:\>pyramid.bat " "
A
AAA
AAAAA
AAAAAAA
Z:\>pyramid.bat " "
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
Code: Select all
@set s= A
:A
@echo %s%&set s=%s:~1%AA&goto%s:~,2%A 2>A
I have no access to win 7, and winxp output seems to be ok.misol101 wrote:For some reason penpen's and Aacini's last two versions give the wrong output on my Win7 machine.
Code: Select all
@set s= A
:A
@ 2>nul echo%s%&&set s=%s:~1%AA&&goto A
@goto :eof
@set s= A
:A
@echo %s%&set s=%s:~1%AA&goto%s:~,2%A 2>A
Code: Select all
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
AAAAAAAAAAA
AAAAAAAAAAAAA
AAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Code: Select all
@set s= A
:A
@echo %s%&set s=%s:~1%AA&goto%s:~,2%A 2>A
@goto :eof
@set s= A
:A
@echo %s%&set s=%s:~1%AA&goto%s:~,2%A 2>A
Code: Select all
@set s= A
:A
@set s=%s:~1%AA&echo%s% 2>A&&goto A
Code: Select all
@set s= A
:A
@set s=%s:~1%AA&2>nul echo%s%&&goto A
Code: Select all
@set s= A
:A
@set s=%s:~1%AA&2>A echo%s%&&goto A