找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 46864|回复: 14

[游戏娱乐] 批处理有趣的心形图案

[复制链接]
发表于 2008-11-11 02:18:59 | 显示全部楼层 |阅读模式
这是一个签名,我给大概改了一下。大家试试看啊,记得输入时一定要汉语哦。

经过Batcher提醒,把更新信息列出。
更新历史:2008.11.11  可以支持字母,数字,汉字以及之间的相互组合(这里要谢谢youxi01的建议)!
               2008.11.12  解决了输入为空输出缺少空格的问题(该问题见八楼)。
为方便比较,代码添加在下面。欢迎大家提供意见!
  1. @echo off
  2. rem 同甘共苦  誠心誠意  珍貴友誼 分享喜悅
  3. setlocal enabledelayedexpansion
  4. set a=◢█◣◢█◣
  5. set b=█        █
  6. set c=◥████◤
  7. set d=  ◥██◤
  8. set e=   ◥◤
  9. set /p cy="请输入你最喜欢的四个成语用(用空格隔开):"
  10. :a
  11. set /a num=0
  12. for %%b in (%cy%) do (
  13.    set /a num+=1
  14.    set a!num!=%%b
  15. )
  16. set "str1=        "
  17. set /a _color=!random!%%15
  18. set str=123456789abcedf
  19. color 0!str:~%_color%,1!
  20. for /l %%i in (1 1 3) do (
  21.     set /a s=!random!%%4+1
  22.     set b=█!a%s%!█
  23.     for  %%j in (a b c d e) do (
  24.         set str=
  25.         if "%%j" equ "b" set "str= "
  26.         if "%%j" equ "d" set "str=  "
  27.         if "%%j" equ "e" set "str=     "
  28.         if %%i equ 2 (echo      !%%j!  !str!!%%j!) else echo             !%%j!
  29.     )
  30. )
  31. ping -n 1 127.1>nul
  32. ping -n 1 127.1>nul
  33. cls
  34. goto a
复制代码
2008.11.12更新后:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set a=◢█◣◢█◣
  4. set b=█        █
  5. set c=◥████◤
  6. set d=  ◥██◤
  7. set e=   ◥◤
  8. set /p cy="请输入你最喜欢的四个成语用(用空格隔开):"
  9. :a
  10. set /a num=0
  11. for %%b in (%cy%) do (
  12.    set /a num+=1
  13.    set a!num!=%%b
  14. )
  15. set /a _color=!random!%%15
  16. set str=123456789abcedf
  17. color 0!str:~%_color%,1!
  18. for /l %%i in (1 1 3) do (
  19.     set /a s=!random!%%4+1
  20.     if "!a%s%!"=="" (set kong=0)  else call :length !a%s%! %kong%
  21.     set /a s1=8-!kong!
  22.     set /a s1=s1/2
  23.     set /a s2=8-!s1!-!kong!
  24.     call :ko !s1! &set str1=!k!
  25.     call :ko !s2! &set str2=!k!
  26.     set b=█!str1!!a%s%!!str2!█
  27.     for %%j in (a b c d e) do (
  28.         set str=
  29.         if "%%j" equ "d" set "str=  "
  30.         if "%%j" equ "e" set "str=    "
  31.         if %%i equ 2 (echo      !%%j!  !str!!%%j!) else echo             !%%j!
  32.     )
  33. )
  34. ping -n 1 127.1>nul
  35. ping -n 1 127.1>nul
  36. cls
  37. goto a

  38. :length
  39. set sss=a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9
  40. set var=%1
  41. set n=0
  42. for /l %%i in (0 1 10) do (
  43.    set flag=1
  44.    if "!var:~%%i,1!"=="" set kong=!n! && goto :eof
  45.       for %%b in (%sss%) do (
  46.          if /i "!var:~%%i,1!" equ "%%b" (set flag=0 )
  47.       )
  48.    if !flag! equ 1 ( set /a n+=2 )  else set /a n+=1
  49. )

  50. :ko
  51. set k=
  52. if "%1"=="" goto :eof
  53. for /l %%i in (1 1 %1) do set "k=!k! "
复制代码

评分

参与人数 2PB +14 收起 理由
rat + 10 Excellent!
pusofalse + 4 有创意

查看全部评分

发表于 2008-11-11 02:47:59 | 显示全部楼层
有创意、、、 是否更应该发展实用的批处理。。。
 楼主| 发表于 2008-11-11 02:59:02 | 显示全部楼层
