中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 05:16
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 出题,通过批处理输出九宫格(不限级别)
可打印版本  2,081 / 20
第16楼 quya 发表于 2008-07-17 08:28
高级用户 发帖 172 积分 558 来自 江苏
结果是8种啊, 我在2楼说2次随机数, 第一次随机数取法有4种可能, 第2次取法只剩2种可能.

所以结果是 4*2=8, 就像15楼做的那样.
第17楼 26933062 发表于 2008-07-17 11:37
银牌会员 发帖 879 积分 2,268
确实是有 8 种,
原来如此简单,交换一下位置就可以了。。


  1. @echo off&color 1f
  2. :start
  3. set /a str=2468,e=5,flag=0
  4. set /a w=%random%%%4
  5. call set x=%%str:~%w%,1%%
  6. if defined #%x% goto start
  7. set /a #%x%=1,a=x
  8. call set str=%%str:%a%=%%
  9. set /a i=15-e-a
  10. call set str=%%str:%i%=%%
  11. set /a w=%random%%%2
  12. call set c=%%str:~%w%,1%%
  13. call set str=%%str:%c%=%%
  14. set /a b=15-a-c,d=15-str-a,f=15-d-e,g=str,h=15-g-i
  15. :loop
  16. set /a nn+=1
  17. echo.&echo%nn% 种&echo.
  18. echo ┏━━┳━━┳━━┓
  19. echo%a%%b%%c%
  20. echo ┣━━╋━━╋━━┫
  21. echo%d%%e%%f%
  22. echo ┣━━╋━━╋━━┫
  23. echo%g%%h%%i%
  24. echo ┗━━┻━━┻━━┛
  25. pause>nul&cls
  26. if %flag% equ 0 (
  27. set b=%d%&set d=%b%&set g=%c%&set c=%g%&set h=%f%&set f=%h%&set flag=1&goto loop
  28. )
  29. if %nn% neq 8 goto start
  30. echo.&echo 总共 %nn%
  31. pause>nul


小楼一夜听春雨 2008-07-17 11:26
第18楼 quya 发表于 2008-07-17 13:46
高级用户 发帖 172 积分 558 来自 江苏
如果纯为显示,而不考虑通用性, 那么我下面的简单代码也能实现.

第19楼 bat-zw 发表于 2008-07-17 14:10
金牌会员 发帖 1,276 积分 3,105
经改良后的方案:


[ Last edited by zw19750516 on 2008-7-17 at 05:43 PM ]
第20楼 bat-zw 发表于 2008-07-17 17:24
金牌会员 发帖 1,276 积分 3,105
Originally posted by 26933062 at 2008-7-17 11:37:
确实是有 8 种,
原来如此简单,交换一下位置就可以了。。

现在仔细看了小楼兄的代码才知道自己想复杂了,看来老土的思路是完全正确的,确实刚开始写之前多思考下就不至于走那么大的弯路了。
第21楼 26933062 发表于 2008-07-17 21:30
银牌会员 发帖 879 积分 2,268
但最值得一提的还是quya老土的解题思路,思路对才能正确解决问题,
这也是我所一直以来信奉的原则,所以我给老土加了满分20分。


非常同意楼主的这个观点,解题思路是首位、代码技巧其次。
一开始看到这个题,我都不知道从哪里下手,本决定放弃解此题的,所以有了3楼的回帖,(2楼的解题思路是后来补上去的)但一看到2楼的思路,茅塞顿开。。。
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023