[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
纯数字随机生成,翻转功能没做,但是在此基础实现不难,个位跟十位对换就可以了...
  1. @echo off
  2. title 俄罗斯方块
  3. color 0a
  4. setlocal enabledelayedexpansion
  5. :main
  6. call :go
  7. ping -n 2 127.1 >nul
  8. goto :main
  9. :go
  10. call :rdvar 4
  11. set /a value=var*10
  12. call :rdvar 4
  13. set /a value=value+var
  14. set /a _xy_1=value
  15. set /a _%value%=1
  16. for /l %%a in (2,1,4) do (
  17.       call :fd !value!
  18.       set _xy_%%a=!value!
  19. )
  20. rem set _
  21. call :display
  22. goto :eof
  23. ::::::产生随机数,如果是cal:rdvar2,就同时返回0,1:::::::
  24. :rdvar
  25. set /a var=%RANDOM%*%1/32768+1
  26. if %1 equ 2 (
  27.     set /a rt=var-1
  28.     exit /b !rt!
  29. )
  30. goto :eof
  31. ::::::::产生指定坐标周围4个坐标,并去除不合格坐标,从中随机得到一个::::::::::::
  32. :fd
  33. set /a x=%1 / 10 & set /a y=%1 %% 10
  34. set /a xy_1=^(x+1^)*10+y & set /a xy_2=^(x-1^)*10+y &set /a xy_3=x*10+y+1 & set /a xy_4= x*10+y-1
  35. if %x% LEQ 1 set "xy_2="
  36. if %x% GEQ 4 set "xy_1="
  37. if %y% LEQ 1 set "xy_4="
  38. if %y% GEQ 4 set "xy_3="
  39. set /a n=0
  40. for /l %%i in (1,1,4) do (
  41.       set xy=!xy_%%i!
  42.       if !xy!.==. set /a n-=1
  43.       if defined _!xy! ( set "xy_%%i=" ) else ( set /a n+=1 )
  44.    )   
  45. set vstr=%xy_1% %xy_2% %xy_3% %xy_4%
  46. if %n% EQU 1 (
  47.       set /a value=vstr
  48.       set /a _!value!=1
  49.       goto :eof
  50.    )
  51. call :rdvar %n%
  52. for /f "tokens=%var%" %%c in ("!vstr!") do (
  53.       set /a value=%%c
  54.       set /a _!value!=1
  55.    )
  56. goto :eof
  57. :display
  58. for /l %%c in (1,1,4) do (
  59.       echo;
  60.       for /l %%l in (1,1,4) do (
  61.             if defined _%%c%%l (set/p "=■"<nul) else (set/p "=  "<nul)
  62.             set _%%c%%l=
  63.         )
  64.     )
  65. echo;
复制代码

[ 本帖最后由 caruko 于 2010-4-1 16:09 编辑 ]

TOP

返回列表