恩,谢谢版主提醒啊。最近几天一直在研究学习各种各样的图案。恩,我会不断的向实用性发展,不断的学习前辈高手们的代码的。
发表于 2008-11-11 11:59:06 | 显示全部楼层
恩厉害啊!
是不是无聊的时候想的?
发表于 2008-11-11 13:43:41 | 显示全部楼层
提个建议:
输入内容不应该仅仅局限于成语
可以输入任意4字以内文字,如:人名等,呵呵

代码最好再修改下,至于输入任意<四字符的字符串的对齐可以填充空格,再截取来实现!
发表于 2008-11-11 14:14:49 | 显示全部楼层
很好。

可以上边三个心,中间两个,下边一个
发表于 2008-11-11 22:23:32 | 显示全部楼层
狠好看的,有创意,慢慢学习
 楼主| 发表于 2008-11-11 23:36:56 | 显示全部楼层
谢谢大家的鼓励啊,我会不断努力的。
经过youxi01的提醒,现在修改了一下代码。可以支持字母,数字以及汉字,可以小于8个字符(汉语4个),比如可以输入  123  abcd  同甘共苦 1朋友2    等类似字符。现附上代码:
  1. @echo off
  2. rem 同甘共苦  誠心誠意  珍貴友誼 分享喜悅
  3. setlocal enabledelayedexpansion
  4. set a=◢█◣◢█◣
  5. set b=█        █
  6. set c=◥████◤
  7. set d=  ◥██◤
  8. set e=   ◥◤
  9. set /p cy="请输入你最喜欢的四个成语用(用空格隔开):"
  10. :a
  11. set /a num=0
  12. for %%b in (%cy%) do (
  13.    set /a num+=1
  14.    set a!num!=%%b
  15. )

  16. set /a _color=!random!%%15
  17. set str=123456789abcedf
  18. color 0!str:~%_color%,1!
  19. for /l %%i in (1 1 3) do (
  20.     set "kong_=        "
  21.     set /a s=!random!%%4+1
  22.     call :length !a%s%! %kong%

  23.     set /a s1=8-!kong!

  24.     set /a s1=s1/2

  25.     set /a s2=8-!s1!-!kong!

  26.     call :ko !s1! &set str1=!k!
  27.     call :ko !s2! &set str2=!k!
  28.     set b=█!str1!!a%s%!!str2!█
  29.     for %%j in (a b c d e) do (
  30.         set str=
  31.         if "%%j" equ "d" set "str=  "
  32.         if "%%j" equ "e" set "str=    "
  33.         if %%i equ 2 (echo      !%%j!  !str!!%%j!) else echo             !%%j!
  34.     )
  35. )
  36. ping -n 1 127.1>nul
  37. ping -n 1 127.1>nul
  38. cls
  39. goto a


  40. :length
  41. set sss=a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9
  42. set var=%1
  43. set n=0
  44. for /l %%i in (0 1 10) do (
  45.    set flag=1
  46.    if "!var:~%%i,1!"=="" set kong=!n! && goto :eof
  47.       for %%b in (%sss%) do (
  48.          if "!var:~%%i,1!" equ "%%b" (set flag=0 )
  49.       )
  50.    if !flag! equ 1 ( set /a n+=2 )  else set /a n+=1
  51. )
  52. :ko
  53. set k=
  54. if "%1"=="" goto :eof
  55. for /l %%i in (1 1 %1) do set "k=!k! "
复制代码
有一个问题还请高手解答下:按理说什么都不输直接按回车的话,应该出现!b!中间为8个空格的情况,可实际情况却是少了一个。在下面一步一步静态运行没发现什么异常啊,是不是漏了什么?


此问题已解决,更新信息在顶楼说明!!

[ 本帖最后由 lhjoanna 于 2008-11-12 18:44 编辑 ]
发表于 2008-11-11 23:40:00 | 显示全部楼层

回复 8楼 的帖子

建议把更新情况在顶楼说明一下
 楼主| 发表于 2008-11-11 23:48:58 | 显示全部楼层
原帖由 Batcher 于 2008-11-11 23:40 发表
建议把更新情况在顶楼说明一下


更新信息已经列出,谢谢提醒!!
发表于 2009-2-27 17:26:49 | 显示全部楼层
不断的学习前辈高手们的代码的。
发表于 2010-12-14 22:03:41 | 显示全部楼层
不错。改下内容可送女友咯。。。
发表于 2010-12-24 16:18:59 | 显示全部楼层
有创意、、、 是否更应该发展实用的批处理。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:10 , Processed in 0.022310 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表