@echo off&mode con cols=20 lines=29&color 2c
setlocal enabledelayedexpansion
title 弹球-zw19750516
set a=●&set "b= "
:begin
cls&set n=0
set /a lm=%random%%%19,lr=%random%%%2
if %lm% equ 0 (
set z=+
) else (
if %lm% equ 17 (
set z=-
) else (
if %lr% equ 0 (
set z=-
) else (
set z=+
)
)
)
:contin
set "kong="
set /a n+=1,lm%z%=1
for /l %%i in (1,1,%lm%) do set kong=!kong!%b%
set str%n%=%kong%%a%
if %n% equ 30 goto begin
if %lm% equ 0 set z=+
if %lm% equ 17 set z=-
set /p=!str%n%!<nul&ping /n 127.1>nul
for /l %%i in (1,1,20) do set /p= <nul
echo.
goto contin
@echo off&setlocal enabledelayedexpansion
mode con: cols=81 lines=30&color 1f
:: code by 随风@bbs.bathome.cn 2008/01/03
:loop
for /l %%a in (1 1 40) do (
if defined sang (
cls&set /a di-=1
for /l %%i in (1 1 !di!) do echo.
) else (echo.&set /a di+=1)
if defined zuo (set ko=!ko:~1!) else set ko= !ko!
set /p=!ko!●<nul
for /l %%i in (1 1 80) do ver>nul
set /p= <nul
if not "!ko:~38,1!"=="" set zuo=ok
if "!ko!"=="" set zuo=&set "ko= "
if !di! lss 0 set sang=&goto loop
if !di! geq 29 set sang=ok&goto loop
)
Originally posted by WANKOILZ at 2008-5-25 23:20: 3楼的好简洁,思路NB。轨迹确实会重复,我想是因为“弹”的时候弹出角度是固定的45度,轨迹重复是难免的。请看看下面的轨迹是不是重复的:
@echo off&mode con cols=60 lines=20
setlocal enabledelayedexpansion
title 调皮的汉字-zw19750516
set code=23456789abcdef我是调皮的汉字&set "b= "
set code1=%code:~14%&set d=-1
:begin
set n=0&set m=0&set x=+
set /a lm=%random%%%59,lr=%random%%%2,c=%random%%%14,d+=1
if %d% equ 7 set d=0
set a=!code1:~%d%,1!&set c=!code:~%c%,1!
color 0%c%
if %lm% equ 0 (
set z=+
) else (
if %lm% equ 57 (
set z=-
) else (
if %lr% equ 0 (
set z=-
) else (
set z=+
)
)
)
:contin
cls&for /l %%i in (1,1,%n%) do echo.
set "kong="
set /a n%x%=1,lm%z%=1,m+=1
if %n% equ 0 if %m% geq 100 goto begin
if %lm% equ 0 set z=+
if %lm% equ 57 set z=-
for /l %%i in (1,1,%lm%) do set kong=!kong!%b%
set str=%kong%%a%
if %n% equ 20 set x=-&goto contin
if %n% equ 0 set x=+&goto contin
echo %str%&ping /n 127.1>nul
goto contin
@echo off &setlocal enabledelayedexpansion
title 这一版本code by hi.baidu.com/523066680
color 17 &mode con cols=60 lines=30
for /l %%a in (1,1,60) do (set space= !space!)
set /a La=14,Lb=28,Ca=29,Cb=56,r=1,r2=1
:loop
if %La% lss 28 (set /a La+=r2,line=La) else (set /a Lb-=r2,line=Lb)
if %Lb% leq 1 (set /a La=-1,Lb=29,r=%random%%%3+2,r2=2-r%%2)
if %Ca% lss 55 (set /a Ca+=r,col=Ca) else (set /a Cb-=r,col=Cb)
if %Cb% leq 4 (set /a Ca=0,Cb=56,r=%random%%%3+1)
cls
for /l %%a in (1,1,%line%) do echo,
echo,!space:~0,%col%!●
ping -n 1 127.1>nul
goto :loop